diff --git a/openfe/protocols/openmm_rfe/equil_rfe_methods.py b/openfe/protocols/openmm_rfe/equil_rfe_methods.py index 7bf92050e..4e3cccb08 100644 --- a/openfe/protocols/openmm_rfe/equil_rfe_methods.py +++ b/openfe/protocols/openmm_rfe/equil_rfe_methods.py @@ -702,7 +702,7 @@ def run(self, *, dry=False, verbose=True, # Extract relevant settings protocol_settings: RelativeHybridTopologyProtocolSettings = self._inputs['protocol'].settings stateA = self._inputs['stateA'] - stateB = self._inputs['stateB'] + stateB = self._inputs['stateB'] # TODO: open an issue about this not being used. mapping = self._inputs['ligandmapping'] forcefield_settings: settings.OpenMMSystemGeneratorFFSettings = protocol_settings.forcefield_settings diff --git a/openfe/protocols/openmm_septop/__init__.py b/openfe/protocols/openmm_septop/__init__.py new file mode 100644 index 000000000..6f806ce8a --- /dev/null +++ b/openfe/protocols/openmm_septop/__init__.py @@ -0,0 +1,24 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Run SepTop free energy calculations using OpenMM and OpenMMTools. + +""" + +from .equil_septop_method import ( + SepTopProtocol, + SepTopSettings, + SepTopProtocolResult, + SepTopComplexSetupUnit, + SepTopSolventSetupUnit, + SepTopSolventRunUnit, + SepTopComplexRunUnit, +) + +__all__ = [ + "SepTopProtocol", + "SepTopSettings", + "SepTopProtocolResult", + "SepTopComplexSetupUnit", + "SepTopSolventSetupUnit", +] diff --git a/openfe/protocols/openmm_septop/base.py b/openfe/protocols/openmm_septop/base.py new file mode 100644 index 000000000..e137826e6 --- /dev/null +++ b/openfe/protocols/openmm_septop/base.py @@ -0,0 +1,1503 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +"""OpenMM Equilibrium SepTop Protocol base classes +================================================== + +Base classes for the equilibrium OpenMM SepTop free energy ProtocolUnits. + +Thist mostly implements BaseSepTopUnit whose methods can be +overriden to define different types of alchemical transformations. + +TODO +---- +* Add in all the AlchemicalFactory and AlchemicalRegion kwargs + as settings. +* Allow for a more flexible setting of Lambda regions. +""" +from __future__ import annotations + +import abc +import os +import copy +import logging +import simtk +import itertools +import gufe +from gufe.components import Component +import numpy as np +import numpy.typing as npt +import openmm +import simtk.unit as omm_units +from openff.units import unit +from openff.units.openmm import from_openmm, to_openmm, ensure_quantity +from openff.toolkit.topology import Molecule as OFFMolecule +from openmmtools import multistate +from openmmtools.states import (SamplerState, + ThermodynamicState, + create_thermodynamic_state_protocol, ) +from typing import Optional +from openmm import app +from openmm import unit as omm_unit +from openmmforcefields.generators import SystemGenerator +import pathlib +from typing import Any +import openmmtools +import mdtraj as mdt + +from gufe import ( + ChemicalSystem, SmallMoleculeComponent, + ProteinComponent, SolventComponent +) +from openfe.protocols.openmm_utils.omm_settings import ( + SettingsBaseModel, +) +from openfe.protocols.openmm_utils.omm_settings import ( + BasePartialChargeSettings, +) +from openfe.utils import log_system_probe + +from openfe.protocols.openmm_afe.equil_afe_settings import ( + BaseSolvationSettings, + MultiStateSimulationSettings, OpenMMEngineSettings, + IntegratorSettings, LambdaSettings, MultiStateOutputSettings, + ThermoSettings, OpenFFPartialChargeSettings, +) +from openfe.protocols.openmm_septop.equil_septop_settings import SepTopSettings +from openfe.protocols.openmm_utils import omm_compute +from openfe.protocols.openmm_md.plain_md_methods import PlainMDProtocolUnit +from ..openmm_utils import ( + settings_validation, system_creation, + multistate_analysis, charge_generation +) +from openfe.utils import without_oechem_backend + +from .femto_restraints import select_ligand_idxs +from .utils import serialize, deserialize, SepTopParameterState +from openmmtools.alchemy import ( + AbsoluteAlchemicalFactory, + AlchemicalRegion, +) +import MDAnalysis as mda +from openfe.protocols.restraint_utils.geometry.boresch import find_boresch_restraint + +logger = logging.getLogger(__name__) + + +class BaseSepTopSetupUnit(gufe.ProtocolUnit): + """ + Base class for the setup of ligand SepTop RBFE free energy transformations. + """ + + def __init__(self, *, + protocol: gufe.Protocol, + stateA: ChemicalSystem, + stateB: ChemicalSystem, + alchemical_components: dict[str, list[Component]], + generation: int = 0, + repeat_id: int = 0, + name: Optional[str] = None, ): + """ + Parameters + ---------- + protocol : gufe.Protocol + protocol used to create this Unit. Contains key information such + as the settings. + stateA : ChemicalSystem + ChemicalSystem containing the components defining the state at + lambda 0. + stateB : ChemicalSystem + ChemicalSystem containing the components defining the state at + lambda 1. + alchemical_components : dict[str, Component] + the alchemical components for each state in this Unit + name : str, optional + Human-readable identifier for this Unit + repeat_id : int, optional + Identifier for which repeat (aka replica/clone) this Unit is, + default 0 + generation : int, optional + Generation counter which keeps track of how many times this repeat + has been extended, default 0. + """ + super().__init__( + name=name, + protocol=protocol, + stateA=stateA, + stateB=stateB, + alchemical_components=alchemical_components, + repeat_id=repeat_id, + generation=generation, + ) + + @staticmethod + def _get_alchemical_indices( + omm_top: openmm.app.Topology, + comp_resids: dict[Component, npt.NDArray], + alchem_comps: dict[str, list[Component]] + ) -> list[int]: + """ + Get a list of atom indices for all the alchemical species + + Parameters + ---------- + omm_top : openmm.app.Topology + Topology of OpenMM System. + comp_resids : dict[Component, npt.NDArray] + A dictionary of residues for each component in the System. + alchem_comps : dict[str, list[Component]] + A dictionary of alchemical components for each end state. + + Return + ------ + atom_ids : list[int] + A list of atom indices for the alchemical species + """ + + # concatenate a list of residue indexes for all alchemical components + residxs = np.concatenate( + [comp_resids[key] for key in alchem_comps['stateA']] + ) + + # get the alchemicical atom ids + atom_ids = [] + + for r in omm_top.residues(): + if r.index in residxs: + atom_ids.extend([at.index for at in r.atoms()]) + + return atom_ids + + def _pre_equilibrate( + self, + system: openmm.System, + topology: openmm.app.Topology, + positions: omm_unit.Quantity, + settings: dict[str, SettingsBaseModel], + state: str, + dry: bool + ) -> omm_unit.Quantity: + """ + Run a non-alchemical equilibration to get a stable system. + + Parameters + ---------- + system : openmm.System + An OpenMM System to equilibrate. + topology : openmm.app.Topology + OpenMM Topology of the System. + positions : openmm.unit.Quantity + Initial positions for the system. + settings : dict[str, SettingsBaseModel] + A dictionary of settings objects. Expects the + following entries: + * `engine_settings` + * `thermo_settings` + * `integrator_settings` + * `equil_simulation_settings` + * `equil_output_settings` + state: str + The state that is pre_equilibrates, either 'A' or 'B'. + dry: bool + Whether or not this is a dry run. + + Returns + ------- + equilibrated_positions : npt.NDArray + Equilibrated system positions + """ + # Prep the simulation object + platform = omm_compute.get_openmm_platform( + settings['engine_settings'].compute_platform + ) + + integrator = openmm.LangevinMiddleIntegrator( + to_openmm(settings['thermo_settings'].temperature), + to_openmm(settings['integrator_settings'].langevin_collision_rate), + to_openmm(settings['integrator_settings'].timestep), + ) + + simulation = openmm.app.Simulation( + topology=topology, + system=system, + integrator=integrator, + platform=platform, + ) + + # Get the necessary number of steps + if settings['equil_simulation_settings'].equilibration_length_nvt is not None: + equil_steps_nvt = settings_validation.get_simsteps( + sim_length=settings[ + 'equil_simulation_settings'].equilibration_length_nvt, + timestep=settings['integrator_settings'].timestep, + mc_steps=1, + ) + else: + equil_steps_nvt = None + + equil_steps_npt = settings_validation.get_simsteps( + sim_length=settings[ + 'equil_simulation_settings'].equilibration_length, + timestep=settings['integrator_settings'].timestep, + mc_steps=1, + ) + + prod_steps_npt = settings_validation.get_simsteps( + sim_length=settings['equil_simulation_settings'].production_length, + timestep=settings['integrator_settings'].timestep, + mc_steps=1, + ) + + if self.verbose: + logger.info("running non-alchemical equilibration MD") + + # Don't do anything if we're doing a dry run + if dry: + return positions + unfrozen_outsettings = settings['equil_output_settings'].unfrozen_copy() + + if state == 'A' or state == 'B': + if unfrozen_outsettings.production_trajectory_filename: + unfrozen_outsettings.production_trajectory_filename = ( + unfrozen_outsettings.production_trajectory_filename + f'_state{state}.xtc') + if unfrozen_outsettings.preminimized_structure: + unfrozen_outsettings.preminimized_structure = ( + unfrozen_outsettings.preminimized_structure + f'_state{state}.pdb') + if unfrozen_outsettings.minimized_structure: + unfrozen_outsettings.minimized_structure = ( + unfrozen_outsettings.minimized_structure + f'_state{state}.pdb') + if unfrozen_outsettings.equil_nvt_structure: + unfrozen_outsettings.equil_nvt_structure = ( + unfrozen_outsettings.equil_nvt_structure + f'_state{state}.pdb') + if unfrozen_outsettings.equil_npt_structure: + unfrozen_outsettings.equil_npt_structure = ( + unfrozen_outsettings.equil_npt_structure + f'_state{state}.pdb') + if unfrozen_outsettings.log_output: + unfrozen_outsettings.log_output = ( + unfrozen_outsettings.log_output + f'_state{state}.log') + print(unfrozen_outsettings) + else: + errmsg = f"Only 'A' and 'B' are accepted as states. Got {state}" + raise ValueError(errmsg) + + + # Use the _run_MD method from the PlainMDProtocolUnit + # Should in-place modify the simulation + PlainMDProtocolUnit._run_MD( + simulation=simulation, + positions=positions, + simulation_settings=settings['equil_simulation_settings'], + output_settings=unfrozen_outsettings, + temperature=settings['thermo_settings'].temperature, + barostat_frequency=settings[ + 'integrator_settings'].barostat_frequency, + timestep=settings['integrator_settings'].timestep, + equil_steps_nvt=equil_steps_nvt, + equil_steps_npt=equil_steps_npt, + prod_steps=prod_steps_npt, + verbose=self.verbose, + shared_basepath=self.shared_basepath, + ) + state = simulation.context.getState(getPositions=True) + equilibrated_positions = state.getPositions(asNumpy=True) + + # cautiously delete out contexts & integrator + del simulation.context, integrator + + return equilibrated_positions + + def _prepare( + self, verbose: bool, + scratch_basepath: Optional[pathlib.Path], + shared_basepath: Optional[pathlib.Path], + ): + """ + Set basepaths and do some initial logging. + + Parameters + ---------- + verbose : bool + Verbose output of the simulation progress. Output is provided via + INFO level logging. + basepath : Optional[pathlib.Path] + Optional base path to write files to. + """ + self.verbose = verbose + + if self.verbose: + self.logger.info("setting up alchemical system") + + # set basepaths + def _set_optional_path(basepath): + if basepath is None: + return pathlib.Path('.') + return basepath + + self.scratch_basepath = _set_optional_path(scratch_basepath) + self.shared_basepath = _set_optional_path(shared_basepath) + + @abc.abstractmethod + def _get_components(self) -> tuple[dict[str, list[Component]], + Optional[gufe.SolventComponent], + Optional[gufe.ProteinComponent], + dict[ + SmallMoleculeComponent, + OFFMolecule]]: + """ + Get the relevant components to create the alchemical system with. + + Note + ---- + Must be implemented in the child class. + """ + ... + + @abc.abstractmethod + def _handle_settings(self): + """ + Get a dictionary with the following entries: + * forcefield_settings : OpenMMSystemGeneratorFFSettings + * thermo_settings : ThermoSettings + * solvation_settings : BaseSolvationSettings + * alchemical_settings : AlchemicalSettings + * lambda_settings : LambdaSettings + * engine_settings : OpenMMEngineSettings + * integrator_settings : IntegratorSettings + * equil_simulation_settings : MDSimulationSettings + * equil_output_settings : MDOutputSettings + * simulation_settings : MultiStateSimulationSettings + * output_settings : MultiStateOutputSettings + + Settings may change depending on what type of simulation you are + running. Cherry pick them and return them to be available later on. + + This method should also add various validation checks as necessary. + + Note + ---- + Must be implemented in the child class. + """ + ... + + def _get_system_generator( + self, + settings: dict[str, SettingsBaseModel], + solvent_comp: Optional[SolventComponent] + ) -> SystemGenerator: + """ + Get a system generator through the system creation + utilities + + Parameters + ---------- + settings : dict[str, SettingsBaseModel] + A dictionary of settings object for the unit. + solvent_comp : Optional[SolventComponent] + The solvent component of this system, if there is one. + + Returns + ------- + system_generator : openmmforcefields.generator.SystemGenerator + System Generator to parameterise this unit. + """ + ffcache = settings['output_settings'].forcefield_cache + if ffcache is not None: + ffcache = self.shared_basepath / ffcache + + # Block out oechem backend to avoid any issues with + # smiles roundtripping between rdkit and oechem + with without_oechem_backend(): + system_generator = system_creation.get_system_generator( + forcefield_settings=settings['forcefield_settings'], + integrator_settings=settings['integrator_settings'], + thermo_settings=settings['thermo_settings'], + cache=ffcache, + has_solvent=solvent_comp is not None, + ) + return system_generator + + @staticmethod + def _assign_partial_charges( + partial_charge_settings: OpenFFPartialChargeSettings, + smc_components: dict[SmallMoleculeComponent, OFFMolecule], + ) -> None: + """ + Assign partial charges to SMCs. + + Parameters + ---------- + charge_settings : OpenFFPartialChargeSettings + Settings for controlling how the partial charges are assigned. + smc_components : dict[SmallMoleculeComponent, openff.toolkit.Molecule] + Dictionary of OpenFF Molecules to add, keyed by + SmallMoleculeComponent. + """ + for mol in smc_components.values(): + charge_generation.assign_offmol_partial_charges( + offmol=mol, + overwrite=False, + method=partial_charge_settings.partial_charge_method, + toolkit_backend=partial_charge_settings.off_toolkit_backend, + generate_n_conformers=partial_charge_settings.number_of_conformers, + nagl_model=partial_charge_settings.nagl_model, + ) + + def _get_modeller( + self, + protein_component: Optional[ProteinComponent], + solvent_component: SolventComponent, + smc_components: dict[SmallMoleculeComponent, OFFMolecule], + system_generator: SystemGenerator, + solvation_settings: BaseSolvationSettings + ) -> tuple[app.Modeller, dict[Component, npt.NDArray]]: + """ + Get an OpenMM Modeller object and a list of residue indices + for each component in the system. + + Parameters + ---------- + protein_component : Optional[ProteinComponent] + Protein Component, if it exists. + solvent_component : SolventComponent + Solvent Component. + smc_components : dict[SmallMoleculeComponent, openff.toolkit.Molecule] + Dictionary of OpenFF Molecules to add, keyed by + SmallMoleculeComponent. + system_generator : openmmforcefields.generator.SystemGenerator + System Generator to parameterise this unit. + partial_charge_settings : BasePartialChargeSettings + Settings detailing how to assign partial charges to the + SMCs of the system. + solvation_settings : BaseSolvationSettings + Settings detailing how to solvate the system. + + Returns + ------- + system_modeller : app.Modeller + OpenMM Modeller object generated from ProteinComponent and + OpenFF Molecules. + comp_resids : dict[Component, npt.NDArray] + Dictionary of residue indices for each component in system. + """ + if self.verbose: + self.logger.info("Parameterizing molecules") + + # TODO: guard the following from non-RDKit backends + # force the creation of parameters for the small molecules + # this is necessary because we need to have the FF generated ahead + # of solvating the system. + # Block out oechem backend to avoid any issues with + # smiles roundtripping between rdkit and oechem + with without_oechem_backend(): + for mol in smc_components.values(): + system_generator.create_system( + mol.to_topology().to_openmm(), molecules=[mol] + ) + + # get OpenMM modeller + dictionary of resids for each component + system_modeller, comp_resids = system_creation.get_omm_modeller( + protein_comp=protein_component, + solvent_comp=solvent_component, + small_mols=smc_components, + omm_forcefield=system_generator.forcefield, + solvent_settings=solvation_settings, + ) + + return system_modeller, comp_resids + + def _get_omm_objects( + self, + system_modeller: openmm.app.Modeller, + system_generator: SystemGenerator, + smc_components: list[OFFMolecule], + ) -> tuple[openmm.app.Topology, openmm.unit.Quantity, openmm.System]: + """ + Get the OpenMM Topology, Positions and System of the + parameterised system. + + Parameters + ---------- + system_modeller : openmm.app.Modeller + OpenMM Modeller object representing the system to be + parametrized. + system_generator : SystemGenerator + SystemGenerator object to create a System with. + smc_components : list[openff.toolkit.Molecule] + A list of openff Molecules to add to the system. + + Returns + ------- + topology : openmm.app.Topology + Topology object describing the parameterized system + system : openmm.System + An OpenMM System of the alchemical system. + positions : openmm.unit.Quantity + Positions of the system. + """ + topology = system_modeller.getTopology() + # roundtrip positions to remove vec3 issues + positions = to_openmm(from_openmm(system_modeller.getPositions())) + + # Block out oechem backend to avoid any issues with + # smiles roundtripping between rdkit and oechem + with without_oechem_backend(): + system = system_generator.create_system( + system_modeller.topology, + molecules=smc_components, + ) + return topology, system, positions + + @staticmethod + def _get_atom_indices( + omm_topology: openmm.app.Topology, + comp_resids: dict[Component, npt.NDArray], + ): + comp_atomids = {} + for key, values in comp_resids.items(): + atom_indices = [] + for residue in omm_topology.residues(): + if residue.index in values: + atom_indices.extend([atom.index for atom in residue.atoms()]) + comp_atomids[key] = atom_indices + return comp_atomids + + @staticmethod + def _update_positions( + omm_topology_A: openmm.app.Topology, + omm_topology_B: openmm.app.Topology, + positions_A: simtk.unit.Quantity, + positions_B: simtk.unit.Quantity, + atom_indices_A: Optional[list], + atom_indices_B: Optional[list], + ) -> simtk.unit.Quantity: + """ + Get new positions for the stateB after equilibration. + + Note + ---- + Must be implemented in the child class. + In the complex phase, this is achieved by aligning the proteins, + in the solvent phase, the ligand B are offset from ligand A + """ + ... + + @staticmethod + def _set_positions( + off_molecule: OFFMolecule, + positions: unit.Quantity, + ) -> OFFMolecule: + """ + Updates the positions of an OFFMolecule.Topology + """ + off_topology = off_molecule.to_topology() + off_topology.clear_positions() + off_topology.set_positions(positions) + return off_molecule + + @staticmethod + def _add_restraints( + system: openmm.System, + u_A: mda.Universe, + u_B: mda.Universe, + ligand_1: RDKitMolecule, + ligand_2: RDKitMolecule, + ligand_1_inxs: list[int], + ligand_2_inxs: list[int], + ligand_2_inxs_B: list[int], + protein_inxs: Optional[list[int]], + positions_AB: omm_unit.Quantity, + settings: dict[str, SettingsBaseModel], + ) -> openmm.System: + """ + Get new positions for the stateB after equilibration. + + Note + ---- + Must be implemented in the child class. + In the complex phase, this is achieved by aligning the proteins, + in the solvent phase, the ligand B are offset from ligand A + """ + ... + + @staticmethod + def get_smc_comps( + alchem_comps: dict[str, list[Component]], + smc_comps: dict[SmallMoleculeComponent, OFFMolecule], + ) -> tuple[dict[SmallMoleculeComponent, OFFMolecule], + dict[SmallMoleculeComponent, OFFMolecule], + dict[SmallMoleculeComponent, OFFMolecule], + dict[SmallMoleculeComponent, OFFMolecule]]: + # 6. Get smcs for the different states and the common smcs + smc_off_A = {m: m.to_openff() for m in alchem_comps['stateA']} + smc_off_B = {m: m.to_openff() for m in alchem_comps['stateB']} + smc_off_both = {m: m.to_openff() for m in smc_comps + if (m not in alchem_comps["stateA"] and m not in + alchem_comps["stateB"])} + smc_comps_A = smc_off_A | smc_off_both + smc_comps_B = smc_off_B | smc_off_both + smc_comps_AB = smc_off_A | smc_off_B | smc_off_both + + return smc_comps_A, smc_comps_B, smc_comps_AB, smc_off_B + + def get_system( + self, + solv_comp: SolventComponent, + prot_comp: ProteinComponent, + smc_comp: dict[SmallMoleculeComponent, OFFMolecule], + settings: dict[str, SettingsBaseModel], + ): + """ + Creates an OpenMM system, topology, positions, modeller and also + residue IDs of the different components + + Parameters + ---------- + solv_comp: SolventComponent + prot_comp: Optional[ProteinComponent] + smc_comp: dict[SmallMoleculeComponent,OFFMolecule] + settings: dict[str, SettingsBaseModel] + A dictionary of settings object for the unit. + + Returns + ------- + omm_system: app.System + omm_topology: app.Topology + positions: simtk.unit.Quantity + system_modeller: app.Modeller + comp_resids: dict[Component, npt.NDArray] + A dictionary of residues for each component in the System. + """ + # 5. Get system generator + system_generator = self._get_system_generator(settings, solv_comp) + + # 8. Get modeller for stateA, stateB, and stateAB + system_modeller, comp_resids = self._get_modeller( + prot_comp, solv_comp, smc_comp, + system_generator, settings['solvation_settings'], + ) + + # 5. Get OpenMM topology, positions and system + omm_topology, omm_system, positions = self._get_omm_objects( + system_modeller, system_generator, list(smc_comp.values()) + ) + + return omm_system, omm_topology, positions, system_modeller, comp_resids + + def get_system_AB( + self, + solv_comp: SolventComponent, + system_modeller_A: openmm.app.Modeller, + smc_comps_AB: dict[SmallMoleculeComponent, OFFMolecule], + smc_off_B: dict[SmallMoleculeComponent, OFFMolecule], + settings: dict[str, SettingsBaseModel], + shared_basepath: pathlib.Path, + ): + """ + Creates an OpenMM system, topology, positions, and modeller. + + Parameters + ---------- + solv_comp: SolventComponent + system_modeller_A: app.Modeller + smc_comps_AB: dict[SmallMoleculeComponent,OFFMolecule] + smc_off_B: dict[SmallMoleculeComponent,OFFMolecule] + settings: dict[str, SettingsBaseModel] + A dictionary of settings object for the unit. + shared_basepath: pathlib.Path + + Returns + ------- + omm_system_AB: openmm.System + omm_topology_AB: openmm.app.Topology + positions_AB: simtk.unit.Quantity + system_modeller_AB: openmm.app.Modeller + """ + # 5. Get system generator + system_generator = self._get_system_generator(settings, solv_comp) + + # Get modeller B only ligand B + modeller_ligandB, comp_resids_ligB = self._get_modeller( + None, None, smc_off_B, + system_generator, settings['solvation_settings'], + ) + + # Take the modeller from system A --> every water/ion should be in + # the same location + system_modeller_AB = copy.copy(system_modeller_A) + system_modeller_AB.add(modeller_ligandB.topology, + modeller_ligandB.positions) + + omm_topology_AB, omm_system_AB, positions_AB = self._get_omm_objects( + system_modeller_AB, system_generator, list(smc_comps_AB.values()) + ) + simtk.openmm.app.pdbfile.PDBFile.writeFile(omm_topology_AB, + positions_AB, + open( + shared_basepath / 'outputAB.pdb', + 'w')) + + return omm_system_AB, omm_topology_AB, positions_AB, system_modeller_AB + + def run(self, dry=False, verbose=True, + scratch_basepath=None, shared_basepath=None) -> dict[str, Any]: + """ + Run the SepTop free energy calculation. + + Parameters + ---------- + dry : bool + Do a dry run of the calculation, creating all necessary alchemical + system components (topology, system, sampler, etc...) but without + running the simulation, default False + verbose : bool + Verbose output of the simulation progress. Output is provided via + INFO level logging, default True + scratch_basepath : pathlib.Path + Path to the scratch (temporary) directory space. + shared_basepath : pathlib.Path + Path to the shared (persistent) directory space. + + Returns + ------- + dict + Outputs created in the basepath directory or the debug objects + (i.e. sampler) if ``dry==True``. + """ + # 0. General preparation tasks + self._prepare(verbose, scratch_basepath, shared_basepath) + + # 1. Get components + self.logger.info("Creating and setting up the OpenMM systems") + alchem_comps, solv_comp, prot_comp, smc_comps = self._get_components() + smc_comps_A, smc_comps_B, smc_comps_AB, smc_off_B = self.get_smc_comps( + alchem_comps, smc_comps) + + # 3. Get settings + settings = self._handle_settings() + + # 4. Assign partial charges + self._assign_partial_charges(settings['charge_settings'], smc_comps_AB) + + # 5. Get the OpenMM systems + omm_system_A, omm_topology_A, positions_A, modeller_A, comp_resids_A = self.get_system( + solv_comp, + prot_comp, + smc_comps_A, + settings, + ) + + omm_system_B, omm_topology_B, positions_B, modeller_B, comp_resids_B = self.get_system( + solv_comp, + prot_comp, + smc_comps_B, + settings, + ) + + omm_system_AB, omm_topology_AB, positions_AB, modeller_AB = self.get_system_AB( + solv_comp, + modeller_A, + smc_comps_AB, + smc_off_B, + settings, + self.shared_basepath + ) + + # We assume that modeller.add will always put the ligand B towards + # the end of the residues + resids_A = list(itertools.chain(*comp_resids_A.values())) + resids_AB = [r.index for r in modeller_AB.topology.residues()] + diff_resids = list(set(resids_AB) - set(resids_A)) + comp_resids_AB = comp_resids_A | { + alchem_comps["stateB"][0]: np.array(diff_resids)} + + # 6. Pre-equilbrate System (Test + Avoid NaNs + get stable system) + self.logger.info("Pre-equilibrating the systems") + equ_positions_A = self._pre_equilibrate( + omm_system_A, omm_topology_A, positions_A, settings, 'A', dry + ) + equ_positions_B = self._pre_equilibrate( + omm_system_B, omm_topology_B, positions_B, settings, 'B', dry + ) + + + simtk.openmm.app.pdbfile.PDBFile.writeFile( + omm_topology_A, equ_positions_A, open(self.shared_basepath / 'outputA_equ.pdb', 'w')) + simtk.openmm.app.pdbfile.PDBFile.writeFile( + omm_topology_B, equ_positions_B, open(self.shared_basepath / 'outputB_equ.pdb', 'w')) + + # 7. Get all the right atom indices for alignments + comp_atomids_A = self._get_atom_indices(omm_topology_A, comp_resids_A) + all_atom_ids_A = list(itertools.chain(*comp_atomids_A.values())) + comp_atomids_B = self._get_atom_indices(omm_topology_B, comp_resids_B) + + # Get the system A atom indices of ligand A + atom_indices_A = comp_atomids_A[alchem_comps['stateA'][0]] + # Get the system B atom indices of ligand B + atom_indices_B = comp_atomids_B[alchem_comps['stateB'][0]] + + # 8. Update the positions of system B: + # - complex: Align protein + # - solvent: Offset ligand B with respect to ligand A + updated_positions_B = self._update_positions( + omm_topology_A, omm_topology_B, equ_positions_A, equ_positions_B, + atom_indices_A, atom_indices_B) + simtk.openmm.app.pdbfile.PDBFile.writeFile(omm_topology_B, + updated_positions_B, + open(self.shared_basepath / 'outputB_new.pdb', + 'w')) + + # Get atom indices for ligand A and ligand B and the solvent in the + # system AB + comp_atomids_AB = self._get_atom_indices(omm_topology_AB, comp_resids_AB) + atom_indices_AB_B = comp_atomids_AB[alchem_comps['stateB'][0]] + atom_indices_AB_A = comp_atomids_AB[alchem_comps['stateA'][0]] + + # Update positions from AB system + positions_AB[all_atom_ids_A[0]:all_atom_ids_A[-1] + 1, :] = equ_positions_A + positions_AB[atom_indices_AB_B[0]:atom_indices_AB_B[-1] + 1, + :] = updated_positions_B[atom_indices_B[0]:atom_indices_B[-1] + 1] + + # 9. Create the alchemical system + self.logger.info("Creating the alchemical system and applying restraints") + + factory = AbsoluteAlchemicalFactory(consistent_exceptions=False) + # Alchemical Region for ligand A + alchemical_region_A = AlchemicalRegion( + alchemical_atoms=atom_indices_AB_A, name='A') + # Alchemical Region for ligand B + alchemical_region_B = AlchemicalRegion( + alchemical_atoms=atom_indices_AB_B, name='B') + alchemical_system = factory.create_alchemical_system( + omm_system_AB, [alchemical_region_A, alchemical_region_B]) + + # 10. Apply Restraints + off_A = alchem_comps["stateA"][0].to_openff() + lig_A_pos = positions_AB[atom_indices_AB_A[0]:atom_indices_AB_A[-1]+1, :] / omm_units.nanometers * unit.nanometer + self._set_positions(off_A, lig_A_pos) + off_B = alchem_comps["stateB"][0].to_openff() + lig_B_pos = positions_AB[ + atom_indices_AB_B[0]:atom_indices_AB_B[-1] + 1, + :] / omm_units.nanometers * unit.nanometer + self._set_positions(off_B, lig_B_pos) + + ligand_A_ref_inxs, ligand_B_ref_inxs = select_ligand_idxs(off_A, off_B) + + ligand_A_inxs = tuple([atom_indices_AB_A[inx] for inx in ligand_A_ref_inxs]) + ligand_B_inxs = tuple([atom_indices_AB_B[inx] for inx in ligand_B_ref_inxs]) + print(ligand_A_inxs) + print(ligand_B_inxs) + # Update the positions in the modeller + modeller_A.positions = equ_positions_A + modeller_B.positions = updated_positions_B + modeller_AB.positions = positions_AB + u_A = mda.Universe(omm_topology_A, modeller_A) + u_B = mda.Universe(omm_topology_B, modeller_B) + if prot_comp: + protein_idxs = comp_atomids_AB[prot_comp] + else: + protein_idxs = None + system = self._add_restraints( + alchemical_system, u_A, u_B, + alchem_comps["stateA"][0].to_rdkit(), + alchem_comps["stateB"][0].to_rdkit(), + atom_indices_AB_A, + atom_indices_AB_B, + atom_indices_B, + protein_idxs, + positions_AB, + settings, + ) + # # Check that the restraints are correctly applied by running a short equilibration + # equ_positions_restraints = self._pre_equilibrate( + # system, omm_topology_AB, positions_AB, settings, dry + # ) + topology_file = self.shared_basepath / 'topology.pdb' + simtk.openmm.app.pdbfile.PDBFile.writeFile(omm_topology_AB, + positions_AB, + open(topology_file, + 'w')) + + # ToDo: also apply REST + + system_outfile = self.shared_basepath / "system.xml.bz2" + + # Serialize system, state and integrator + serialize(system, system_outfile) + + return { + "system": system_outfile, + "topology": topology_file, + } + + +class BaseSepTopRunUnit(gufe.ProtocolUnit): + """ + Base class for running ligand SepTop RBFE free energy transformations. + """ + + def _prepare( + self, verbose: bool, + scratch_basepath: Optional[pathlib.Path], + shared_basepath: Optional[pathlib.Path], + ): + """ + Set basepaths and do some initial logging. + + Parameters + ---------- + verbose : bool + Verbose output of the simulation progress. Output is provided via + INFO level logging. + basepath : Optional[pathlib.Path] + Optional base path to write files to. + """ + self.verbose = verbose + + if self.verbose: + self.logger.info("setting up alchemical system") + + # set basepaths + def _set_optional_path(basepath): + if basepath is None: + return pathlib.Path('.') + return basepath + + self.scratch_basepath = _set_optional_path(scratch_basepath) + self.shared_basepath = _set_optional_path(shared_basepath) + + + @abc.abstractmethod + def _get_components(self) -> tuple[dict[str, list[Component]], + Optional[gufe.SolventComponent], + Optional[gufe.ProteinComponent], + dict[ + SmallMoleculeComponent, + OFFMolecule]]: + """ + Get the relevant components to create the alchemical system with. + + Note + ---- + Must be implemented in the child class. + """ + ... + + @abc.abstractmethod + def _handle_settings(self): + """ + Get a dictionary with the following entries: + * forcefield_settings : OpenMMSystemGeneratorFFSettings + * thermo_settings : ThermoSettings + * solvation_settings : BaseSolvationSettings + * alchemical_settings : AlchemicalSettings + * lambda_settings : LambdaSettings + * engine_settings : OpenMMEngineSettings + * integrator_settings : IntegratorSettings + * equil_simulation_settings : MDSimulationSettings + * equil_output_settings : MDOutputSettings + * simulation_settings : MultiStateSimulationSettings + * output_settings : MultiStateOutputSettings + + Settings may change depending on what type of simulation you are + running. Cherry pick them and return them to be available later on. + + This method should also add various validation checks as necessary. + + Note + ---- + Must be implemented in the child class. + """ + ... + + @abc.abstractmethod + def _get_lambda_schedule( + self, settings: dict[str, SettingsBaseModel] + ) -> dict[str, npt.NDArray]: + """ + Create the lambda schedule + + Parameters + ---------- + settings : dict[str, SettingsBaseModel] + Settings for the unit. + + Returns + ------- + lambdas : dict[str, npt.NDArray] + + Note + ---- + Must be implemented in the child class. + """ + ... + + def _get_states( + self, + alchemical_system: openmm.System, + positions: openmm.unit.Quantity, + settings: dict[str, SettingsBaseModel], + lambdas: dict[str, npt.NDArray], + solvent_comp: Optional[SolventComponent], + ) -> tuple[list[SamplerState], list[ThermodynamicState]]: + """ + Get a list of sampler and thermodynmic states from an + input alchemical system. + + Parameters + ---------- + alchemical_system : openmm.System + Alchemical system to get states for. + positions : openmm.unit.Quantity + Positions of the alchemical system. + settings : dict[str, SettingsBaseModel] + A dictionary of settings for the protocol unit. + lambdas : dict[str, npt.NDArray] + A dictionary of lambda scales. + solvent_comp : Optional[SolventComponent] + The solvent component of the system, if there is one. + + Returns + ------- + sampler_states : list[SamplerState] + A list of SamplerStates for each replica in the system. + cmp_states : list[ThermodynamicState] + A list of ThermodynamicState for each replica in the system. + """ + alchemical_state = SepTopParameterState.from_system(alchemical_system) + + # Set up the system constants + temperature = settings['thermo_settings'].temperature + pressure = settings['thermo_settings'].pressure + constants = dict() + constants['temperature'] = ensure_quantity(temperature, 'openmm') + if solvent_comp is not None: + constants['pressure'] = ensure_quantity(pressure, 'openmm') + + cmp_states = create_thermodynamic_state_protocol( + alchemical_system, protocol=lambdas, + constants=constants, + composable_states=[alchemical_state], + ) + + sampler_state = SamplerState(positions=positions) + if alchemical_system.usesPeriodicBoundaryConditions(): + box = alchemical_system.getDefaultPeriodicBoxVectors() + sampler_state.box_vectors = box + + sampler_states = [sampler_state for _ in cmp_states] + # potentials = [state.getPotentialEnergy() for state in sampler_states] + # print(potentials) + + return sampler_states, cmp_states + + def _get_reporter( + self, + topology: app.Topology, + positions: openmm.unit.Quantity, + simulation_settings: MultiStateSimulationSettings, + output_settings: MultiStateOutputSettings, + ) -> multistate.MultiStateReporter: + """ + Get a MultistateReporter for the simulation you are running. + + Parameters + ---------- + topology : app.Topology + A Topology of the system being created. + positions : openmm.unit.Quantity + Positions of the pre-alchemical simulation system. + simulation_settings : MultiStateSimulationSettings + Multistate simulation control settings, specifically containing + the amount of time per state sampling iteration. + output_settings: MultiStateOutputSettings + Output settings for the simulations + shared_basepath: pathlib.Path + + Returns + ------- + reporter : multistate.MultiStateReporter + The reporter for the simulation. + """ + mdt_top = mdt.Topology.from_openmm(topology) + + selection_indices = mdt_top.select( + output_settings.output_indices + ) + + nc = self.shared_basepath / output_settings.output_filename + chk = output_settings.checkpoint_storage_filename + chk_intervals = settings_validation.convert_checkpoint_interval_to_iterations( + checkpoint_interval=output_settings.checkpoint_interval, + time_per_iteration=simulation_settings.time_per_iteration, + ) + + reporter = multistate.MultiStateReporter( + storage=nc, + analysis_particle_indices=selection_indices, + checkpoint_interval=chk_intervals, + checkpoint_storage=chk, + ) + + # Write out the structure's PDB whilst we're here + if len(selection_indices) > 0: + traj = mdt.Trajectory( + positions[selection_indices, :], + mdt_top.subset(selection_indices), + ) + traj.save_pdb( + self.shared_basepath / output_settings.output_structure + ) + + return reporter + + def _get_ctx_caches( + self, + engine_settings: OpenMMEngineSettings + ) -> tuple[openmmtools.cache.ContextCache, openmmtools.cache.ContextCache]: + """ + Set the context caches based on the chosen platform + + Parameters + ---------- + engine_settings : OpenMMEngineSettings, + + Returns + ------- + energy_context_cache : openmmtools.cache.ContextCache + The energy state context cache. + sampler_context_cache : openmmtools.cache.ContextCache + The sampler state context cache. + """ + platform = omm_compute.get_openmm_platform( + engine_settings.compute_platform, + ) + + energy_context_cache = openmmtools.cache.ContextCache( + capacity=None, time_to_live=None, platform=platform, + ) + + sampler_context_cache = openmmtools.cache.ContextCache( + capacity=None, time_to_live=None, platform=platform, + ) + + return energy_context_cache, sampler_context_cache + + @staticmethod + def _get_integrator( + integrator_settings: IntegratorSettings, + simulation_settings: MultiStateSimulationSettings + ) -> openmmtools.mcmc.LangevinDynamicsMove: + """ + Return a LangevinDynamicsMove integrator + + Parameters + ---------- + integrator_settings : IntegratorSettings + simulation_settings : MultiStateSimulationSettings + + Returns + ------- + integrator : openmmtools.mcmc.LangevinDynamicsMove + A configured integrator object. + """ + steps_per_iteration = settings_validation.convert_steps_per_iteration( + simulation_settings, integrator_settings + ) + + integrator = openmmtools.mcmc.LangevinDynamicsMove( + timestep=to_openmm(integrator_settings.timestep), + collision_rate=to_openmm( + integrator_settings.langevin_collision_rate), + n_steps=steps_per_iteration, + reassign_velocities=integrator_settings.reassign_velocities, + n_restart_attempts=integrator_settings.n_restart_attempts, + constraint_tolerance=integrator_settings.constraint_tolerance, + ) + + return integrator + + @staticmethod + def _get_sampler( + integrator: openmmtools.mcmc.LangevinDynamicsMove, + reporter: openmmtools.multistate.MultiStateReporter, + simulation_settings: MultiStateSimulationSettings, + thermo_settings: ThermoSettings, + cmp_states: list[ThermodynamicState], + sampler_states: list[SamplerState], + energy_context_cache: openmmtools.cache.ContextCache, + sampler_context_cache: openmmtools.cache.ContextCache + ) -> multistate.MultiStateSampler: + """ + Get a sampler based on the equilibrium sampling method requested. + + Parameters + ---------- + integrator : openmmtools.mcmc.LangevinDynamicsMove + The simulation integrator. + reporter : openmmtools.multistate.MultiStateReporter + The reporter to hook up to the sampler. + simulation_settings : MultiStateSimulationSettings + Settings for the alchemical sampler. + thermo_settings : ThermoSettings + Thermodynamic settings + cmp_states : list[ThermodynamicState] + A list of thermodynamic states to sample. + sampler_states : list[SamplerState] + A list of sampler states. + energy_context_cache : openmmtools.cache.ContextCache + Context cache for the energy states. + sampler_context_cache : openmmtool.cache.ContextCache + Context cache for the sampler states. + + Returns + ------- + sampler : multistate.MultistateSampler + A sampler configured for the chosen sampling method. + """ + rta_its, rta_min_its = settings_validation.convert_real_time_analysis_iterations( + simulation_settings=simulation_settings, + ) + et_target_err = settings_validation.convert_target_error_from_kcal_per_mole_to_kT( + thermo_settings.temperature, + simulation_settings.early_termination_target_error, + ) + + # Select the right sampler + # Note: doesn't need else, settings already validates choices + if simulation_settings.sampler_method.lower() == "repex": + sampler = multistate.ReplicaExchangeSampler( + mcmc_moves=integrator, + online_analysis_interval=rta_its, + online_analysis_target_error=et_target_err, + online_analysis_minimum_iterations=rta_min_its + ) + elif simulation_settings.sampler_method.lower() == "sams": + sampler = multistate.SAMSSampler( + mcmc_moves=integrator, + online_analysis_interval=rta_its, + online_analysis_minimum_iterations=rta_min_its, + flatness_criteria=simulation_settings.sams_flatness_criteria, + gamma0=simulation_settings.sams_gamma0, + ) + elif simulation_settings.sampler_method.lower() == 'independent': + sampler = multistate.MultiStateSampler( + mcmc_moves=integrator, + online_analysis_interval=rta_its, + online_analysis_target_error=et_target_err, + online_analysis_minimum_iterations=rta_min_its, + ) + + sampler.create( + thermodynamic_states=cmp_states, + sampler_states=sampler_states, + storage=reporter + ) + + sampler.energy_context_cache = energy_context_cache + sampler.sampler_context_cache = sampler_context_cache + + return sampler + + def _run_simulation( + self, + sampler: multistate.MultiStateSampler, + reporter: multistate.MultiStateReporter, + settings: dict[str, SettingsBaseModel], + dry: bool, + verbose: bool, + shared_basepath: pathlib.Path, + ): + """ + Run the simulation. + + Parameters + ---------- + sampler : multistate.MultiStateSampler + The sampler associated with the simulation to run. + reporter : multistate.MultiStateReporter + The reporter associated with the sampler. + settings : dict[str, SettingsBaseModel] + The dictionary of settings for the protocol. + dry : bool + Whether or not to dry run the simulation + + Returns + ------- + unit_results_dict : Optional[dict] + A dictionary containing all the free energy results, + if not a dry run. + """ + # Get the relevant simulation steps + mc_steps = settings_validation.convert_steps_per_iteration( + simulation_settings=settings['simulation_settings'], + integrator_settings=settings['integrator_settings'], + ) + + equil_steps = settings_validation.get_simsteps( + sim_length=settings['simulation_settings'].equilibration_length, + timestep=settings['integrator_settings'].timestep, + mc_steps=mc_steps, + ) + prod_steps = settings_validation.get_simsteps( + sim_length=settings['simulation_settings'].production_length, + timestep=settings['integrator_settings'].timestep, + mc_steps=mc_steps, + ) + + if not dry: # pragma: no-cover + # minimize + if verbose: + self.logger.info("minimizing systems") + sampler.minimize( + max_iterations=settings[ + 'simulation_settings'].minimization_steps + ) + # equilibrate + if verbose: + self.logger.info("equilibrating systems") + + sampler.equilibrate(int(equil_steps / mc_steps)) # type: ignore + + # production + if verbose: + self.logger.info("running production phase") + sampler.extend(int(prod_steps / mc_steps)) # type: ignore + + if verbose: + self.logger.info("production phase complete") + + if verbose: + self.logger.info("post-simulation result analysis") + + analyzer = multistate_analysis.MultistateEquilFEAnalysis( + reporter, + sampling_method=settings[ + 'simulation_settings'].sampler_method.lower(), + result_units=unit.kilocalorie_per_mole + ) + analyzer.plot(filepath=shared_basepath, filename_prefix="") + analyzer.close() + + return analyzer.unit_results_dict + + else: + # close reporter when you're done, prevent file handle clashes + reporter.close() + + # clean up the reporter file + fns = [self.shared_basepath / settings[ + 'output_settings'].output_filename, + self.shared_basepath / settings[ + 'output_settings'].checkpoint_storage_filename] + for fn in fns: + os.remove(fn) + + return None + + def run( + self, serialized_system, serialized_topology, dry=False, verbose=True, + scratch_basepath=None, shared_basepath=None, + ) -> dict[str, Any]: + """ + Run the simulation part of the SepTop protocol. + + Parameters + ---------- + serialized_system: pathlib.Path + Path to the serialized OpenMM system + serialized_topology: pathlib.Path + Path to the serialized topology of the system + dry: bool + Whether or not to run a dry run + verbose: bool + + Returns + ------- + dict : dict[str, str] + Dictionary with paths to ... + """ + # 0. General preparation tasks + self._prepare(verbose, scratch_basepath, shared_basepath) + + # 1. Get components + self.logger.info("Running the SepTop simulation.") + + settings = self._handle_settings() + alchem_comps, solv_comp, prot_comp, smc_comps = self._get_components() + + system = deserialize(serialized_system) + pdb = simtk.openmm.app.pdbfile.PDBFile(str(serialized_topology)) + positions = pdb.getPositions(asNumpy=True) + lambdas = self._get_lambda_schedule(settings) + + # 10. Get compound and sampler states + sampler_states, cmp_states = self._get_states( + system, positions, settings, + lambdas, solv_comp + ) + + # 11. Create the multistate reporter & create PDB + reporter = self._get_reporter( + pdb.topology, positions, + settings['simulation_settings'], + settings['output_settings'], + ) + + # Wrap in try/finally to avoid memory leak issues + try: + # 12. Get context caches + energy_ctx_cache, sampler_ctx_cache = self._get_ctx_caches( + settings['engine_settings'] + ) + + # 13. Get integrator + integrator = self._get_integrator( + settings['integrator_settings'], + settings['simulation_settings'], + ) + + # 14. Get sampler + sampler = self._get_sampler( + integrator, reporter, settings['simulation_settings'], + settings['thermo_settings'], + cmp_states, sampler_states, + energy_ctx_cache, sampler_ctx_cache + ) + + # 15. Run simulation + unit_result_dict = self._run_simulation( + sampler, reporter, settings, dry, verbose, shared_basepath + ) + + finally: + # close reporter when you're done to prevent file handle clashes + reporter.close() + + # clear GPU context + # Note: use cache.empty() when openmmtools #690 is resolved + for context in list(energy_ctx_cache._lru._data.keys()): + del energy_ctx_cache._lru._data[context] + for context in list(sampler_ctx_cache._lru._data.keys()): + del sampler_ctx_cache._lru._data[context] + # cautiously clear out the global context cache too + for context in list( + openmmtools.cache.global_context_cache._lru._data.keys()): + del openmmtools.cache.global_context_cache._lru._data[context] + + del sampler_ctx_cache, energy_ctx_cache + + # Keep these around in a dry run so we can inspect things + if not dry: + del integrator, sampler + + if not dry: + nc = self.shared_basepath / settings[ + 'output_settings'].output_filename + chk = settings['output_settings'].checkpoint_storage_filename + return { + 'nc': nc, + 'last_checkpoint': chk, + **unit_result_dict, + } + else: + return { + 'debug': {'sampler': sampler}} diff --git a/openfe/protocols/openmm_septop/equil_septop_method.py b/openfe/protocols/openmm_septop/equil_septop_method.py new file mode 100644 index 000000000..8837e3e6c --- /dev/null +++ b/openfe/protocols/openmm_septop/equil_septop_method.py @@ -0,0 +1,1587 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +"""OpenMM Equilibrium SepTop RBFE Protocol --- + :mod:`openfe.protocols.openmm_septop.equil_septop_method` +=============================================================================================================== + +This module implements the necessary methodology tooling to run a +Separated Topologies RBFE calculation using OpenMM tools and one of the +following alchemical sampling methods: + +* Hamiltonian Replica Exchange +* Self-adjusted mixture sampling +* Independent window sampling + +Current limitations +------------------- + +* Only small molecules are allowed to act as alchemical molecules. + Alchemically changing protein or solvent components would induce + perturbations which are too large to be handled by this Protocol. + + +Acknowledgements +---------------- +This Protocol is based on, and leverages components originating from +the SepTop implementation from the Mobleylab +(https://github.com/MobleyLab/SeparatedTopologies) as well as +femto (https://github.com/Psivant/femto). +""" +from __future__ import annotations + +import pathlib +import logging +import warnings +from collections import defaultdict +import gufe +import openmm +import openmm.unit +import simtk +import simtk.unit as omm_units +from gufe.components import Component +import itertools +import numpy as np +import numpy.typing as npt +from openff.units import unit +from openff.toolkit.topology import Molecule as OFFMolecule +from openmmtools import multistate +import mdtraj as md +from typing import Optional, Union +from typing import Any, Iterable +import uuid + +from gufe import ( + settings, + ChemicalSystem, SmallMoleculeComponent, + ProteinComponent, SolventComponent +) +from openfe.protocols.openmm_septop.equil_septop_settings import ( + SepTopSettings, + OpenMMSolvationSettings, AlchemicalSettings, LambdaSettings, + MDSimulationSettings, SepTopEquilOutputSettings, + MultiStateSimulationSettings, OpenMMEngineSettings, + IntegratorSettings, MultiStateOutputSettings, + OpenFFPartialChargeSettings, + SettingsBaseModel, SolventRestraintsSettings, ComplexRestraintsSettings +) +from ..openmm_utils import system_validation, settings_validation +from .base import BaseSepTopSetupUnit, BaseSepTopRunUnit +from openfe.utils import log_system_probe +from openfe.due import due, Doi +from .femto_restraints import ( + select_receptor_idxs, + check_receptor_idxs, + create_boresch_restraint, +) +from .femto_utils import assign_force_groups +from openff.units.openmm import to_openmm +from rdkit import Chem +import MDAnalysis as mda +from openfe.protocols.restraint_utils.geometry.boresch import ( + find_boresch_restraint, find_guest_atom_candidates) +from openfe.protocols.restraint_utils.geometry.utils import get_central_atom_idx + + +due.cite(Doi("10.5281/zenodo.596622"), + description="OpenMMTools", + path="openfe.protocols.openmm_septop.equil_septop_method", + cite_module=True) + +due.cite(Doi("10.1371/journal.pcbi.1005659"), + description="OpenMM", + path="openfe.protocols.openmm_septop.equil_septop_method", + cite_module=True) + + +logger = logging.getLogger(__name__) + + +def _get_mdtraj_from_openmm(omm_topology, omm_positions): + """ + Get an mdtraj object from an OpenMM topology and positions. + + Parameters + ---------- + omm_topology: openmm.app.Topology + The OpenMM topology + omm_positions: simtk.unit.Quantity + The OpenMM positions + + Returns + ------- + mdtraj_system: md.Trajectory + """ + mdtraj_topology = md.Topology.from_openmm(omm_topology) + positions_in_mdtraj_format = omm_positions.value_in_unit(omm_units.nanometers) + + unit_cell = omm_topology.getPeriodicBoxVectors() / omm_units.nanometers + unit_cell_length = np.array([i[inx] for inx, i in enumerate(unit_cell)]) + mdtraj_system = md.Trajectory(positions_in_mdtraj_format, + mdtraj_topology, + unitcell_lengths=unit_cell_length) + return mdtraj_system + + +def _check_alchemical_charge_difference( + ligandA: SmallMoleculeComponent, + ligandB: SmallMoleculeComponent, +): + """ + Checks and returns the difference in formal charge between state A + and B. + + Raises + ------ + ValueError + * If a change in net charge is detected. + + Parameters + ---------- + ligandA: SmallMoleculeComponent + ligandB: SmallMoleculeComponent + """ + chg_A = Chem.rdmolops.GetFormalCharge( + ligandA.to_rdkit() + ) + chg_B = Chem.rdmolops.GetFormalCharge( + ligandB.to_rdkit() + ) + + difference = chg_A - chg_B + + if abs(difference) != 0: + errmsg = ( + f"A charge difference of {difference} is observed " + "between the end states. Unfortunately this protocol " + "currently does not support net charge changes.") + raise ValueError(errmsg) + + return + + +class SepTopProtocolResult(gufe.ProtocolResult): + """Dict-like container for the output of a SepTopProtocol + """ + def __init__(self, **data): + super().__init__(**data) + # TODO: Detect when we have extensions and stitch these together? + if any(len(pur_list) > 2 for pur_list + in itertools.chain(self.data['solvent'].values(), self.data['complex'].values())): + raise NotImplementedError("Can't stitch together results yet") + + def get_individual_estimates(self) -> dict[str, list[tuple[unit.Quantity, unit.Quantity]]]: + """ + Get the individual estimate of the free energies. + + Returns + ------- + dGs : dict[str, list[tuple[unit.Quantity, unit.Quantity]]] + A dictionary, keyed `solvent` and `complex for each leg + of the thermodynamic cycle, with lists of tuples containing + the individual free energy estimates and associated MBAR + uncertainties for each repeat of that simulation type. + """ + complex_dGs = [] + solv_dGs = [] + + for pus in self.data['complex'].values(): + complex_dGs.append(( + pus[0].outputs['unit_estimate'], + pus[0].outputs['unit_estimate_error'] + )) + + for pus in self.data['solvent'].values(): + solv_dGs.append(( + pus[0].outputs['unit_estimate'], + pus[0].outputs['unit_estimate_error'] + )) + + return {'solvent': solv_dGs, 'complex': complex_dGs} + + def get_estimate(self): + """Get the difference in binding free energy estimate for this calculation. + + Returns + ------- + ddG : unit.Quantity + The difference in binding free energy. + This is a Quantity defined with units. + """ + def _get_average(estimates): + # Get the unit value of the first value in the estimates + u = estimates[0][0].u + # Loop through estimates and get the free energy values + # in the unit of the first estimate + ddGs = [i[0].to(u).m for i in estimates] + + return np.average(ddGs) * u + + individual_estimates = self.get_individual_estimates() + solv_ddG = _get_average(individual_estimates['solvent']) + complex_ddG = _get_average(individual_estimates['complex']) + return solv_ddG - complex_ddG + + def get_uncertainty(self): + """Get the relative free energy error for this calculation. + + Returns + ------- + err : unit.Quantity + The standard deviation between estimates of the relative binding free + energy. This is a Quantity defined with units. + """ + def _get_stdev(estimates): + # Get the unit value of the first value in the estimates + u = estimates[0][0].u + # Loop through estimates and get the free energy values + # in the unit of the first estimate + ddGs = [i[0].to(u).m for i in estimates] + + return np.std(ddGs) * u + + individual_estimates = self.get_individual_estimates() + solv_err = _get_stdev(individual_estimates['solvent']) + complex_err = _get_stdev(individual_estimates['complex']) + + # return the combined error + return np.sqrt(solv_err**2 + complex_err**2) + + def get_forward_and_reverse_energy_analysis(self) -> dict[str, list[Optional[dict[str, Union[npt.NDArray, unit.Quantity]]]]]: + """ + Get the reverse and forward analysis of the free energies. + + Returns + ------- + forward_reverse : dict[str, list[Optional[dict[str, Union[npt.NDArray, unit.Quantity]]]]] + A dictionary, keyed `complex` and `solvent` for each leg of the + thermodynamic cycle which each contain a list of dictionaries + containing the forward and reverse analysis of each repeat + of that simulation type. + + The forward and reverse analysis dictionaries contain: + - `fractions`: npt.NDArray + The fractions of data used for the estimates + - `forward_DDGs`, `reverse_DDGs`: unit.Quantity + The forward and reverse estimates for each fraction of data + - `forward_dDDGs`, `reverse_dDDGs`: unit.Quantity + The forward and reverse estimate uncertainty for each + fraction of data. + + If one of the cycle leg list entries is ``None``, this indicates + that the analysis could not be carried out for that repeat. This + is most likely caused by MBAR convergence issues when attempting to + calculate free energies from too few samples. + + Raises + ------ + UserWarning + * If any of the forward and reverse dictionaries are ``None`` in a + given thermodynamic cycle leg. + """ + + forward_reverse: dict[str, list[Optional[dict[str, Union[npt.NDArray, unit.Quantity]]]]] = {} + + for key in ['complex', 'solvent']: + forward_reverse[key] = [ + pus[0].outputs['forward_and_reverse_energies'] + for pus in self.data[key].values() + ] + + if None in forward_reverse[key]: + wmsg = ( + "One or more ``None`` entries were found in the forward " + f"and reverse dictionaries of the repeats of the {key} " + "calculations. This is likely caused by an MBAR convergence " + "failure caused by too few independent samples when " + "calculating the free energies of the 10% timeseries slice." + ) + warnings.warn(wmsg) + + return forward_reverse + + def get_overlap_matrices(self) -> dict[str, list[dict[str, npt.NDArray]]]: + """ + Get a the MBAR overlap estimates for all legs of the simulation. + + Returns + ------- + overlap_stats : dict[str, list[dict[str, npt.NDArray]]] + A dictionary with keys `complex` and `solvent` for each + leg of the thermodynamic cycle, which each containing a + list of dictionaries with the MBAR overlap estimates of + each repeat of that simulation type. + + The underlying MBAR dictionaries contain the following keys: + * ``scalar``: One minus the largest nontrivial eigenvalue + * ``eigenvalues``: The sorted (descending) eigenvalues of the + overlap matrix + * ``matrix``: Estimated overlap matrix of observing a sample from + state i in state j + """ + # Loop through and get the repeats and get the matrices + overlap_stats: dict[str, list[dict[str, npt.NDArray]]] = {} + + for key in ['complex', 'solvent']: + overlap_stats[key] = [ + pus[0].outputs['unit_mbar_overlap'] + for pus in self.data[key].values() + ] + + return overlap_stats + + def get_replica_transition_statistics(self) -> dict[str, list[dict[str, npt.NDArray]]]: + """ + Get the replica exchange transition statistics for all + legs of the simulation. + + Note + ---- + This is currently only available in cases where a replica exchange + simulation was run. + + Returns + ------- + repex_stats : dict[str, list[dict[str, npt.NDArray]]] + A dictionary with keys `complex` and `solvent` for each + leg of the thermodynamic cycle, which each containing + a list of dictionaries containing the replica transition + statistics for each repeat of that simulation type. + + The replica transition statistics dictionaries contain the following: + * ``eigenvalues``: The sorted (descending) eigenvalues of the + lambda state transition matrix + * ``matrix``: The transition matrix estimate of a replica switching + from state i to state j. + """ + repex_stats: dict[str, list[dict[str, npt.NDArray]]] = {} + try: + for key in ['complex', 'solvent']: + repex_stats[key] = [ + pus[0].outputs['replica_exchange_statistics'] + for pus in self.data[key].values() + ] + except KeyError: + errmsg = ("Replica exchange statistics were not found, " + "did you run a repex calculation?") + raise ValueError(errmsg) + + return repex_stats + + def get_replica_states(self) -> dict[str, list[npt.NDArray]]: + """ + Get the timeseries of replica states for all simulation legs. + + Returns + ------- + replica_states : dict[str, list[npt.NDArray]] + Dictionary keyed `complex` and `solvent` for each leg of + the thermodynamic cycle, with lists of replica states + timeseries for each repeat of that simulation type. + """ + replica_states: dict[str, list[npt.NDArray]] = { + 'complex': [], 'solvent': [] + } + + def is_file(filename: str): + p = pathlib.Path(filename) + + if not p.exists(): + errmsg = f"File could not be found {p}" + raise ValueError(errmsg) + + return p + + def get_replica_state(nc, chk): + nc = is_file(nc) + dir_path = nc.parents[0] + chk = is_file(dir_path / chk).name + + reporter = multistate.MultiStateReporter( + storage=nc, checkpoint_storage=chk, open_mode='r' + ) + + retval = np.asarray(reporter.read_replica_thermodynamic_states()) + reporter.close() + + return retval + + for key in ['complex', 'solvent']: + for pus in self.data[key].values(): + states = get_replica_state( + pus[0].outputs['nc'], + pus[0].outputs['last_checkpoint'], + ) + replica_states[key].append(states) + + return replica_states + + def equilibration_iterations(self) -> dict[str, list[float]]: + """ + Get the number of equilibration iterations for each simulation. + + Returns + ------- + equilibration_lengths : dict[str, list[float]] + Dictionary keyed `complex` and `solvent` for each leg + of the thermodynamic cycle, with lists containing the + number of equilibration iterations for each repeat + of that simulation type. + """ + equilibration_lengths: dict[str, list[float]] = {} + + for key in ['complex', 'solvent']: + equilibration_lengths[key] = [ + pus[0].outputs['equilibration_iterations'] + for pus in self.data[key].values() + ] + + return equilibration_lengths + + def production_iterations(self) -> dict[str, list[float]]: + """ + Get the number of production iterations for each simulation. + Returns the number of uncorrelated production samples for each + repeat of the calculation. + + Returns + ------- + production_lengths : dict[str, list[float]] + Dictionary keyed `complex` and `solvent` for each leg of the + thermodynamic cycle, with lists with the number + of production iterations for each repeat of that simulation + type. + """ + production_lengths: dict[str, list[float]] = {} + + for key in ['complex', 'solvent']: + production_lengths[key] = [ + pus[0].outputs['production_iterations'] + for pus in self.data[key].values() + ] + + return production_lengths + + +class SepTopProtocol(gufe.Protocol): + """ + SepTop RBFE calculations using OpenMM and OpenMMTools. + + See Also + -------- + :mod:`openfe.protocols` + :class:`openfe.protocols.openmm_septop.SepTopSettings` + :class:`openfe.protocols.openmm_septop.SepTopProtocolResult` + :class:`openfe.protocols.openmm_septop.SepTopComplexUnit` + :class:`openfe.protocols.openmm_septop.SepTopSolventUnit` + """ + result_cls = SepTopProtocolResult + _settings: SepTopSettings + + @classmethod + def _default_settings(cls): + """A dictionary of initial settings for this creating this Protocol + + These settings are intended as a suitable starting point for creating + an instance of this protocol. It is recommended, however that care is + taken to inspect and customize these before performing a Protocol. + + Returns + ------- + Settings + a set of default settings + """ + return SepTopSettings( + protocol_repeats=1, + solvent_forcefield_settings=settings.OpenMMSystemGeneratorFFSettings(), + complex_forcefield_settings=settings.OpenMMSystemGeneratorFFSettings(), + thermo_settings=settings.ThermoSettings( + temperature=298.15 * unit.kelvin, + pressure=1 * unit.bar, + ), + alchemical_settings=AlchemicalSettings(), + lambda_settings=LambdaSettings( + ), + partial_charge_settings=OpenFFPartialChargeSettings(), + solvent_solvation_settings=OpenMMSolvationSettings( + solvent_padding=1.8 * unit.nanometer + ), + complex_solvation_settings=OpenMMSolvationSettings(), + complex_engine_settings=OpenMMEngineSettings(), + solvent_engine_settings=OpenMMEngineSettings(), + integrator_settings=IntegratorSettings(), + solvent_equil_simulation_settings=MDSimulationSettings( + equilibration_length_nvt=0.1 * unit.nanosecond, + equilibration_length=0.1 * unit.nanosecond, + production_length=0.5 * unit.nanosecond, + ), + solvent_equil_output_settings=SepTopEquilOutputSettings( + equil_nvt_structure=None, + equil_npt_structure='equil_npt_structure', + production_trajectory_filename='equil_npt', + log_output='equil_simulation', + ), + solvent_simulation_settings=MultiStateSimulationSettings( + n_replicas=19, + minimization_steps=5000, + equilibration_length=1.0 * unit.nanosecond, + production_length=10.0 * unit.nanosecond, + ), + solvent_output_settings=MultiStateOutputSettings( + output_filename='solvent.nc', + checkpoint_storage_filename='solvent_checkpoint.nc', + ), + complex_equil_simulation_settings=MDSimulationSettings( + equilibration_length_nvt=0.1 * unit.nanosecond, + equilibration_length=0.1 * unit.nanosecond, + production_length=0.5 * unit.nanosecond, + ), + complex_equil_output_settings=SepTopEquilOutputSettings( + equil_nvt_structure=None, + equil_npt_structure='equil_structure', + production_trajectory_filename='equil_npt', + log_output='equil_simulation', + ), + complex_simulation_settings=MultiStateSimulationSettings( + n_replicas=19, + equilibration_length=1.0 * unit.nanosecond, + production_length=10.0 * unit.nanosecond, + ), + complex_output_settings=MultiStateOutputSettings( + output_filename='complex.nc', + checkpoint_storage_filename='complex_checkpoint.nc' + ), + solvent_restraints_settings=SolventRestraintsSettings( + k_distance=1000 * unit.kilojoule_per_mole / unit.nanometer**2, + ), + complex_restraints_settings=ComplexRestraintsSettings( + k_distance=8368.0 * unit.kilojoule_per_mole / unit.nanometer**2 + ), + ) + + @staticmethod + def _validate_complex_endstates( + stateA: ChemicalSystem, stateB: ChemicalSystem, + ) -> None: + """ + A complex transformation is defined (in terms of gufe components) + as starting from one or more ligands and a protein in solvent and + ending up in a state with one less ligand. + + Parameters + ---------- + stateA : ChemicalSystem + The chemical system of end state A + stateB : ChemicalSystem + The chemical system of end state B + + Raises + ------ + ValueError + If there is no SolventComponent and no ProteinComponent + in either stateA or stateB. + """ + # check that there is a protein component + if not any( + isinstance(comp, ProteinComponent) for comp in stateA.values() + ): + errmsg = "No ProteinComponent found in stateA" + raise ValueError(errmsg) + + if not any( + isinstance(comp, ProteinComponent) for comp in stateB.values() + ): + errmsg = "No ProteinComponent found in stateB" + raise ValueError(errmsg) + + # check that there is a solvent component + if not any( + isinstance(comp, SolventComponent) for comp in stateA.values() + ): + errmsg = "No SolventComponent found in stateA" + raise ValueError(errmsg) + + if not any( + isinstance(comp, SolventComponent) for comp in stateB.values() + ): + errmsg = "No SolventComponent found in stateB" + raise ValueError(errmsg) + + @staticmethod + def _validate_alchemical_components( + alchemical_components: dict[str, list[Component]] + ) -> None: + """ + Checks that the ChemicalSystem alchemical components are correct. + + Parameters + ---------- + alchemical_components : Dict[str, list[Component]] + Dictionary containing the alchemical components for + stateA and stateB. + + Raises + ------ + ValueError + * If there are no or more than one alchemical components in state A. + * If there are no or more than one alchemical components in state B. + * If there are any alchemical components that are not + SmallMoleculeComponents + * If a change in net charge between the alchemical components is detected. + + Notes + ----- + * Currently doesn't support alchemical components which are not + SmallMoleculeComponents. + * Currently doesn't support more than one alchemical component + being desolvated. + """ + + # Crash out if there are less or more than one alchemical components + # in state A and B + if len(alchemical_components['stateA']) != 1: + errmsg = ("Exactly one alchemical components must be present in stateA. " + f"Found {len(alchemical_components['stateA'])} " + "alchemical components in stateA") + raise ValueError(errmsg) + + if len(alchemical_components['stateB']) != 1: + errmsg = ("Exactly one alchemical components must be present in stateB. " + f"Found {len(alchemical_components['stateB'])} " + "alchemical components in stateB") + raise ValueError(errmsg) + + # Crash out if any of the alchemical components are not + # SmallMoleculeComponent + alchem_components_states = [alchemical_components['stateA'], alchemical_components['stateB']] + for state in alchem_components_states: + for comp in state: + if not isinstance(comp, SmallMoleculeComponent): + errmsg = ("Non SmallMoleculeComponent alchemical species " + "are not currently supported") + raise ValueError(errmsg) + + # Raise an error if there is a change in netcharge + _check_alchemical_charge_difference( + alchemical_components['stateA'][0], + alchemical_components['stateB'][0]) + + @staticmethod + def _validate_lambda_schedule( + lambda_settings: LambdaSettings, + simulation_settings: MultiStateSimulationSettings, + ) -> None: + """ + Checks that the lambda schedule is set up correctly. + + Parameters + ---------- + lambda_settings : LambdaSettings + the lambda schedule Settings + simulation_settings : MultiStateSimulationSettings + the settings for either the complex or solvent phase + + Raises + ------ + ValueError + If the number of lambda windows differs for electrostatics and sterics. + If the number of replicas does not match the number of lambda windows. + Warnings + If there are non-zero values for restraints (lambda_restraints). + """ + + lambda_elec_A = lambda_settings.lambda_elec_A + lambda_elec_B = lambda_settings.lambda_elec_B + lambda_vdw_A = lambda_settings.lambda_vdw_A + lambda_vdw_B = lambda_settings.lambda_vdw_B + lambda_restraints_A = lambda_settings.lambda_restraints_A + lambda_restraints_B = lambda_settings.lambda_restraints_B + n_replicas = simulation_settings.n_replicas + + # Ensure that all lambda components have equal amount of windows + lambda_components = [lambda_vdw_A, lambda_vdw_B, + lambda_elec_A, lambda_elec_B, + lambda_restraints_A, lambda_restraints_B] + it = iter(lambda_components) + the_len = len(next(it)) + if not all(len(l) == the_len for l in it): + errmsg = ( + "Components elec, vdw, and restraints must have equal amount" + f" of lambda windows. Got {len(lambda_elec_A)} and " + f"{len(lambda_elec_B)} elec lambda windows, " + f"{len(lambda_vdw_A)} and {len(lambda_vdw_B)} vdw " + f"lambda windows, and {len(lambda_restraints_A)} and " + f"{len(lambda_restraints_B)} restraints lambda windows.") + raise ValueError(errmsg) + + # Ensure that number of overall lambda windows matches number of lambda + # windows for individual components + if n_replicas != len(lambda_vdw_B): + errmsg = (f"Number of replicas {n_replicas} does not equal the" + f" number of lambda windows {len(lambda_vdw_B)}") + raise ValueError(errmsg) + + # Check if there are lambda windows with naked charges + for inx, lam in enumerate(lambda_elec_A): + if lam < 1 and lambda_vdw_A[inx] == 1: + errmsg = ( + "There are states along this lambda schedule " + "where there are atoms with charges but no LJ " + f"interactions: Ligand A: lambda {inx}: " + f"elec {lam} vdW {lambda_vdw_A[inx]}") + raise ValueError(errmsg) + if lambda_elec_B[inx] < 1 and lambda_vdw_B[inx] == 1: + errmsg = ( + "There are states along this lambda schedule " + "where there are atoms with charges but no LJ interactions" + f": Ligand B: lambda {inx}: elec {lambda_elec_B[inx]}" + f" vdW {lambda_vdw_B[inx]}") + raise ValueError(errmsg) + + def _create( + self, + stateA: ChemicalSystem, + stateB: ChemicalSystem, + mapping: Optional[Union[gufe.ComponentMapping, list[gufe.ComponentMapping]]] = None, + extends: Optional[gufe.ProtocolDAGResult] = None, + ) -> list[gufe.ProtocolUnit]: + # TODO: extensions + if extends: # pragma: no-cover + raise NotImplementedError("Can't extend simulations yet") + + # Validate components and get alchemical components + self._validate_complex_endstates(stateA, stateB) + alchem_comps = system_validation.get_alchemical_components( + stateA, stateB, + ) + self._validate_alchemical_components(alchem_comps) + + # Validate the lambda schedule + self._validate_lambda_schedule(self.settings.lambda_settings, + self.settings.solvent_simulation_settings) + self._validate_lambda_schedule(self.settings.lambda_settings, + self.settings.complex_simulation_settings) + + # Check solvent compatibility + solv_nonbonded_method = self.settings.solvent_forcefield_settings.nonbonded_method + # Use the more complete system validation solvent checks + system_validation.validate_solvent(stateA, solv_nonbonded_method) + + # Validate protein component + system_validation.validate_protein(stateA) + + # Get the name of the alchemical species + alchname_A = alchem_comps['stateA'][0].name + alchname_B = alchem_comps['stateB'][0].name + + # Create list units for complex and solvent transforms + + solvent_setup = [ + SepTopSolventSetupUnit( + protocol=self, + stateA=stateA, + stateB=stateB, + alchemical_components=alchem_comps, + generation=0, repeat_id=int(uuid.uuid4()), + name=(f"SepTop RBFE Setup, transformation {alchname_A} to " + f"{alchname_B}, solvent leg: repeat {i} generation 0"), + ) + for i in range(self.settings.protocol_repeats) + ] + + solvent_run = [ + SepTopSolventRunUnit( + protocol=self, + stateA=stateA, + stateB=stateB, + alchemical_components=alchem_comps, + setup=solvent_setup[i], + generation=0, repeat_id=int(uuid.uuid4()), + name=(f"SepTop RBFE Run, transformation {alchname_A} to " + f"{alchname_B}, solvent leg: repeat {i} generation 0"), + ) + for i in range(self.settings.protocol_repeats) + ] + + complex_setup = [ + SepTopComplexSetupUnit( + protocol=self, + stateA=stateA, + stateB=stateB, + alchemical_components=alchem_comps, + generation=0, repeat_id=int(uuid.uuid4()), + name=(f"SepTop RBFE Setup, transformation {alchname_A} to " + f"{alchname_B}, complex leg: repeat {i} generation 0"), + ) + for i in range(self.settings.protocol_repeats) + ] + + complex_run = [ + SepTopComplexRunUnit( + protocol=self, + stateA=stateA, + stateB=stateB, + alchemical_components=alchem_comps, + setup=complex_setup[i], + generation=0, repeat_id=int(uuid.uuid4()), + name=(f"SepTop RBFE Run, transformation {alchname_A} to " + f"{alchname_B}, complex leg: repeat {i} generation 0"), + ) + for i in range(self.settings.protocol_repeats) + ] + + return solvent_setup + solvent_run + complex_setup + complex_run + + def _gather( + self, protocol_dag_results: Iterable[gufe.ProtocolDAGResult] + ) -> dict[str, dict[str, Any]]: + # result units will have a repeat_id and generation + # first group according to repeat_id + unsorted_solvent_repeats_setup = defaultdict(list) + unsorted_solvent_repeats_run = defaultdict(list) + unsorted_complex_repeats_setup = defaultdict(list) + unsorted_complex_repeats_run = defaultdict(list) + for d in protocol_dag_results: + pu: gufe.ProtocolUnitResult + for pu in d.protocol_unit_results: + if not pu.ok(): + continue + if pu.outputs['simtype'] == 'solvent': + if 'Run' in pu.name: + unsorted_solvent_repeats_run[ + pu.outputs['repeat_id']].append(pu) + elif 'Setup' in pu.name: + unsorted_solvent_repeats_setup[ + pu.outputs['repeat_id']].append(pu) + else: + if 'Run' in pu.name: + unsorted_complex_repeats_run[ + pu.outputs['repeat_id']].append(pu) + elif 'Setup' in pu.name: + unsorted_complex_repeats_setup[ + pu.outputs['repeat_id']].append(pu) + + repeats: dict[str, dict[str, list[gufe.ProtocolUnitResult]]] = { + 'solvent_setup': {}, 'solvent': {}, + 'complex_setup': {}, 'complex': {}, + } + for k, v in unsorted_solvent_repeats_setup.items(): + repeats['solvent_setup'][str(k)] = sorted(v, key=lambda x: x.outputs['generation']) + for k, v in unsorted_solvent_repeats_run.items(): + repeats['solvent'][str(k)] = sorted(v, key=lambda x: x.outputs['generation']) + + for k, v in unsorted_complex_repeats_setup.items(): + repeats['complex_setup'][str(k)] = sorted(v, key=lambda x: x.outputs['generation']) + for k, v in unsorted_complex_repeats_run.items(): + repeats['complex'][str(k)] = sorted(v, key=lambda x: x.outputs['generation']) + return repeats + + +class SepTopComplexSetupUnit(BaseSepTopSetupUnit): + """ + Protocol Unit for the complex phase of a SepTop free energy calculation + """ + def _get_components(self): + """ + Get the relevant components for a complex transformation. + + Returns + ------- + alchem_comps : dict[str, Component] + A list of alchemical components + solv_comp : SolventComponent + The SolventComponent of the system + prot_comp : Optional[ProteinComponent] + The protein component of the system, if it exists. + small_mols : dict[SmallMoleculeComponent: OFFMolecule] + SmallMoleculeComponents to add to the system. + """ + stateA = self._inputs['stateA'] + alchem_comps = self._inputs['alchemical_components'] + + solv_comp, prot_comp, small_mols = system_validation.get_components(stateA) + small_mols = {m: m.to_openff() for m in small_mols} + # Also get alchemical smc from state B + small_mols_B = {m: m.to_openff() + for m in alchem_comps['stateB']} + small_mols = small_mols | small_mols_B + + return alchem_comps, solv_comp, prot_comp, small_mols + + def _handle_settings(self) -> dict[str, SettingsBaseModel]: + """ + Extract the relevant settings for a complex transformation. + + Returns + ------- + settings : dict[str, SettingsBaseModel] + A dictionary with the following entries: + * forcefield_settings : OpenMMSystemGeneratorFFSettings + * thermo_settings : ThermoSettings + * charge_settings : OpenFFPartialChargeSettings + * solvation_settings : OpenMMSolvationSettings + * alchemical_settings : AlchemicalSettings + * lambda_settings : LambdaSettings + * engine_settings : OpenMMEngineSettings + * integrator_settings : IntegratorSettings + * equil_simulation_settings : MDSimulationSettings + * equil_output_settings : SepTopEquilOutputSettings + * simulation_settings : SimulationSettings + * output_settings: MultiStateOutputSettings + * restraint_settings: ComplexRestraintsSettings + """ + prot_settings = self._inputs['protocol'].settings + + settings = { + 'forcefield_settings': prot_settings.complex_forcefield_settings, + 'thermo_settings': prot_settings.thermo_settings, + 'charge_settings': prot_settings.partial_charge_settings, + 'solvation_settings': prot_settings.complex_solvation_settings, + 'alchemical_settings': prot_settings.alchemical_settings, + 'lambda_settings': prot_settings.lambda_settings, + 'engine_settings': prot_settings.complex_engine_settings, + 'integrator_settings': prot_settings.integrator_settings, + 'equil_simulation_settings': + prot_settings.complex_equil_simulation_settings, + 'equil_output_settings': + prot_settings.complex_equil_output_settings, + 'simulation_settings': prot_settings.complex_simulation_settings, + 'output_settings': prot_settings.complex_output_settings, + 'restraint_settings': prot_settings.complex_restraints_settings} + + settings_validation.validate_timestep( + settings['forcefield_settings'].hydrogen_mass, + settings['integrator_settings'].timestep + ) + + return settings + + @staticmethod + def _update_positions( + omm_topology_A, omm_topology_B, positions_A, positions_B, + atom_indices_A, atom_indices_B, + ) -> simtk.unit.Quantity: + """ + Aligns the protein from complex B onto the protein from complex A and + updates the positions of complex B. + + Parameters + ---------- + omm_topology_A: openmm.app.Topology + OpenMM topology from complex A + omm_topology_B: openmm.app.Topology + OpenMM topology from complex B + positions_A: simtk.unit.Quantity + Positions of the system in state A + positions_B: simtk.unit.Quantity + Positions of the system in state B + + Returns + ------- + updated_positions_B: simtk.unit.Quantity + Updated positions of the complex B + """ + mdtraj_complex_A = _get_mdtraj_from_openmm(omm_topology_A, positions_A) + mdtraj_complex_B = _get_mdtraj_from_openmm(omm_topology_B, positions_B) + mdtraj_complex_B.superpose(mdtraj_complex_A, + atom_indices=mdtraj_complex_A.topology.select( + 'backbone')) + # Extract updated system positions. + updated_positions_B = mdtraj_complex_B.openmm_positions(0) + + return updated_positions_B + + @staticmethod + def _add_restraints( + system: openmm.System, + u_A, + u_B, + ligand_1, + ligand_2, + ligand_1_inxs: tuple[int], + ligand_2_inxs: tuple[int], + ligand_2_inxs_B: tuple[int], + protein_inxs: tuple[int], + positions_AB: omm_units.Quantity, + settings: dict[str, SettingsBaseModel], + ) -> openmm.System: + """ + Adds Boresch restraints to the system. + + Parameters + ---------- + system: openmm.System + The OpenMM system where the restraints will be applied to. + positions: simtk.unit.Quantity + The positions of the OpenMM system + topology: openmm.app.Topology + The OpenMM topology of the system + ligand_1: OFFMolecule.Topology + The topology of the OpenFF Molecule of ligand A + ligand_2: OFFMolecule.Topology + The topology of the OpenFF Molecule of ligand B + settings: dict[str, SettingsBaseModel] + The settings dict + ligand_1_ref_idxs: tuple[int, int, int] + indices from the ligand A topology + ligand_2_ref_idxs: tuple[int, int, int] + indices from the ligand B topology + ligand_1_idxs: tuple[int, int, int] + indices from the ligand A in the full topology + ligand_1_idxs: tuple[int, int, int] + indices from the ligand B in the full topology + + Returns + ------- + system: openmm.System + The OpenMM system with the added restraints forces + """ + + boresch_A = find_boresch_restraint( + u_A, + ligand_1, + ligand_1_inxs, + protein_inxs, + host_selection='name C or name CA or name CB or name N or name O', + dssp_filter=True) + + boresch_B = find_boresch_restraint( + u_B, + ligand_2, + ligand_2_inxs_B, + protein_inxs, + host_selection='name C or name CA or name CB or name N or name O', + dssp_filter=True) + print(boresch_A) + print(boresch_B) + print(boresch_B.guest_atoms) + # We have to update the indices for ligand B to match the AB complex + new_boresch_B_indices = [ligand_2_inxs_B.index(i) for i in boresch_B.guest_atoms] + boresch_B.guest_atoms = [ligand_2_inxs[i] for i in new_boresch_B_indices] + print(boresch_B.guest_atoms) + # Convert restraint units to openmm + k_distance = to_openmm(settings["restraint_settings"].k_distance) + k_theta = to_openmm(settings["restraint_settings"].k_theta) + + force_A = create_boresch_restraint( + boresch_A.host_atoms[::-1], # expects [r3, r2, r1], not [r1, r2, r3] + boresch_A.guest_atoms, + positions_AB, + k_distance, + k_theta, + "lambda_restraints_A", + ) + system.addForce(force_A) + force_B = create_boresch_restraint( + boresch_B.host_atoms[::-1], + # expects [r3, r2, r1], not [r1, r2, r3] + boresch_B.guest_atoms, + positions_AB, + k_distance, + k_theta, + "lambda_restraints_B", + ) + system.addForce(force_B) + + assign_force_groups(system) + + return system + + def _execute( + self, ctx: gufe.Context, **kwargs, + ) -> dict[str, Any]: + log_system_probe(logging.INFO, paths=[ctx.scratch]) + + outputs = self.run(scratch_basepath=ctx.scratch, + shared_basepath=ctx.shared) + + return { + 'repeat_id': self._inputs['repeat_id'], + 'generation': self._inputs['generation'], + 'simtype': 'complex', + **outputs + } + + +class SepTopSolventSetupUnit(BaseSepTopSetupUnit): + """ + Protocol Unit for the solvent phase of an relative SepTop free energy + """ + + def _get_components(self): + """ + Get the relevant components for a solvent transformation. + + Note + ----- + The solvent portion of the transformation is the transformation of one + ligand into the other in the solvent. The only thing that + should be present is the alchemical species in state A and state B + and the SolventComponent. + + Returns + ------- + alchem_comps : dict[str, Component] + A list of alchemical components + solv_comp : SolventComponent + The SolventComponent of the system + prot_comp : Optional[ProteinComponent] + The protein component of the system, if it exists. + small_mols : dict[SmallMoleculeComponent: OFFMolecule] + SmallMoleculeComponents to add to the system. + """ + stateA = self._inputs['stateA'] + alchem_comps = self._inputs['alchemical_components'] + + small_mols_A = {m: m.to_openff() + for m in alchem_comps['stateA']} + small_mols_B = {m: m.to_openff() + for m in alchem_comps['stateB']} + small_mols = small_mols_A | small_mols_B + + solv_comp, _, _ = system_validation.get_components(stateA) + + # 1. We don't need to check that solv_comp is not None, otherwise + # an error will have been raised when calling `validate_solvent` + # in the Protocol's `_create`. + # 2. ProteinComps can't be alchem_comps (for now), so will + # be returned as None + return alchem_comps, solv_comp, None, small_mols + + def _handle_settings(self) -> dict[str, SettingsBaseModel]: + """ + Extract the relevant settings for a complex transformation. + + Returns + ------- + settings : dict[str, SettingsBaseModel] + A dictionary with the following entries: + * forcefield_settings : OpenMMSystemGeneratorFFSettings + * thermo_settings : ThermoSettings + * charge_settings : OpenFFPartialChargeSettings + * solvation_settings : OpenMMSolvationSettings + * alchemical_settings : AlchemicalSettings + * lambda_settings : LambdaSettings + * engine_settings : OpenMMEngineSettings + * integrator_settings : IntegratorSettings + * equil_simulation_settings : MDSimulationSettings + * equil_output_settings : SepTopEquilOutputSettings + * simulation_settings : MultiStateSimulationSettings + * output_settings: MultiStateOutputSettings + * restraint_settings: SolventRestraintsSettings + """ + prot_settings = self._inputs['protocol'].settings + + settings = { + 'forcefield_settings': prot_settings.solvent_forcefield_settings, + 'thermo_settings': prot_settings.thermo_settings, + 'charge_settings': prot_settings.partial_charge_settings, + 'solvation_settings': prot_settings.solvent_solvation_settings, + 'alchemical_settings': prot_settings.alchemical_settings, + 'lambda_settings': prot_settings.lambda_settings, + 'engine_settings': prot_settings.solvent_engine_settings, + 'integrator_settings': prot_settings.integrator_settings, + 'equil_simulation_settings': + prot_settings.solvent_equil_simulation_settings, + 'equil_output_settings': + prot_settings.solvent_equil_output_settings, + 'simulation_settings': prot_settings.solvent_simulation_settings, + 'output_settings': prot_settings.solvent_output_settings, + 'restraint_settings': prot_settings.solvent_restraints_settings} + + settings_validation.validate_timestep( + settings['forcefield_settings'].hydrogen_mass, + settings['integrator_settings'].timestep + ) + + return settings + + + @staticmethod + def _update_positions( + omm_topology_A, omm_topology_B, positions_A, positions_B, + atom_indices_A, atom_indices_B, + ) -> simtk.unit.Quantity: + + # Offset ligand B from ligand A in the solvent + equ_pos_ligandA = positions_A[ + atom_indices_A[0]:atom_indices_A[-1] + 1] + equ_pos_ligandB = positions_B[ + atom_indices_B[0]:atom_indices_B[-1] + 1] + + # Get the mdtraj system of ligand B and the unit cell + unit_cell = omm_topology_A.getPeriodicBoxVectors() + unit_cell = [i[inx] for inx, i in enumerate(unit_cell)] + mdtraj_system_B = _get_mdtraj_from_openmm(omm_topology_B, + positions_B) + + ligand_1_radius = np.linalg.norm( + equ_pos_ligandA - equ_pos_ligandA.mean(axis=0), axis=1).max() + ligand_2_radius = np.linalg.norm( + equ_pos_ligandB - equ_pos_ligandB.mean(axis=0), axis=1).max() + ligand_distance = (ligand_1_radius + ligand_2_radius) * 1.5 * omm_units.nanometer + if ligand_distance > min(unit_cell) / 2: + ligand_distance = min(unit_cell) / 2 + + ligand_offset = equ_pos_ligandA.mean(0) - equ_pos_ligandB.mean(0) + ligand_offset[0] += ligand_distance + + # Offset the ligandB. + mdtraj_system_B.xyz[0][atom_indices_B, :] += ligand_offset / omm_units.nanometers + + # Extract updated system positions. + updated_positions_B = mdtraj_system_B.openmm_positions(0) + + return updated_positions_B + + @staticmethod + def _add_restraints( + system: openmm.System, + u_A, + u_B, + ligand_1, + ligand_2, + ligand_1_inxs: tuple[int], + ligand_2_inxs: tuple[int], + ligand_2_inxs_B: tuple[int], + protein_inxs, + positions_AB, + settings: dict[str, SettingsBaseModel], + ) -> openmm.System: + """ + Apply the distance restraint between the ligands. + + Parameters + ---------- + system: openmm.System + The OpenMM system where the restraints will be applied to. + positions: simtk.unit.Quantity + The positions of the OpenMM system + topology: openmm.app.Topology + The OpenMM topology of the system + ligand_1: OFFMolecule.Topology + The topology of the OpenFF Molecule of ligand A + ligand_2: OFFMolecule.Topology + The topology of the OpenFF Molecule of ligand B + settings: dict[str, SettingsBaseModel] + The settings dict + ligand_1_ref_idxs: tuple[int, int, int] + indices from the ligand A topology + ligand_2_ref_idxs: tuple[int, int, int] + indices from the ligand B topology + ligand_1_idxs: tuple[int, int, int] + indices from the ligand A in the full topology + ligand_1_idxs: tuple[int, int, int] + indices from the ligand B in the full topology + + Returns + ------- + system: openmm.System + The OpenMM system with the added restraints forces + """ + + coords_A = u_A.atoms.positions + coords_B = u_B.atoms.positions + ref_A = ligand_1_inxs[get_central_atom_idx(ligand_1)] + ref_B = ligand_2_inxs_B[get_central_atom_idx(ligand_2)] + print(ref_A, ref_B, ligand_2_inxs[ligand_2_inxs_B.index(ref_B)]) + distance = np.linalg.norm( + coords_A[ref_A] - coords_B[ref_B]) + print(distance) + + k_distance = to_openmm(settings['restraint_settings'].k_distance) + + force = openmm.HarmonicBondForce() + force.addBond( + ref_A, + ligand_2_inxs[ligand_2_inxs_B.index(ref_B)], + distance * openmm.unit.angstrom, + k_distance, + ) + force.setName("alignment_restraint") + force.setForceGroup(6) + + system.addForce(force) + + return system + + def _execute( + self, ctx: gufe.Context, **kwargs, + ) -> dict[str, Any]: + log_system_probe(logging.INFO, paths=[ctx.scratch]) + + outputs = self.run(scratch_basepath=ctx.scratch, + shared_basepath=ctx.shared) + + return { + 'repeat_id': self._inputs['repeat_id'], + 'generation': self._inputs['generation'], + 'simtype': 'solvent', + **outputs + } + + +class SepTopSolventRunUnit(BaseSepTopRunUnit): + """ + Protocol Unit for the solvent phase of an relative SepTop free energy + """ + def _get_components(self): + """ + Get the relevant components for a solvent transformation. + + Note + ----- + The solvent portion of the transformation is the transformation of one + ligand into the other in the solvent. The only thing that + should be present is the alchemical species in state A and state B + and the SolventComponent. + + Returns + ------- + alchem_comps : dict[str, Component] + A list of alchemical components + solv_comp : SolventComponent + The SolventComponent of the system + prot_comp : Optional[ProteinComponent] + The protein component of the system, if it exists. + small_mols : dict[SmallMoleculeComponent: OFFMolecule] + SmallMoleculeComponents to add to the system. + """ + stateA = self._inputs['stateA'] + alchem_comps = self._inputs['alchemical_components'] + + small_mols_A = {m: m.to_openff() + for m in alchem_comps['stateA']} + small_mols_B = {m: m.to_openff() + for m in alchem_comps['stateB']} + small_mols = small_mols_A | small_mols_B + + solv_comp, _, _ = system_validation.get_components(stateA) + + # 1. We don't need to check that solv_comp is not None, otherwise + # an error will have been raised when calling `validate_solvent` + # in the Protocol's `_create`. + # 2. ProteinComps can't be alchem_comps (for now), so will + # be returned as None + return alchem_comps, solv_comp, None, small_mols + + def _handle_settings(self) -> dict[str, SettingsBaseModel]: + """ + Extract the relevant settings for a complex transformation. + + Returns + ------- + settings : dict[str, SettingsBaseModel] + A dictionary with the following entries: + * forcefield_settings : OpenMMSystemGeneratorFFSettings + * thermo_settings : ThermoSettings + * charge_settings : OpenFFPartialChargeSettings + * solvation_settings : OpenMMSolvationSettings + * alchemical_settings : AlchemicalSettings + * lambda_settings : LambdaSettings + * engine_settings : OpenMMEngineSettings + * integrator_settings : IntegratorSettings + * equil_simulation_settings : MDSimulationSettings + * equil_output_settings : SepTopEquilOutputSettings + * simulation_settings : MultiStateSimulationSettings + * output_settings: MultiStateOutputSettings + * restraint_settings: SolventRestraintsSettings + """ + prot_settings = self._inputs['protocol'].settings + + settings = { + 'forcefield_settings': prot_settings.solvent_forcefield_settings, + 'thermo_settings': prot_settings.thermo_settings, + 'charge_settings': prot_settings.partial_charge_settings, + 'solvation_settings': prot_settings.solvent_solvation_settings, + 'alchemical_settings': prot_settings.alchemical_settings, + 'lambda_settings': prot_settings.lambda_settings, + 'engine_settings': prot_settings.solvent_engine_settings, + 'integrator_settings': prot_settings.integrator_settings, + 'equil_simulation_settings': + prot_settings.solvent_equil_simulation_settings, + 'equil_output_settings': + prot_settings.solvent_equil_output_settings, + 'simulation_settings': prot_settings.solvent_simulation_settings, + 'output_settings': prot_settings.solvent_output_settings, + 'restraint_settings': prot_settings.solvent_restraints_settings} + + settings_validation.validate_timestep( + settings['forcefield_settings'].hydrogen_mass, + settings['integrator_settings'].timestep + ) + + return settings + + def _get_lambda_schedule( + self, settings: dict[str, SettingsBaseModel] + ) -> dict[str, npt.NDArray]: + + lambdas = dict() + + lambda_elec_A = settings['lambda_settings'].lambda_elec_A + lambda_vdw_A = settings['lambda_settings'].lambda_vdw_A + lambda_elec_B = settings['lambda_settings'].lambda_elec_B + lambda_vdw_B = settings['lambda_settings'].lambda_vdw_B + + # Reverse lambda schedule since in AbsoluteAlchemicalFactory 1 + # means fully interacting, not stateB + lambda_elec_A = [1 - x for x in lambda_elec_A] + lambda_vdw_A = [1 - x for x in lambda_vdw_A] + lambda_elec_B = [1 - x for x in lambda_elec_B] + lambda_vdw_B = [1 - x for x in lambda_vdw_B] + lambdas['lambda_electrostatics_A'] = lambda_elec_A + lambdas['lambda_sterics_A'] = lambda_vdw_A + lambdas['lambda_electrostatics_B'] = lambda_elec_B + lambdas['lambda_sterics_B'] = lambda_vdw_B + + return lambdas + + def _execute( + self, ctx: gufe.Context, *, setup, **kwargs, + ) -> dict[str, Any]: + log_system_probe(logging.INFO, paths=[ctx.scratch]) + + serialized_system = setup.outputs["system"] + serialized_topology = setup.outputs["topology"] + outputs = self.run( + serialized_system, + serialized_topology, + scratch_basepath=ctx.scratch, + shared_basepath=ctx.shared) + + return { + 'repeat_id': self._inputs['repeat_id'], + 'generation': self._inputs['generation'], + 'simtype': 'solvent', + **outputs + } + + +class SepTopComplexRunUnit(BaseSepTopRunUnit): + """ + Protocol Unit for the solvent phase of an relative SepTop free energy + """ + def _get_components(self): + """ + Get the relevant components for a complex transformation. + + Returns + ------- + alchem_comps : dict[str, Component] + A list of alchemical components + solv_comp : SolventComponent + The SolventComponent of the system + prot_comp : Optional[ProteinComponent] + The protein component of the system, if it exists. + small_mols : dict[SmallMoleculeComponent: OFFMolecule] + SmallMoleculeComponents to add to the system. + """ + stateA = self._inputs['stateA'] + alchem_comps = self._inputs['alchemical_components'] + + solv_comp, prot_comp, small_mols = system_validation.get_components(stateA) + small_mols = {m: m.to_openff() for m in small_mols} + # Also get alchemical smc from state B + small_mols_B = {m: m.to_openff() + for m in alchem_comps['stateB']} + small_mols = small_mols | small_mols_B + + return alchem_comps, solv_comp, prot_comp, small_mols + + def _handle_settings(self) -> dict[str, SettingsBaseModel]: + """ + Extract the relevant settings for a complex transformation. + + Returns + ------- + settings : dict[str, SettingsBaseModel] + A dictionary with the following entries: + * forcefield_settings : OpenMMSystemGeneratorFFSettings + * thermo_settings : ThermoSettings + * charge_settings : OpenFFPartialChargeSettings + * solvation_settings : OpenMMSolvationSettings + * alchemical_settings : AlchemicalSettings + * lambda_settings : LambdaSettings + * engine_settings : OpenMMEngineSettings + * integrator_settings : IntegratorSettings + * equil_simulation_settings : MDSimulationSettings + * equil_output_settings : SepTopEquilOutputSettings + * simulation_settings : SimulationSettings + * output_settings: MultiStateOutputSettings + * restraint_settings: ComplexRestraintsSettings + """ + prot_settings = self._inputs['protocol'].settings + + settings = { + 'forcefield_settings': prot_settings.complex_forcefield_settings, + 'thermo_settings': prot_settings.thermo_settings, + 'charge_settings': prot_settings.partial_charge_settings, + 'solvation_settings': prot_settings.complex_solvation_settings, + 'alchemical_settings': prot_settings.alchemical_settings, + 'lambda_settings': prot_settings.lambda_settings, + 'engine_settings': prot_settings.complex_engine_settings, + 'integrator_settings': prot_settings.integrator_settings, + 'equil_simulation_settings': + prot_settings.complex_equil_simulation_settings, + 'equil_output_settings': + prot_settings.complex_equil_output_settings, + 'simulation_settings': prot_settings.complex_simulation_settings, + 'output_settings': prot_settings.complex_output_settings, + 'restraint_settings': prot_settings.complex_restraints_settings} + + settings_validation.validate_timestep( + settings['forcefield_settings'].hydrogen_mass, + settings['integrator_settings'].timestep + ) + + return settings + + def _get_lambda_schedule( + self, settings: dict[str, SettingsBaseModel] + ) -> dict[str, npt.NDArray]: + lambdas = dict() + + lambda_elec_A = settings['lambda_settings'].lambda_elec_A + lambda_vdw_A = settings['lambda_settings'].lambda_vdw_A + lambda_elec_B = settings['lambda_settings'].lambda_elec_B + lambda_vdw_B = settings['lambda_settings'].lambda_vdw_B + lambda_restraints_A = settings[ + 'lambda_settings'].lambda_restraints_A + lambda_restraints_B = settings[ + 'lambda_settings'].lambda_restraints_B + + # Reverse lambda schedule since in AbsoluteAlchemicalFactory 1 + # means fully interacting, not stateB + lambda_elec_A = [1 - x for x in lambda_elec_A] + lambda_vdw_A = [1 - x for x in lambda_vdw_A] + lambda_elec_B = [1 - x for x in lambda_elec_B] + lambda_vdw_B = [1 - x for x in lambda_vdw_B] + + lambdas['lambda_electrostatics_A'] = lambda_elec_A + lambdas['lambda_sterics_A'] = lambda_vdw_A + lambdas['lambda_electrostatics_B'] = lambda_elec_B + lambdas['lambda_sterics_B'] = lambda_vdw_B + lambdas['lambda_restraints_A'] = lambda_restraints_A + lambdas['lambda_restraints_B'] = lambda_restraints_B + + return lambdas + + def _execute( + self, ctx: gufe.Context, *, setup, **kwargs, + ) -> dict[str, Any]: + log_system_probe(logging.INFO, paths=[ctx.scratch]) + + serialized_system = setup.outputs["system"] + serialized_topology = setup.outputs["topology"] + outputs = self.run( + serialized_system, + serialized_topology, + scratch_basepath=ctx.scratch, + shared_basepath=ctx.shared) + + return { + 'repeat_id': self._inputs['repeat_id'], + 'generation': self._inputs['generation'], + 'simtype': 'complex', + **outputs + } diff --git a/openfe/protocols/openmm_septop/equil_septop_settings.py b/openfe/protocols/openmm_septop/equil_septop_settings.py new file mode 100644 index 000000000..8bf523f69 --- /dev/null +++ b/openfe/protocols/openmm_septop/equil_septop_settings.py @@ -0,0 +1,316 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +"""Settings class for equilibrium SepTop Protocols using OpenMM + OpenMMTools + +This module implements the necessary settings necessary to run SepTop RBFE +calculations using OpenMM. + +See Also +-------- +openfe.protocols.openmm_septop.SepTopProtocol +""" +from gufe.settings import ( + SettingsBaseModel, + OpenMMSystemGeneratorFFSettings, + ThermoSettings, +) +from openfe.protocols.openmm_utils.omm_settings import ( + MultiStateSimulationSettings, + OpenMMSolvationSettings, + OpenMMEngineSettings, + IntegratorSettings, + OpenFFPartialChargeSettings, + MultiStateOutputSettings, + MDSimulationSettings, + MDOutputSettings, +) +from openff.units import unit +from openff.models.types import FloatQuantity +import numpy as np +from pydantic.v1 import validator +from typing import Optional + + +class AlchemicalSettings(SettingsBaseModel): + """Settings for the alchemical protocol + + Empty place holder for right now. + """ + + +class RestraintsSettings(SettingsBaseModel): + """ + Settings for the restraints. + """ + k_distance: FloatQuantity['kJ/(mol*nanometers**2)'] = 1000 * unit.kilojoule_per_mole / unit.nanometer**2 + + +class SolventRestraintsSettings(RestraintsSettings): + """ + Settings for the harmonic restraint in the solvent + """ + + +class ComplexRestraintsSettings(RestraintsSettings): + """ + Settings for the Boresch restraints in the complex + """ + class Config: + arbitrary_types_allowed = True + + # k_theta: FloatQuantity['kJ/(mol*rad**2)'] = 83.68 * unit.kilojoule_per_mole / unit.radians ** 2 + k_theta: FloatQuantity[ + 'kJ/(mol*rad**2)'] = 836.8 * unit.kilojoule_per_mole / unit.radians ** 2 + + +class LambdaSettings(SettingsBaseModel): + """Lambda schedule settings. + + Defines lists of floats to control various aspects of the alchemical + transformation. + + Notes + ----- + * In all cases a lambda value of 0 defines a fully interacting state A and + a non-interacting state B, whilst a value of 1 defines a fully interacting + state B and a non-interacting state A. + * ``lambda_elec``, `lambda_vdw``, and ``lambda_restraints`` must all be of + the same length, defining all the windows of the transformation. + + """ + lambda_elec_A: list[float] = [0.0] * 8 + [0.25, 0.5, 0.75] + [1.0] * 8 + """ + List of floats of the lambda values for the electrostatics of ligand A. + Zero means fully interacting and 1 means fully decoupled. + Length of this list needs to match length of lambda_vdw and lambda_restraints. + """ + lambda_elec_B: list[float] = [1.0] * 8 + [0.75, 0.5, 0.25] + [0.0] * 8 + """ + List of floats of the lambda values for the electrostatics of ligand B. + Zero means fully interacting and 1 means fully decoupled. + Length of this list needs to match length of lambda_vdw and + lambda_restraints. + """ + lambda_vdw_A: list[float] = [0.0] * 8 + [ + 0.00, 0.0, 0.00] + np.linspace(0.0, 1.0, 8).tolist() + """ + List of floats of lambda values for the van der Waals of ligand A. + Zero means fully interacting and 1 means fully decoupled. + Length of this list needs to match length of lambda_elec and + lambda_restraints. + """ + lambda_vdw_B: list[float] = np.linspace(1.0, 0.0, 8).tolist() + [ + 0.0, 0.0, 0.0] + [0.0] * 8 + """ + List of floats of lambda values for the van der Waals of ligand B. + Zero means fully interacting and 1 means fully decoupled. + Length of this list needs to match length of lambda_elec and lambda_restraints. + """ + lambda_restraints_A: list[float] = [ + 0.0, 0.05, 0.1, 0.3, 0.5, + 0.75, 1.0, 1.0] + [ + 1.0] * 3 + [1.0] * 8 + """ + List of floats of lambda values for the restraints of ligand A. + Zero means fully interacting and 1 means fully decoupled. + Length of this list needs to match length of lambda_vdw and lambda_elec. + """ + lambda_restraints_B: list[float] = [1.0] * 8 + [1.0] * 3 + [ + 1.0, 0.95, 0.9, 0.7, 0.5, 0.25, 0.0, 0.0] + """ + List of floats of lambda values for the restraints of ligand B. + Zero means fully interacting and 1 means fully decoupled. + Length of this list needs to match length of lambda_vdw and lambda_elec. + """ + + + @validator('lambda_elec_A', 'lambda_elec_B', + 'lambda_vdw_A', 'lambda_vdw_B', + 'lambda_restraints_A', 'lambda_restraints_B') + def must_be_between_0_and_1(cls, v): + for window in v: + if not 0 <= window <= 1: + errmsg = ("Lambda windows must be between 0 and 1, got a" + f" window with value {window}.") + raise ValueError(errmsg) + return v + + @validator('lambda_elec_A', 'lambda_elec_B', + 'lambda_vdw_A', 'lambda_vdw_B', + 'lambda_restraints_A', 'lambda_restraints_B') + def must_be_monotonic(cls, v): + + difference = np.diff(v) + + monotonic = np.all(difference <= 0) or np.all(difference >= 0) + + if not monotonic: + errmsg = f"The lambda schedule is not monotonic, got schedule {v}." + raise ValueError(errmsg) + + return v + + +class SepTopEquilOutputSettings(MDOutputSettings): + # reporter settings + output_indices = 'all' + production_trajectory_filename: Optional[str] = 'simulation' + """ + Basename for the path to the storage file for analysis. The protocol will + append a '_stateA.xtc' and a '_stateB.xtc' for the output files of the + respective endstates. Default 'simulation'. + """ + trajectory_write_interval: FloatQuantity['picosecond'] = 20 * unit.picosecond + """ + Frequency to write the xtc file. Default 20 * unit.picosecond. + """ + preminimized_structure: Optional[str] = 'system' + """ + Basename for the path to the pdb file of the full pre-minimized systems. + The protocol will append a '_stateA.pdb' and a '_stateB.pdb' for the output + files of the respective endstates. Default 'system'. + """ + minimized_structure: Optional[str] = 'minimized' + """ + Basename for the path to the pdb file of the systems after minimization. + The protocol will append a '_stateA.pdb' and a '_stateB.pdb' for the output + files of the respective endstates. Default 'minimized'. + """ + equil_nvt_structure: Optional[str] = 'equil_nvt' + """ + Basename for the path to the pdb file of the systems after NVT equilibration. + The protocol will append a '_stateA' and a '_stateB' for the output files + of the respective endstates. Default 'equil_nvt.pdb'. + """ + equil_npt_structure: Optional[str] = 'equil_npt' + """ + Basename for the path to the pdb file of the systems after NPT equilibration. + The protocol will append a '_stateA.pdb' and a '_stateB.pdb' for the output + files of the respective endstates. Default 'equil_npt'. + """ + log_output: Optional[str] = 'simulation' + """ + Basename for the filename for writing the log of the MD simulation, + including timesteps, energies, density, etc. + The protocol will append a '_stateA.pdb' and a '_stateB.pdb' for the output + files of the respective endstates. Default 'simulation'. + """ + + +# This subclasses from SettingsBaseModel as it has vacuum_forcefield and +# solvent_forcefield fields, not just a single forcefield_settings field +class SepTopSettings(SettingsBaseModel): + """ + Configuration object for ``AbsoluteSolvationProtocol``. + + See Also + -------- + openfe.protocols.openmm_afe.AbsoluteSolvationProtocol + """ + protocol_repeats: int + """ + The number of completely independent repeats of the entire sampling + process. The mean of the repeats defines the final estimate of FE + difference, while the variance between repeats is used as the uncertainty. + """ + + @validator('protocol_repeats') + def must_be_positive(cls, v): + if v <= 0: + errmsg = f"protocol_repeats must be a positive value, got {v}." + raise ValueError(errmsg) + return v + + # Inherited things + solvent_forcefield_settings: OpenMMSystemGeneratorFFSettings + complex_forcefield_settings: OpenMMSystemGeneratorFFSettings + """Parameters to set up the force field with OpenMM Force Fields""" + thermo_settings: ThermoSettings + """Settings for thermodynamic parameters""" + + solvent_solvation_settings: OpenMMSolvationSettings + """Settings for solvating the solvent system.""" + + complex_solvation_settings: OpenMMSolvationSettings + """Settings for solvating the complex system.""" + + # Alchemical settings + alchemical_settings: AlchemicalSettings + """ + Alchemical protocol settings. + """ + lambda_settings: LambdaSettings + """ + Settings for controlling the lambda schedule for the different components + (vdw, elec, restraints). + """ + + # MD Engine things + complex_engine_settings: OpenMMEngineSettings + """ + Settings specific to the OpenMM engine, such as the compute platform + for the complex transformation. + """ + solvent_engine_settings: OpenMMEngineSettings + """ + Settings specific to the OpenMM engine, such as the compute platform + for the solvent transformation. + """ + + # Sampling State defining things + integrator_settings: IntegratorSettings + """ + Settings for controlling the integrator, such as the timestep and + barostat settings. + """ + + # Simulation run settings + complex_equil_simulation_settings: MDSimulationSettings + """ + Pre-alchemical complex simulation control settings. + """ + complex_simulation_settings: MultiStateSimulationSettings + """ + Simulation control settings, including simulation lengths + for the complex transformation. + """ + solvent_equil_simulation_settings: MDSimulationSettings + """ + Pre-alchemical solvent simulation control settings. + """ + solvent_simulation_settings: MultiStateSimulationSettings + """ + Simulation control settings, including simulation lengths + for the solvent transformation. + """ + complex_equil_output_settings: SepTopEquilOutputSettings + """ + Simulation output settings for the complex non-alchemical equilibration. + """ + complex_output_settings: MultiStateOutputSettings + """ + Simulation output settings for the complex transformation. + """ + solvent_equil_output_settings: SepTopEquilOutputSettings + """ + Simulation output settings for the solvent non-alchemical equilibration. + """ + solvent_output_settings: MultiStateOutputSettings + """ + Simulation output settings for the solvent transformation. + """ + partial_charge_settings: OpenFFPartialChargeSettings + """ + Settings for controlling how to assign partial charges, + including the partial charge assignment method, and the + number of conformers used to generate the partial charges. + """ + solvent_restraints_settings: SolventRestraintsSettings + """ + Settings for the harmonic restraint in the solvent + """ + complex_restraints_settings: ComplexRestraintsSettings + """ + Settings for the Boresch restraints in the complex + """ diff --git a/openfe/protocols/openmm_septop/femto_constants.py b/openfe/protocols/openmm_septop/femto_constants.py new file mode 100644 index 000000000..69356b699 --- /dev/null +++ b/openfe/protocols/openmm_septop/femto_constants.py @@ -0,0 +1,49 @@ +"""Constant values such as common force groups and names.""" + +import enum + +LIGAND_1_RESIDUE_NAME = "L1" +"""The standard residue name to assign to ligand 1 of a FE calculation.""" +LIGAND_2_RESIDUE_NAME = "R1" +"""The standard residue name to assign to ligand 2 of a FE calculation.""" + + +class OpenMMForceGroup(enum.IntEnum): + """Standard force groups to assign to common OpenMM forces to make them easier to + identify.""" + + BOND = 0 + ANGLE = 1 + DIHEDRAL = 2 + + NONBONDED = 3 + + COM_RESTRAINT = 4 + POSITION_RESTRAINT = 5 + ALIGNMENT_RESTRAINT = 6 + + BAROSTAT = 7 + + ATM = 8 + + OTHER = 16 + + +class OpenMMForceName(str, enum.Enum): + """Standard names use for common OpenMM forces to make them easier to identify.""" + + COM_RESTRAINT = "com-restraint" + POSITION_RESTRAINT = "position-restraint" + ALIGNMENT_RESTRAINT = "alignment-restraint" + + +class OpenMMPlatform(str, enum.Enum): + """The available OpenMM platforms to run using.""" + + REFERENCE = "Reference" + CPU = "CPU" + OPENCL = "OpenCL" + CUDA = "CUDA" + + def __str__(self): + return self.value \ No newline at end of file diff --git a/openfe/protocols/openmm_septop/femto_geometry.py b/openfe/protocols/openmm_septop/femto_geometry.py new file mode 100644 index 000000000..710f0930e --- /dev/null +++ b/openfe/protocols/openmm_septop/femto_geometry.py @@ -0,0 +1,130 @@ +"""Common functions for computing the internal coordinates (e.g. bond lengths).""" + +import numpy + + +def compute_bond_vectors( + coords: numpy.ndarray, idxs: numpy.ndarray +) -> tuple[numpy.ndarray, numpy.ndarray]: + """Computes the vectors between each atom pair specified by the ``idxs`` as + well as their norms. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)``. + idxs: The indices of the coordinates to compute the distances between with + ``shape=(n_pairs, 2)``. + + Returns: + A tuple of the vectors with shape=``shape=(n_pairs, 3)`` and norms with + ``shape=(n_pairs,)``. + """ + + if len(idxs) == 0: + return numpy.ndarray([]), numpy.ndarray([]) + + directions = coords[idxs[:, 1]] - coords[idxs[:, 0]] + distances = numpy.linalg.norm(directions, axis=1) + + return directions, distances + + +def compute_distances(coords: numpy.ndarray, idxs: numpy.ndarray) -> numpy.ndarray: + """Computes the distances between each pair of coordinates. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)``. + idxs: The indices of the coordinates to compute the distances between with + ``shape=(n_pairs, 2)``. + + Returns: + The distances with ``shape=(n_pairs,)``. + """ + + return compute_bond_vectors(coords, idxs)[1] + + +def compute_angles(coords: numpy.ndarray, idxs: numpy.ndarray) -> numpy.ndarray: + """Computes the angles [rad] between each specified triplet of indices. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)`` or + ``shape=(n_frames, n_coords, 3)``. + idxs: The indices of the coordinates to compute the angles between with + ``shape=(n_pairs, 3)``. + + Returns: + The angles with ``shape=(n_pairs,)`` or ``shape=(n_frames, n_pairs)``. + """ + + if len(idxs) == 0: + return numpy.ndarray([]) + + is_batched = coords.ndim == 3 + + if not is_batched: + coords = coords[None, :, :] + + vector_ab = coords[:, idxs[:, 1]] - coords[:, idxs[:, 0]] + vector_ac = coords[:, idxs[:, 1]] - coords[:, idxs[:, 2]] + + # tan theta = sin theta / cos theta + # + # ||a x b|| = ||a|| ||b|| sin theta + # a . b = ||a|| ||b|| cos theta + # + # => tan theta = (a x b) / (a . b) + angles = numpy.arctan2( + numpy.linalg.norm(numpy.cross(vector_ab, vector_ac, axis=-1), axis=-1), + (vector_ab * vector_ac).sum(axis=-1), + ) + + if not is_batched: + angles = angles[0] + + return angles + + +def compute_dihedrals(coords: numpy.ndarray, idxs: numpy.ndarray) -> numpy.ndarray: + """Computes the angles [rad] between each specified quartet of indices. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)`` or + ``shape=(n_frames, n_coords, 3)``. + idxs: The indices of the coordinates to compute the dihedrals between with + ``shape=(n_pairs, 4)``. + + Returns: + The dihedrals with ``shape=(n_pairs,)`` or ``shape=(n_frames, n_pairs)``. + """ + + if len(idxs) == 0: + return numpy.ndarray([]) + + is_batched = coords.ndim == 3 + + if not is_batched: + coords = coords[None, :, :] + + vector_ab = coords[:, idxs[:, 0]] - coords[:, idxs[:, 1]] + vector_cb = coords[:, idxs[:, 2]] - coords[:, idxs[:, 1]] + vector_cd = coords[:, idxs[:, 2]] - coords[:, idxs[:, 3]] + + vector_ab_cross_cb = numpy.cross(vector_ab, vector_cb, axis=-1) + vector_cb_cross_cd = numpy.cross(vector_cb, vector_cd, axis=-1) + + vector_cb_norm = numpy.linalg.norm(vector_cb, axis=-1)[:, :, None] + + y = ( + numpy.cross(vector_ab_cross_cb, vector_cb_cross_cd, axis=-1) + * vector_cb + / vector_cb_norm + ).sum(axis=-1) + + x = (vector_ab_cross_cb * vector_cb_cross_cd).sum(axis=-1) + + phi = numpy.arctan2(y, x) + + if not is_batched: + phi = phi[0] + + return phi \ No newline at end of file diff --git a/openfe/protocols/openmm_septop/femto_restraints.py b/openfe/protocols/openmm_septop/femto_restraints.py new file mode 100644 index 000000000..486677fd7 --- /dev/null +++ b/openfe/protocols/openmm_septop/femto_restraints.py @@ -0,0 +1,739 @@ +"""Utilities for automatically selecting 'reference' atoms for alignment.""" + +import copy +import itertools +import logging +import typing + +import mdtraj +import networkx +import numpy +import openmm.unit +import parmed +import scipy.spatial +import scipy.spatial.distance +from .femto_utils import compute_angles, compute_dihedrals +from .femto_geometry import compute_distances, compute_angles, compute_dihedrals + +_COLLINEAR_THRESHOLD = 0.9 # roughly 25 degrees + +# values taken from the SepTop reference implementation at commit 7af0b4d +_ANGLE_CHECK_FORCE_CONSTANT = 20.0 * openmm.unit.kilocalorie_per_mole +_ANGLE_CHECK_T = 298.15 * openmm.unit.kelvin +_ANGLE_CHECK_RT = openmm.unit.MOLAR_GAS_CONSTANT_R * _ANGLE_CHECK_T + +_ANGLE_CHECK_FACTOR = 0.5 * _ANGLE_CHECK_FORCE_CONSTANT / _ANGLE_CHECK_RT +_ANGLE_CHECK_CUTOFF = 10.0 # units of kT + +_ANGLE_CHECK_MAX_VAR = 100.0 # units of degrees^2 + +_DIHEDRAL_CHECK_CUTOFF = 150.0 # units of degrees +_DIHEDRAL_CHECK_MAX_VAR = 300.0 # units of degrees^2 + +_RMSF_CUTOFF = 0.1 # nm + +def _is_angle_linear(coords: numpy.ndarray, idxs: tuple[int, int, int]) -> bool: + """Check if angle is within 10 kT from 0 or 180 following the SepTop reference + implementation. + + Args: + coords: The full set of coordinates. + idxs: The indices of the three atoms that form the angle. + + Returns: + True if the angle is linear, False otherwise. + """ + + angles = numpy.rad2deg( + compute_angles(coords, numpy.array([idxs])) + ) + + angle_avg_rad = numpy.deg2rad(scipy.stats.circmean(angles, low=-180.0, high=180.0)) + angle_var_deg = scipy.stats.circvar(angles, low=-180.0, high=180.0) + + check_1 = _ANGLE_CHECK_FACTOR * angle_avg_rad**2 + check_2 = _ANGLE_CHECK_FACTOR * (angle_avg_rad - numpy.pi) ** 2 + + return ( + check_1 < _ANGLE_CHECK_CUTOFF + or check_2 < _ANGLE_CHECK_CUTOFF + or angle_var_deg > _ANGLE_CHECK_MAX_VAR + ) + + +def _is_dihedral_trans(coords: numpy.ndarray, idxs: tuple[int, int, int, int]) -> bool: + """Check if a dihedral angle is within -150 and 150 degrees. + + Args: + coords: The full set of coordinates. + idxs: The indices of the four atoms that form the dihedral. + + Returns: + True if the dihedral is planar. + """ + + dihedrals = numpy.rad2deg( + compute_dihedrals(coords, numpy.array([idxs])) + ) + + dihedral_avg = scipy.stats.circmean(dihedrals, low=-180.0, high=180.0) + dihedral_var = scipy.stats.circvar(dihedrals, low=-180.0, high=180.0) + + return ( + numpy.abs(dihedral_avg) > _DIHEDRAL_CHECK_CUTOFF + or dihedral_var > _DIHEDRAL_CHECK_MAX_VAR + ) + + +def _are_collinear( + coords: numpy.ndarray, idxs: typing.Sequence[int] | None = None +) -> bool: + """Checks whether a sequence of coordinates are collinear. + + Args: + coords: The full set of coordinates, either with ``shape=(n_coords, 3)`` or + ``shape=(n_frames, n_coords, 3)``. + idxs: The sequence of indices of those coordinates to check for collinearity. + + Returns: + True if any sequential pair of vectors is collinear. + """ + + if coords.ndim == 2: + coords = coords.reshape(1, *coords.shape) + + idxs = idxs if idxs is not None else list(range(coords.shape[1])) + + for i in range(len(idxs) - 2): + v_1 = coords[:, idxs[i + 1], :] - coords[:, idxs[i], :] + v_1 /= numpy.linalg.norm(v_1, axis=-1, keepdims=True) + v_2 = coords[:, idxs[i + 2], :] - coords[:, idxs[i + 1], :] + v_2 /= numpy.linalg.norm(v_2, axis=-1, keepdims=True) + + if (numpy.abs((v_1 * v_2).sum(axis=-1)) > _COLLINEAR_THRESHOLD).any(): + return True + + return False + + +def _create_ligand_queries( + ligand, snapshots: list[openmm.unit.Quantity] | None +) -> tuple[int, int, int]: + """Selects three atoms from a ligand for use in + Boresch-likes restraints using the method described by Baumann et al. + + References: + [1] Baumann, Hannah M., et al. "Broadening the scope of binding free energy + calculations using a Separated Topologies approach." (2023). + """ + + ligand_graph = networkx.from_edgelist( + [(bond.atom1_index, bond.atom2_index) + for bond in ligand.bonds + if bond.atom1.atomic_number != 1 and bond.atom2.atomic_number != 1] + ) + + all_paths = [ + path + for node_paths in networkx.shortest_path(ligand_graph).values() + for path in node_paths.values() + ] + path_lengths = {(path[0], path[-1]): len(path) for path in all_paths} + + longest_path = max(all_paths, key=len) + center_idx = longest_path[len(longest_path) // 2] + + cycles = networkx.cycle_basis(ligand_graph) + + if len(cycles) >= 1 and snapshots is not None: + top = mdtraj.Topology.from_openmm(ligand.to_openmm()) + ligand_trajectory = mdtraj.Trajectory( + snapshots, + top, + ) + ligand_trajectory.superpose(ligand_trajectory) + + rmsf = mdtraj.rmsf(ligand_trajectory, ligand_trajectory, 0) + cycles = [cycle for cycle in cycles if rmsf[cycle].max() < _RMSF_CUTOFF] + + if len(cycles) >= 1: + open_list = [atom_idx for cycle in cycles for atom_idx in cycle] + else: + open_list = [atom.idx for atom in ligand.atoms if atom.atomic_number != 1] + + distances = [path_lengths[(center_idx, atom_idx)] for atom_idx in open_list] + closest_idx = open_list[numpy.argmin(distances)] + + if len(cycles) >= 1: + # restrict the list of reference atoms to select from to those that are in the + # same cycle as the closest atom. + cycle_idx = next( + iter(i for i, cycle in enumerate(cycles) if closest_idx in cycle) + ) + open_list = cycles[cycle_idx] + + distances = [path_lengths[(closest_idx, atom_idx)] for atom_idx in open_list] + + open_list = [ + idx + for _, idx in sorted(zip(distances, open_list, strict=True)) + if idx != closest_idx + ] + restrain_atoms = (open_list[0], closest_idx, open_list[1]) + + # TODO: check if the reference atoms are co-linear + # TODO: handle the unhappy paths of not enough atoms are found. + + return restrain_atoms + + +def select_ligand_idxs( + ligand_1, # OpenFF Molecule + ligand_2, # OpenFF Molecule + ligand_1_queries: tuple[int, int, int] | None = None, + ligand_2_queries: tuple[int, int, int] | None = None, +) -> tuple[tuple[int, int, int], tuple[int, int, int]]: + """Returns the indices of the reference atoms that may be used to align ligands. + + Args: + ligand_1: The first ligand. + ligand_2: The second ligand. + ligand_1_queries: Three (optional) indices to use to manually + select atoms from the first ligand. + ligand_2_queries: Three (optional) indices to use to manually + select atoms from the second ligand + + Returns: + The indices of the first and second ligand respectively. + """ + if ligand_1_queries is None or ligand_2_queries is None: + + if ligand_1_queries is None: + # Setting frames to None right now + # ToDo: Enable use of snapshots + ligand_1_queries = _create_ligand_queries(ligand_1.to_topology(), None) + if ligand_2_queries is None: + ligand_2_queries = _create_ligand_queries(ligand_2.to_topology(), None) + + return ligand_1_queries, ligand_2_queries + + +def _filter_receptor_atoms( + receptor: mdtraj.Trajectory, + ligand: mdtraj.Trajectory, + ligand_ref_idx: int, + min_helix_size: int = 8, + min_sheet_size: int = 8, + skip_residues_start: int = 20, + skip_residues_end: int = 10, + minimum_distance: openmm.unit.Quantity = 1.0 * openmm.unit.nanometers, + maximum_distance: openmm.unit.Quantity = 3.0 * openmm.unit.nanometers, +) -> list[int]: + """Select possible protein atoms for Boresch-style restraints based on + the criteria + outlined by Baumann et al. + + Args: + receptor: The receptor structure. + ligand: The ligand structure. + ligand_ref_idx: The index of the first reference ligand atom. + min_helix_size: The minimum number of residues that have to be in an + alpha-helix + for it to be considered stable. + min_sheet_size: The minimum number of residues that have to be in a + beta-sheet + for it to be considered stable. + skip_residues_start: The number of residues to skip at the start of + the protein + as these tend to be more flexible. + skip_residues_end: The number of residues to skip at the end of the + protein + as these tend to be more flexible + minimum_distance: Discard any protein atoms that are closer than + this distance + to the ligand. + maximum_distance: Discard any protein atoms that are further than + this distance + from the ligand. + + Returns: + The indices of protein atoms that should be considered for use in + Boresch-style + restraints. + """ + + assert min_helix_size >= 7, "helices must be at least 7 residues long" + assert min_sheet_size >= 7, "sheets must be at least 7 residues long" + + backbone_idxs = receptor.top.select("protein and (backbone or name CB)") + backbone: mdtraj.Trajectory = receptor.atom_slice(backbone_idxs, + inplace=False) + + structure = mdtraj.compute_dssp(backbone, simplified=True).tolist()[0] + # following the SepTop reference implementation we prefer to select from + # alpha + # helices if they are dominant in the protein, but otherwise select from + # sheets + # as well. + n_helix_residues = structure.count("H") + n_sheet_residues = structure.count("E") + + allowed_motifs = ["H"] if n_helix_residues >= n_sheet_residues else ["H", + "E"] + min_motif_size = {"H": min_helix_size, "E": min_sheet_size} + + residues_to_keep: list = [] + + structure = structure[skip_residues_start: -(skip_residues_end + 1)] + + for motif, idxs in itertools.groupby(enumerate(structure), lambda x: x[1]): + + idxs_new = [(idx + skip_residues_start, motif) for idx, motif in idxs] + + if motif not in allowed_motifs or len(idxs_new) < min_motif_size[motif]: + continue + # discard the first and last 3 residues of the helix / sheet + start_idx, end_idx = idxs_new[0][0] + 3, idxs_new[-1][0] - 3 + + residues_to_keep.extend( + f"resid {idx}" for idx in range(start_idx, end_idx + 1)) + if len(residues_to_keep) > 0: + rigid_backbone_idxs = backbone.top.select(" ".join(residues_to_keep)) + + if len(rigid_backbone_idxs) == 0: + raise ValueError("no suitable receptor atoms could be found") + + if backbone.n_frames > 1: + superposed = copy.deepcopy(backbone) + superposed.superpose(superposed) + + rmsf = mdtraj.rmsf(superposed, superposed, 0) # nm + + rigid_backbone_idxs = rigid_backbone_idxs[ + rmsf[rigid_backbone_idxs] < _RMSF_CUTOFF + ] + + distances = scipy.spatial.distance.cdist( + backbone.xyz[0, rigid_backbone_idxs, :], + ligand.xyz[0, [ligand_ref_idx], :] + ) + + minimum_distance = minimum_distance.value_in_unit(openmm.unit.nanometer) + maximum_distance = maximum_distance.value_in_unit(openmm.unit.nanometer) + + distance_mask = (distances > minimum_distance).all(axis=1) + distance_mask &= (distances <= maximum_distance).any(axis=1) + + return backbone_idxs[rigid_backbone_idxs[distance_mask]].tolist() + + +def _is_valid_r1( + receptor: mdtraj.Trajectory, + receptor_idx: int, + ligand: mdtraj.Trajectory, + ligand_ref_idxs: tuple[int, int, int], +) -> bool: + """Check whether a given receptor atom would be a valid 'R1' atom given the + following criteria: + + * L2,L1,R1 angle not 'close' to 0 or 180 degrees + * L3,L2,L1,R1 dihedral between -150 and 150 degrees + + Args: + receptor: The receptor structure. + receptor_idx: The index of the receptor atom to check. + ligand: The ligand structure. + ligand_ref_idxs: The three reference ligand atoms. + """ + + coords = numpy.concatenate([ligand.xyz, receptor.xyz], axis=1) + + l1, l2, l3 = ligand_ref_idxs + # r1 = receptor_idx + r1 = receptor_idx + ligand.n_atoms + + if _are_collinear(coords, (r1, l1, l2, l3)): + return False + + if _is_angle_linear(coords, (r1, l1, l2)): + return False + + if _is_dihedral_trans(coords, (r1, l1, l2, l3)): + return False + + return True + + +def _is_valid_r2( + receptor: mdtraj.Trajectory, + receptor_idx: int, + receptor_ref_idx_1: int, + ligand: mdtraj.Trajectory, + ligand_ref_idxs: tuple[int, int, int], +) -> bool: + """Check whether a given receptor atom would be a valid 'R2' atom given the + following criteria: + + * R1,R2 are further apart than 5 Angstroms + * R2,R1,L1,L2 are not collinear + * R2,R1,L1 angle not 'close' to 0 or 180 degrees + * R2,R1,L1,L2 dihedral between -150 and 150 degrees + + Args: + receptor: The receptor structure. + receptor_idx: The index of the receptor atom to check. + receptor_ref_idx_1: The index of the first receptor reference atom. + ligand: The ligand structure. + ligand_ref_idxs: The three reference ligand atoms. + """ + + coords = numpy.concatenate([ligand.xyz, receptor.xyz], axis=1) + + l1, l2, l3 = ligand_ref_idxs + r1, r2 = receptor_ref_idx_1 + ligand.n_atoms, receptor_idx + ligand.n_atoms + # r1, r2 = receptor_ref_idx_1 , receptor_idx + + if r1 == r2: + return False + + if numpy.linalg.norm(coords[:, r1, :] - coords[:, r2, :], axis=-1).mean() < 0.5: + return False + + if _are_collinear(coords, (r2, r1, l1, l2)): + return False + + if _is_angle_linear(coords, (r2, r1, l1)): + return False + + if _is_dihedral_trans(coords, (r2, r1, l1, l2)): + return False + + return True + + +def _is_valid_r3( + receptor: mdtraj.Trajectory, + receptor_idx: int, + receptor_ref_idx_1: int, + receptor_ref_idx_2: int, + ligand: mdtraj.Trajectory, + ligand_ref_idxs: tuple[int, int, int], +) -> bool: + """Check whether a given receptor atom would be a valid 'R3' atom given the + following criteria: + + * R1,R2,R3,L1 are not collinear + * R3,R2,R1,L1 dihedral between -150 and 150 degrees + + Args: + receptor: The receptor structure. + receptor_idx: The index of the receptor atom to check. + receptor_ref_idx_1: The index of the first receptor reference atom. + receptor_ref_idx_2: The index of the second receptor reference atom. + ligand: The ligand structure. + ligand_ref_idxs: The three reference ligand atoms. + """ + + coords = numpy.concatenate([ligand.xyz, receptor.xyz], axis=1) + + l1, l2, l3 = ligand_ref_idxs + r1, r2, r3 = ( + receptor_ref_idx_1 + ligand.n_atoms, + receptor_ref_idx_2 + ligand.n_atoms, + receptor_idx + ligand.n_atoms, + ) + + if len({r1, r2, r3}) != 3: + return False + + if _are_collinear(coords[[0]], (r3, r2, r1, l1)): + return False + + if _is_dihedral_trans(coords, (r3, r2, r1, l1)): + return False + + return True + + +def select_receptor_idxs( + receptor: mdtraj.Trajectory, + ligand: mdtraj.Trajectory, + ligand_ref_idxs: tuple[int, int, int], +) -> tuple[int, int, int]: + """Select possible protein atoms for Boresch-style restraints using the method + outlined by Baumann et al [1]. + + References: + [1] Baumann, Hannah M., et al. "Broadening the scope of binding free energy + calculations using a Separated Topologies approach." (2023). + + Args: + receptor: The receptor structure. + ligand: The ligand structure. + ligand_ref_idxs: The indices of the three ligands atoms that will be restrained. + + Returns: + The indices of the three atoms to use for the restraint + """ + if not (isinstance(receptor, type(ligand)) or isinstance(ligand, type(receptor))): + raise ValueError("receptor and ligand must be the same type") + + assert ( + receptor.n_frames == ligand.n_frames + ), "receptor and ligand must have the same number of frames" + + receptor_idxs = _filter_receptor_atoms(receptor, ligand, ligand_ref_idxs[0]) + + valid_r1_idxs = [ + idx + for idx in receptor_idxs + if _is_valid_r1(receptor, idx, ligand, ligand_ref_idxs) + ] + + found_r1, found_r2 = next( + ( + (r1, r2) + for r1 in valid_r1_idxs + for r2 in receptor_idxs + if _is_valid_r2(receptor, r2, r1, ligand, ligand_ref_idxs) + ), + None, + ) + + if found_r1 is None or found_r2 is None: + raise ValueError("could not find valid R1 / R2 atoms") + + valid_r3_idxs = [ + idx + for idx in receptor_idxs + if _is_valid_r3(receptor, idx, found_r1, found_r2, ligand, ligand_ref_idxs) + ] + + if len(valid_r3_idxs) == 0: + raise ValueError("could not find a valid R3 atom") + + r3_distances_per_frame = [] + + for frame_r, frame_l in zip(receptor.xyz, ligand.xyz, strict=True): + r3_r_distances = scipy.spatial.distance.cdist( + frame_r[valid_r3_idxs, :], frame_r[[found_r1, found_r2], :] + ) + r3_l_distances = scipy.spatial.distance.cdist( + frame_r[valid_r3_idxs, :], frame_l[[ligand_ref_idxs[0]], :] + ) + + r3_distances_per_frame.append(numpy.hstack([r3_r_distances, r3_l_distances])) + + # chosen to match the SepTop reference implementation at commit 3705ba5 + # Edit to make them be closer + max_distance = 0.5 * (receptor.unitcell_lengths.mean(axis=0).min(axis=-1) / 2) + print(max_distance) + r3_distances_avg = numpy.stack(r3_distances_per_frame).mean(axis=0) + + max_distance_mask = r3_distances_avg.max(axis=-1) < max_distance + r3_distances_avg = r3_distances_avg[max_distance_mask] + + valid_r3_idxs = numpy.array(valid_r3_idxs)[max_distance_mask].tolist() + + r3_distances_prod = r3_distances_avg[:, 0] * r3_distances_avg[:, 1] + found_r3 = valid_r3_idxs[r3_distances_prod.argmax()] + + return found_r1, found_r2, found_r3 + + +def check_receptor_idxs( + receptor: mdtraj.Trajectory, + receptor_idxs: tuple[int, int, int], + ligand: mdtraj.Trajectory, + ligand_ref_idxs: tuple[int, int, int], +) -> bool: + """Check if the specified receptor atoms meet the criteria for use in Boresch-style + restraints as defined by Baumann et al [1]. + + References: + [1] Baumann, Hannah M., et al. "Broadening the scope of binding free energy + calculations using a Separated Topologies approach." (2023). + + Args: + receptor: The receptor structure. + receptor_idxs: The indices of the three receptor atoms that will be restrained. + ligand: The ligand structure. + ligand_ref_idxs: The indices of the three ligand atoms that will be restrained. + + Returns: + True if the atoms meet the criteria, False otherwise. + """ + if not (isinstance(receptor, type(ligand)) or isinstance(ligand, type(receptor))): + raise ValueError("receptor and ligand must be the same type") + + assert ( + receptor.n_frames == ligand.n_frames + ), "receptor and ligand must have the same number of frames" + + r1, r2, r3 = receptor_idxs + + is_valid_r1 = _is_valid_r1(receptor, r1, ligand, ligand_ref_idxs) + is_valid_r2 = _is_valid_r2(receptor, r2, r1, ligand, ligand_ref_idxs) + is_valid_r3 = _is_valid_r3(receptor, r3, r1, r2, ligand, ligand_ref_idxs) + + r3_distances_per_frame = [ + scipy.spatial.distance.cdist(frame[[r3], :], frame[[r1, r2], :]) + for frame in receptor.xyz + ] + r3_distance_avg = numpy.stack(r3_distances_per_frame).mean(axis=0) + + max_distance = 0.5 * (receptor.unitcell_lengths[-1][0] / 2) + print(max_distance) + is_valid_distance = r3_distance_avg.max(axis=-1) < max_distance + print(is_valid_r1, is_valid_r2, is_valid_r3, is_valid_distance) + + return is_valid_r1 and is_valid_r2 and is_valid_r3 and is_valid_distance + + +_BORESCH_ENERGY_FN = ( + "0.5 * E;" + "E = k_dist_a * (distance(p3,p4) - dist_0) ^ 2" + " + k_theta_a * (angle(p2,p3,p4) - theta_a_0) ^ 2" + " + k_theta_b * (angle(p3,p4,p5) - theta_b_0) ^ 2" + " + k_phi_a * (d_phi_a_wrap) ^ 2" + " + k_phi_b * (d_phi_b_wrap) ^ 2" + " + k_phi_c * (d_phi_c_wrap) ^ 2;" + # compute the periodic dihedral delta (e.g. distance between -180 and 180 is 0) + "d_phi_a_wrap = d_phi_a - floor(d_phi_a / (2.0 * pi) + 0.5) * (2.0 * pi);" + "d_phi_a = dihedral(p1,p2,p3,p4) - phi_a_0;" + "d_phi_b_wrap = d_phi_b - floor(d_phi_b / (2.0 * pi) + 0.5) * (2.0 * pi);" + "d_phi_b = dihedral(p2,p3,p4,p5) - phi_b_0;" + "d_phi_c_wrap = d_phi_c - floor(d_phi_c / (2.0 * pi) + 0.5) * (2.0 * pi);" + "d_phi_c = dihedral(p3,p4,p5,p6) - phi_c_0;" + f"pi = {numpy.pi}" +).replace(" ", "") + + +_ANGSTROM = openmm.unit.angstrom +_RADIANS = openmm.unit.radian + + +class _BoreschGeometry(typing.NamedTuple): + dist_0: openmm.unit.Quantity + + theta_a_0: openmm.unit.Quantity + theta_b_0: openmm.unit.Quantity + + phi_a_0: openmm.unit.Quantity + phi_b_0: openmm.unit.Quantity + phi_c_0: openmm.unit.Quantity + + +def _compute_boresch_geometry( + receptor_atoms: tuple[int, int, int], + ligand_atoms: tuple[int, int, int], + coords: openmm.unit.Quantity, +) -> _BoreschGeometry: + """Computes the equilibrium distances, angles, and dihedrals used by a Boresch + restraint.""" + + r1, r2, r3 = receptor_atoms + l1, l2, l3 = ligand_atoms + + coords = coords.value_in_unit(openmm.unit.angstrom) + + dist_0 = ( + compute_distances(coords, numpy.array([[r3, l1]])) + * _ANGSTROM + ) + + theta_a_0 = ( + compute_angles(coords, numpy.array([[r2, r3, l1]])) + * _RADIANS + ) + theta_b_0 = ( + compute_angles(coords, numpy.array([[r3, l1, l2]])) + * _RADIANS + ) + + phi_a_0 = ( + compute_dihedrals( + coords, numpy.array([[r1, r2, r3, l1]]) + ) + * _RADIANS + ) + phi_b_0 = ( + compute_dihedrals( + coords, numpy.array([[r2, r3, l1, l2]]) + ) + * _RADIANS + ) + phi_c_0 = ( + compute_dihedrals( + coords, numpy.array([[r3, l1, l2, l3]]) + ) + * _RADIANS + ) + + return _BoreschGeometry(dist_0, theta_a_0, theta_b_0, phi_a_0, phi_b_0, phi_c_0) + + +def create_boresch_restraint( + receptor_atoms: tuple[int, int, int], + ligand_atoms: tuple[int, int, int], + coords: openmm.unit.Quantity, + k_distance, + k_theta, + ctx_parameter: str | None = None, +) -> openmm.CustomCompoundBondForce: + """Creates a Boresch restraint force useful in aligning a receptor and ligand. + + Args: + settings: RestraintSettings + receptor_atoms: The indices of the receptor atoms to restrain. + ligand_atoms: The indices of the ligand atoms to restrain. + coords: The coordinates of the *full* system. + ctx_parameter: An optional context parameter to use to scale the strength of + the restraint. + + Returns: + The restraint force. + """ + n_particles = 6 # 3 receptor + 3 ligand + + energy_fn = _BORESCH_ENERGY_FN + + if ctx_parameter is not None: + energy_fn = f"{ctx_parameter} * {energy_fn}" + + force = openmm.CustomCompoundBondForce(n_particles, energy_fn) + + if ctx_parameter is not None: + force.addGlobalParameter(ctx_parameter, 1.0) + + geometry = _compute_boresch_geometry(receptor_atoms, ligand_atoms, coords) + # Scale the k_theta_a + distance_0 = 5.0 * _ANGSTROM # based on original SepTop implementation. + scale = (geometry.dist_0 / distance_0) ** 2 + parameters = [] + + for key, value in [ + ("k_dist_a", k_distance), + ("k_theta_a", k_theta * 2), + ("k_theta_b", k_theta), + ("k_phi_a", k_theta), + ("k_phi_b", k_theta), + ("k_phi_c", k_theta), + ("dist_0", geometry.dist_0), + ("theta_a_0", geometry.theta_a_0), + ("theta_b_0", geometry.theta_b_0), + ("phi_a_0", geometry.phi_a_0), + ("phi_b_0", geometry.phi_b_0), + ("phi_c_0", geometry.phi_c_0), + ]: + force.addPerBondParameter(key) + parameters.append(value.value_in_unit_system(openmm.unit.md_unit_system)) + + print(parameters) + + force.addBond(receptor_atoms + ligand_atoms, parameters) + force.setUsesPeriodicBoundaryConditions(False) + force.setName("alignment-restraint") + force.setForceGroup(6) + + return force diff --git a/openfe/protocols/openmm_septop/femto_utils.py b/openfe/protocols/openmm_septop/femto_utils.py new file mode 100644 index 000000000..c8064d0e5 --- /dev/null +++ b/openfe/protocols/openmm_septop/femto_utils.py @@ -0,0 +1,257 @@ +"""Common functions for computing the internal coordinates (e.g. bond lengths).""" + +import numpy +import openmm +import openmm.app +import openmm.unit + +from .femto_constants import OpenMMForceGroup, OpenMMForceName, OpenMMPlatform + + +def compute_bond_vectors( + coords: numpy.ndarray, idxs: numpy.ndarray +) -> tuple[numpy.ndarray, numpy.ndarray]: + """Computes the vectors between each atom pair specified by the ``idxs`` as + well as their norms. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)``. + idxs: The indices of the coordinates to compute the distances between with + ``shape=(n_pairs, 2)``. + + Returns: + A tuple of the vectors with shape=``shape=(n_pairs, 3)`` and norms with + ``shape=(n_pairs,)``. + """ + + if len(idxs) == 0: + return numpy.ndarray([]), numpy.ndarray([]) + + directions = coords[idxs[:, 1]] - coords[idxs[:, 0]] + distances = numpy.linalg.norm(directions, axis=1) + + return directions, distances + + +def compute_distances(coords: numpy.ndarray, idxs: numpy.ndarray) -> numpy.ndarray: + """Computes the distances between each pair of coordinates. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)``. + idxs: The indices of the coordinates to compute the distances between with + ``shape=(n_pairs, 2)``. + + Returns: + The distances with ``shape=(n_pairs,)``. + """ + + return compute_bond_vectors(coords, idxs)[1] + + +def compute_angles(coords: numpy.ndarray, idxs: numpy.ndarray) -> numpy.ndarray: + """Computes the angles [rad] between each specified triplet of indices. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)`` or + ``shape=(n_frames, n_coords, 3)``. + idxs: The indices of the coordinates to compute the angles between with + ``shape=(n_pairs, 3)``. + + Returns: + The angles with ``shape=(n_pairs,)`` or ``shape=(n_frames, n_pairs)``. + """ + + if len(idxs) == 0: + return numpy.ndarray([]) + + is_batched = coords.ndim == 3 + + if not is_batched: + coords = coords[None, :, :] + + vector_ab = coords[:, idxs[:, 1]] - coords[:, idxs[:, 0]] + vector_ac = coords[:, idxs[:, 1]] - coords[:, idxs[:, 2]] + + # tan theta = sin theta / cos theta + # + # ||a x b|| = ||a|| ||b|| sin theta + # a . b = ||a|| ||b|| cos theta + # + # => tan theta = (a x b) / (a . b) + angles = numpy.arctan2( + numpy.linalg.norm(numpy.cross(vector_ab, vector_ac, axis=-1), axis=-1), + (vector_ab * vector_ac).sum(axis=-1), + ) + + if not is_batched: + angles = angles[0] + + return angles + + +def compute_dihedrals(coords: numpy.ndarray, idxs: numpy.ndarray) -> numpy.ndarray: + """Computes the angles [rad] between each specified quartet of indices. + + Args: + coords: The coordinates with ``shape=(n_coords, 3)`` or + ``shape=(n_frames, n_coords, 3)``. + idxs: The indices of the coordinates to compute the dihedrals between with + ``shape=(n_pairs, 4)``. + + Returns: + The dihedrals with ``shape=(n_pairs,)`` or ``shape=(n_frames, n_pairs)``. + """ + + if len(idxs) == 0: + return numpy.ndarray([]) + + is_batched = coords.ndim == 3 + + if not is_batched: + coords = coords[None, :, :] + + vector_ab = coords[:, idxs[:, 0]] - coords[:, idxs[:, 1]] + vector_cb = coords[:, idxs[:, 2]] - coords[:, idxs[:, 1]] + vector_cd = coords[:, idxs[:, 2]] - coords[:, idxs[:, 3]] + + vector_ab_cross_cb = numpy.cross(vector_ab, vector_cb, axis=-1) + vector_cb_cross_cd = numpy.cross(vector_cb, vector_cd, axis=-1) + + vector_cb_norm = numpy.linalg.norm(vector_cb, axis=-1)[:, :, None] + + y = ( + numpy.cross(vector_ab_cross_cb, vector_cb_cross_cd, axis=-1) + * vector_cb + / vector_cb_norm + ).sum(axis=-1) + + x = (vector_ab_cross_cb * vector_cb_cross_cd).sum(axis=-1) + + phi = numpy.arctan2(y, x) + + if not is_batched: + phi = phi[0] + + return phi + +def assign_force_groups(system: openmm.System): + """Assign standard force groups to forces in a system. + + Notes: + * COM, alignment, and position restraints are detected by their name. If their + name is not set to a ``OpenMMForceName``, they will be assigned a force group + of ``OTHER``. + + Args: + system: The system to modify in-place. + """ + + force: openmm.Force + + for force in system.getForces(): + if force.getName() == OpenMMForceName.COM_RESTRAINT: + force.setForceGroup(OpenMMForceGroup.COM_RESTRAINT) + elif force.getName() == OpenMMForceName.ALIGNMENT_RESTRAINT: + force.setForceGroup(OpenMMForceGroup.ALIGNMENT_RESTRAINT) + elif force.getName().startswith(OpenMMForceName.POSITION_RESTRAINT): + force.setForceGroup(OpenMMForceGroup.POSITION_RESTRAINT) + + elif isinstance(force, openmm.HarmonicBondForce): + force.setForceGroup(OpenMMForceGroup.BOND) + elif isinstance(force, openmm.HarmonicAngleForce): + force.setForceGroup(OpenMMForceGroup.ANGLE) + elif isinstance( + force, (openmm.PeriodicTorsionForce, openmm.CustomTorsionForce) + ): + force.setForceGroup(OpenMMForceGroup.DIHEDRAL) + elif isinstance(force, (openmm.NonbondedForce, openmm.CustomNonbondedForce)): + force.setForceGroup(OpenMMForceGroup.NONBONDED) + elif isinstance(force, openmm.ATMForce): + force.setForceGroup(OpenMMForceGroup.ATM) + elif isinstance(force, openmm.MonteCarloBarostat): + force.setForceGroup(OpenMMForceGroup.BAROSTAT) + else: + force.setForceGroup(OpenMMForceGroup.OTHER) + +def is_close( + v1: openmm.unit.Quantity, + v2: openmm.unit.Quantity, + rtol=1.0e-5, + atol=1.0e-8, + equal_nan=False, +) -> bool | numpy.ndarray: + """Compares if two unit wrapped values are close using ``numpy.is_close``""" + + if not v1.unit.is_compatible(v2.unit): + return False + return numpy.isclose( + v1.value_in_unit(v1.unit), + v2.value_in_unit(v1.unit), + atol=atol, + rtol=rtol, + equal_nan=equal_nan, + ) + + +def all_close( + v1: openmm.unit.Quantity, + v2: openmm.unit.Quantity, + rtol=1.0e-5, + atol=1.0e-8, + equal_nan=False, +) -> bool: + """Compares if all values in two unit wrapped array are close using + ``numpy.allclose`` + """ + + if not v1.unit.is_compatible(v2.unit): + return False + + if v1.shape != v2.shape: + return False + + return numpy.allclose( + v1.value_in_unit(v1.unit), + v2.value_in_unit(v1.unit), + atol=atol, + rtol=rtol, + equal_nan=equal_nan, + ) + +def compute_energy( + system: openmm.System, + positions: openmm.unit.Quantity, + box_vectors: openmm.unit.Quantity | None, + context_params: dict[str, float] | None = None, + platform: OpenMMPlatform = OpenMMPlatform.REFERENCE, + groups: int | set[int] = -1, +) -> openmm.unit.Quantity: + """Computes the potential energy of a system at a given set of positions. + + Args: + system: The system to compute the energy of. + positions: The positions to compute the energy at. + box_vectors: The box vectors to use if any. + context_params: Any global context parameters to set. + platform: The platform to use. + groups: The force groups to include in the energy calculation. + + Returns: + The computed energy. + """ + context_params = context_params if context_params is not None else {} + + context = openmm.Context( + system, + openmm.VerletIntegrator(0.0001 * openmm.unit.femtoseconds), + openmm.Platform.getPlatformByName(str(platform)), + ) + + for key, value in context_params.items(): + context.setParameter(key, value) + + if box_vectors is not None: + context.setPeriodicBoxVectors(*box_vectors) + context.setPositions(positions) + + return context.getState(getEnergy=True, groups=groups).getPotentialEnergy() \ No newline at end of file diff --git a/openfe/protocols/openmm_septop/utils.py b/openfe/protocols/openmm_septop/utils.py new file mode 100644 index 000000000..7fb9a139f --- /dev/null +++ b/openfe/protocols/openmm_septop/utils.py @@ -0,0 +1,163 @@ +import os +import pathlib +from openmmtools import states +from openmmtools.alchemy import ( + AlchemicalStateError, AlchemicalRegion, + AlchemicalFunction, AbsoluteAlchemicalFactory, +) +from openmmtools.states import GlobalParameterState + +def serialize(item, filename: pathlib.Path): + """ + Serialize an OpenMM System, State, or Integrator. + + Parameters + ---------- + item : System, State, or Integrator + The thing to be serialized + filename : str + The filename to serialize to + """ + from openmm import XmlSerializer + + # Create parent directory if it doesn't exist + filename_basedir = filename.parent + if not filename_basedir.exists(): + os.makedirs(filename_basedir) + + if filename.suffix == ".gz": + import gzip + + with gzip.open(filename, mode="wb") as outfile: + serialized_thing = XmlSerializer.serialize(item) + outfile.write(serialized_thing.encode()) + if filename.suffix == ".bz2": + import bz2 + + with bz2.open(filename, mode="wb") as outfile: + serialized_thing = XmlSerializer.serialize(item) + outfile.write(serialized_thing.encode()) + else: + with open(filename, mode="w") as outfile: + serialized_thing = XmlSerializer.serialize(item) + outfile.write(serialized_thing) + + +def deserialize(filename: pathlib.Path): + """ + Deserialize an OpenMM System, State, or Integrator. + + Parameters + ---------- + item : System, State, or Integrator + The thing to be serialized + filename : str + The filename to serialize to + """ + from openmm import XmlSerializer + + # Create parent directory if it doesn't exist + filename_basedir = filename.parent + if not filename_basedir.exists(): + os.makedirs(filename_basedir) + + if filename.suffix == ".gz": + import gzip + + with gzip.open(filename, mode="rb") as infile: + serialized_thing = infile.read().decode() + item = XmlSerializer.deserialize(serialized_thing) + if filename.suffix == ".bz2": + import bz2 + + with bz2.open(filename, mode="rb") as infile: + serialized_thing = infile.read().decode() + item = XmlSerializer.deserialize(serialized_thing) + else: + with open(filename) as infile: + serialized_thing = infile.read() + item = XmlSerializer.deserialize(serialized_thing) + + return item + + +class SepTopParameterState(GlobalParameterState): + """ + Composable state to control lambda parameters for two ligands. + See :class:`openmmtools.states.GlobalParameterState` for more details. + Parameters + ---------- + parameters_name_suffix : Optional[str] + If specified, the state will control a modified version of the parameter + ``lambda_restraints_{parameters_name_suffix}` instead of just + ``lambda_restraints``. + lambda_sterics_A : Optional[float] + The value for the vdW interactions for ligand A. + If defined, must be between 0 and 1. + lambda_electrosterics_A : Optional[float] + The value for the electrostatics interactions for ligand A. + If defined, must be between 0 and 1. + lambda_restraints_A : Optional[float] + The strength of the restraint for ligand A. + If defined, must be between 0 and 1. + lambda_bonds_A : Optional[float] + The value for modifying bonds for ligand A. + If defined, must be between 0 and 1. + lambda_angles_A : Optional[float] + The value for modifying angles for ligand A. + If defined, must be between 0 and 1. + lambda_dihedrals_A : Optional[float] + The value for modifying dihedrals for ligand A. + If defined, must be between 0 and 1. + lambda_sterics_B : Optional[float] + The value for the vdW interactions for ligand B. + If defined, must be between 0 and 1. + lambda_electrosterics_B : Optional[float] + The value for the electrostatics interactions for ligand B. + If defined, must be between 0 and 1. + lambda_restraints_B : Optional[float] + The strength of the restraint for ligand B. + If defined, must be between 0 and 1. + lambda_bonds_B : Optional[float] + The value for modifying bonds for ligand B. + If defined, must be between 0 and 1. + lambda_angles_B : Optional[float] + The value for modifying angles for ligand B. + If defined, must be between 0 and 1. + lambda_dihedrals_B : Optional[float] + The value for modifying dihedrals for ligand B. + If defined, must be between 0 and 1. + """ + + class _LambdaParameter(states.GlobalParameterState.GlobalParameter): + """A global parameter in the interval [0, 1] with standard + value 1.""" + + def __init__(self, parameter_name): + super().__init__(parameter_name, standard_value=1.0, + validator=self.lambda_validator) + + @staticmethod + def lambda_validator(self, instance, parameter_value): + if parameter_value is None: + return parameter_value + if not (0.0 <= parameter_value <= 1.0): + raise ValueError('{} must be between 0 and 1.'.format( + self.parameter_name)) + return float(parameter_value) + + # Lambda parameters for ligand A + lambda_sterics_A = _LambdaParameter('lambda_sterics_A') + lambda_electrostatics_A = _LambdaParameter('lambda_electrostatics_A') + lambda_restraints_A = _LambdaParameter('lambda_restraints_A') + lambda_bonds_A = _LambdaParameter('lambda_bonds_A') + lambda_angles_A = _LambdaParameter('lambda_angles_A') + lambda_torsions_A = _LambdaParameter('lambda_torsions_A') + + # Lambda parameters for ligand B + lambda_sterics_B = _LambdaParameter('lambda_sterics_B') + lambda_electrostatics_B = _LambdaParameter('lambda_electrostatics_B') + lambda_restraints_B = _LambdaParameter('lambda_restraints_B') + lambda_bonds_B = _LambdaParameter('lambda_bonds_B') + lambda_angles_B = _LambdaParameter('lambda_angles_B') + lambda_torsions_B = _LambdaParameter('lambda_torsions_B') diff --git a/openfe/protocols/restraint_utils/__init__.py b/openfe/protocols/restraint_utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openfe/protocols/restraint_utils/geometry/__init__.py b/openfe/protocols/restraint_utils/geometry/__init__.py new file mode 100644 index 000000000..1c1b4c56a --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/__init__.py @@ -0,0 +1,4 @@ +from .base import BaseRestraintGeometry +from .harmonic import DistanceRestraintGeometry +from .flatbottom import FlatBottomDistanceGeometry +from .boresch import BoreschRestraintGeometry diff --git a/openfe/protocols/restraint_utils/geometry/base.py b/openfe/protocols/restraint_utils/geometry/base.py new file mode 100644 index 000000000..798befd45 --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/base.py @@ -0,0 +1,48 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Restraint Geometry classes + +TODO +---- +* Add relevant duecredit entries. +""" +import abc +from pydantic.v1 import BaseModel, validator + + +class BaseRestraintGeometry(BaseModel, abc.ABC): + """ + A base class for a restraint geometry. + """ + class Config: + arbitrary_types_allowed = True + + +class HostGuestRestraintGeometry(BaseRestraintGeometry): + """ + An ordered list of guest atoms to restrain. + + Note + ---- + The order matters! It will be used to define the underlying + force. + """ + + guest_atoms: list[int] + """ + An ordered list of host atoms to restrain. + + Note + ---- + The order matters! It will be used to define the underlying + force. + """ + host_atoms: list[int] + + @validator("guest_atoms", "host_atoms") + def positive_idxs(cls, v): + if v is not None and any([i < 0 for i in v]): + errmsg = "negative indices passed" + raise ValueError(errmsg) + return v diff --git a/openfe/protocols/restraint_utils/geometry/boresch/__init__.py b/openfe/protocols/restraint_utils/geometry/boresch/__init__.py new file mode 100644 index 000000000..ab3c38cfc --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/boresch/__init__.py @@ -0,0 +1,5 @@ +from .geometry import ( + BoreschRestraintGeometry, + find_boresch_restraint, + find_guest_atom_candidates, +) diff --git a/openfe/protocols/restraint_utils/geometry/boresch/geometry.py b/openfe/protocols/restraint_utils/geometry/boresch/geometry.py new file mode 100644 index 000000000..8449967db --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/boresch/geometry.py @@ -0,0 +1,298 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Restraint Geometry classes + +TODO +---- +* Add relevant duecredit entries. +""" +from typing import Optional + +from rdkit import Chem + +from openff.units import unit +from openff.models.types import FloatQuantity +import MDAnalysis as mda +from MDAnalysis.lib.distances import calc_bonds, calc_angles, calc_dihedrals + +from openfe.protocols.restraint_utils.geometry.base import ( + HostGuestRestraintGeometry +) +from .guest import find_guest_atom_candidates +from .host import find_host_atom_candidates, find_host_anchor + + +class BoreschRestraintGeometry(HostGuestRestraintGeometry): + """ + A class that defines the restraint geometry for a Boresch restraint. + + The restraint is defined by the following: + + H2 G2 + - - + - - + H1 - - H0 -- G0 - - G1 + + Where HX represents the X index of ``host_atoms`` and GX + the X index of ``guest_atoms``. + """ + r_aA0: FloatQuantity['nanometer'] + """ + The equilibrium distance between H0 and G0. + """ + theta_A0: FloatQuantity['radians'] + """ + The equilibrium angle value between H1, H0, and G0. + """ + theta_B0: FloatQuantity['radians'] + """ + The equilibrium angle value between H0, G0, and G1. + """ + phi_A0: FloatQuantity['radians'] + """ + The equilibrium dihedral value between H2, H1, H0, and G0. + """ + phi_B0: FloatQuantity['radians'] + + """ + The equilibrium dihedral value between H1, H0, G0, and G1. + """ + phi_C0: FloatQuantity['radians'] + + """ + The equilibrium dihedral value between H0, G0, G1, and G2. + """ + + +def _get_restraint_distances( + atomgroup: mda.AtomGroup +) -> tuple[unit.Quantity]: + """ + Get the bond, angle, and dihedral distances for an input atomgroup + defining the six atoms for a Boresch-like restraint. + + The atoms must be in the order of H0, H1, H2, G0, G1, G2. + + Parameters + ---------- + atomgroup : mda.AtomGroup + An AtomGroup defining the restrained atoms in order. + + Returns + ------- + bond : unit.Quantity + The H0-G0 bond value. + angle1 : unit.Quantity + The H1-H0-G0 angle value. + angle2 : unit.Quantity + The H0-G0-G1 angle value. + dihed1 : unit.Quantity + The H2-H1-H0-G0 dihedral value. + dihed2 : unit.Quantity + The H1-H0-G0-G1 dihedral value. + dihed3 : unit.Quantity + The H0-G0-G1-G2 dihedral value. + """ + bond = calc_bonds( + atomgroup.atoms[0].position, + atomgroup.atoms[3].position, + box=atomgroup.dimensions + ) * unit.angstroms + + angles = [] + for idx_set in [[1, 0, 3], [0, 3, 4]]: + angle = calc_angles( + atomgroup.atoms[idx_set[0]].position, + atomgroup.atoms[idx_set[1]].position, + atomgroup.atoms[idx_set[2]].position, + box=atomgroup.dimensions, + ) + angles.append(angle * unit.radians) + + dihedrals = [] + for idx_set in [[2, 1, 0, 3], [1, 0, 3, 4], [0, 3, 4, 5]]: + dihed = calc_dihedrals( + atomgroup.atoms[idx_set[0]].position, + atomgroup.atoms[idx_set[1]].position, + atomgroup.atoms[idx_set[2]].position, + atomgroup.atoms[idx_set[3]].position, + box=atomgroup.dimensions, + ) + dihedrals.append(dihed * unit.radians) + + return bond, angles[0], angles[1], dihedrals[0], dihedrals[1], dihedrals[2] + + +def find_boresch_restraint( + universe: mda.Universe, + guest_rdmol: Chem.Mol, + guest_idxs: list[int], + host_idxs: list[int], + guest_restraint_atoms_idxs: Optional[list[int]] = None, + host_restraint_atoms_idxs: Optional[list[int]] = None, + host_selection: str = "all", + dssp_filter: bool = False, + rmsf_cutoff: unit.Quantity = 0.1 * unit.nanometer, + host_min_distance: unit.Quantity = 1 * unit.nanometer, + host_max_distance: unit.Quantity = 2 * unit.nanometer, + angle_force_constant: unit.Quantity = ( + 83.68 * unit.kilojoule_per_mole / unit.radians**2 + ), + temperature: unit.Quantity = 298.15 * unit.kelvin, +) -> BoreschRestraintGeometry: + """ + Find suitable Boresch-style restraints between a host and guest entity + based on the approach of Baumann et al. [1] with some modifications. + + Parameters + ---------- + universe : mda.Universe + An MDAnalysis Universe defining the system and its coordinates. + guest_rdmol : Chem.Mol + An RDKit Mol for the guest molecule. + guest_idxs : list[int] + Indices in the topology for the guest molecule. + host_idxs : list[int] + Indices in the topology for the host molecule. + guest_restraint_atoms_idxs : Optional[list[int]] + User selected indices of the guest molecule itself (i.e. indexed + starting a 0 for the guest molecule). This overrides the + restraint search and a restraint using these indices will + be retruned. Must be defined alongside ``host_restraint_atoms_idxs``. + host_restraint_atoms_idxs : Optional[list[int]] + User selected indices of the host molecule itself (i.e. indexed + starting a 0 for the hosts molecule). This overrides the + restraint search and a restraint using these indices will + be returnned. Must be defined alongside ``guest_restraint_atoms_idxs``. + host_selection : str + An MDAnalysis selection string to sub-select the host atoms. + dssp_filter : bool + Whether or not to filter the host atoms by their secondary structure. + rmsf_cutoff : unit.Quantity + The cutoff value for atom root mean square fluction. Atoms with RMSF + values above this cutoff will be disregarded. + Must be in units compatible with nanometer. + host_min_distance : unit.Quantity + The minimum distance between any host atom and the guest G0 atom. + Must be in units compatible with nanometer. + host_max_distance : unit.Quantity + The maximum distance between any host atom and the guest G0 atom. + Must be in units compatible with nanometer. + angle_force_constant : unit.Quantity + The force constant for the G1-G0-H0 and G0-H0-H1 angles. Must be + in units compatible with kilojoule / mole / radians ** 2. + temperature : unit.Quantity + The system temperature in units compatible with Kelvin. + + Returns + ------- + BoreschRestraintGeometry + An object defining the parameters of the Boresch-like restraint. + + References + ---------- + [1] Baumann, Hannah M., et al. "Broadening the scope of binding free energy + calculations using a Separated Topologies approach." (2023). + """ + if (guest_restraint_atoms_idxs is not None) and (host_restraint_atoms_idxs is not None): # fmt: skip + # In this case assume the picked atoms were intentional / + # representative of the input and go with it + guest_ag = universe.select_atoms[guest_idxs] + guest_anchor = [ + at.ix for at in guest_ag.atoms[guest_restraint_atoms_idxs] + ] + host_ag = universe.select_atoms[host_idxs] + host_anchor = [ + at.ix for at in host_ag.atoms[host_restraint_atoms_idxs] + ] + + # Set the equilibrium values as those of the final frame + universe.trajectory[-1] + atomgroup = universe.atoms[host_anchor + guest_anchor] + bond, ang1, ang2, dih1, dih2, dih3 = _get_restraint_distances( + atomgroup + ) + + # TODO: add checks to warn if this is a badly picked + # set of atoms. + return BoreschRestraintGeometry( + host_atoms=host_anchor, + guest_atoms=guest_anchor, + r_aA0=bond, + theta_A0=ang1, + theta_B0=ang2, + phi_A0=dih1, + phi_B0=dih2, + phi_C0=dih3 + ) + + if (guest_restraint_atoms_idxs is not None) ^ (host_restraint_atoms_idxs is not None): # fmt: skip + # This is not an intended outcome, crash out here + errmsg = ( + "both ``guest_restraints_atoms_idxs`` and " + "``host_restraint_atoms_idxs`` " + "must be set or both must be None. " + f"Got {guest_restraint_atoms_idxs} and {host_restraint_atoms_idxs}" + ) + raise ValueError(errmsg) + + # 1. Fetch the guest anchors + guest_anchors = find_guest_atom_candidates( + universe=universe, + rdmol=guest_rdmol, + guest_idxs=guest_idxs, + rmsf_cutoff=rmsf_cutoff, + ) + + if len(guest_anchors) == 0: + errmsg = "No suitable ligand atoms found for the restraint." + raise ValueError(errmsg) + + # 2. We then loop through the guest anchors to find suitable host atoms + for guest_anchor in guest_anchors: + # We next fetch the host atom pool + # Note: return is a set, so need to convert it later on + host_pool = find_host_atom_candidates( + universe=universe, + host_idxs=host_idxs, + l1_idx=guest_anchor[0], + host_selection=host_selection, + dssp_filter=dssp_filter, + rmsf_cutoff=rmsf_cutoff, + min_distance=host_min_distance, + max_distance=host_max_distance, + ) + + host_anchor = find_host_anchor( + guest_atoms=universe.atoms[list(guest_anchor)], + host_atom_pool=universe.atoms[list(host_pool)], + minimum_distance=0.5 * unit.nanometer, + angle_force_constant=angle_force_constant, + temperature=temperature, + ) + # continue if it's empty, otherwise stop + if host_anchor is not None: + break + + if host_anchor is None: + errmsg = "No suitable host atoms could be found" + raise ValueError(errmsg) + + # Set the equilibrium values as those of the final frame + universe.trajectory[-1] + atomgroup = universe.atoms[list(host_anchor) + list(guest_anchor)] + bond, ang1, ang2, dih1, dih2, dih3 = _get_restraint_distances( + atomgroup + ) + + return BoreschRestraintGeometry( + host_atoms=host_anchor, + guest_atoms=guest_anchor, + r_aA0=bond, + theta_A0=ang1, + theta_B0=ang2, + phi_A0=dih1, + phi_B0=dih2, + phi_C0=dih3 + ) diff --git a/openfe/protocols/restraint_utils/geometry/boresch/guest.py b/openfe/protocols/restraint_utils/geometry/boresch/guest.py new file mode 100644 index 000000000..8c3490dd2 --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/boresch/guest.py @@ -0,0 +1,252 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Restraint Geometry classes + +TODO +---- +* Add relevant duecredit entries. +""" +from typing import Optional, Iterable + +from rdkit import Chem + +from openff.units import unit +import MDAnalysis as mda +import numpy as np +import numpy.typing as npt + +from openfe.protocols.restraint_utils.geometry.utils import ( + get_aromatic_rings, + get_heavy_atom_idxs, + get_central_atom_idx, + is_collinear, + get_local_rmsf, +) + + +def _sort_by_distance_from_atom( + rdmol: Chem.Mol, target_idx: int, atom_idxs: Iterable[int] +) -> list[int]: + """ + Sort a list of RDMol atoms by their distance from a target atom. + + Parameters + ---------- + target_idx : int + The idx of the atom to measure from. + atom_idxs : list[int] + The idx values of the atoms to sort. + rdmol : Chem.Mol + RDKit Molecule the atoms belong to + + Returns + ------- + list[int] + The input atom idxs sorted by their distance from the target atom. + """ + distances = [] + + conformer = rdmol.GetConformer() + # Get the target atom position + target_pos = conformer.GetAtomPosition(target_idx) + + for idx in atom_idxs: + pos = conformer.GetAtomPosition(idx) + distances.append(((target_pos - pos).Length(), idx)) + + return [i[1] for i in sorted(distances)] + + +def _bonded_angles_from_pool( + rdmol: Chem.Mol, + atom_idx: int, + atom_pool: list[int], + aromatic_only: bool, +) -> list[tuple[int, int, int]]: + """ + Get all bonded angles starting from ``atom_idx`` from a pool of atoms. + + Parameters + ---------- + rdmol : Chem.Mol + The RDKit Molecule + atom_idx : int + The index of the atom to search angles from. + atom_pool : list[int] + The list of indices to pick possible angle partners from. + aromatic_only : bool + Prune any angles that include non-aromatic bonds. + + Returns + ------- + list[tuple[int, int, int]] + A list of tuples containing all the angles. + + Notes + ----- + * In the original SepTop code at3 is picked as directly bonded to at1. + By comparison here we instead follow the case that at3 is bonded to + at2 but not bonded to at1. + """ + angles = [] + + # Get the base atom and its neighbors + at1 = rdmol.GetAtomWithIdx(atom_idx) + at1_neighbors = [at.GetIdx() for at in at1.GetNeighbors()] + + # We loop at2 and at3 through the sorted atom_pool in order to get + # a list of angles in the branch that are sorted by how close the atoms + # are from the central atom + for at2 in atom_pool: + if at2 in at1_neighbors: + at2_neighbors = [ + at.GetIdx() for at in rdmol.GetAtomWithIdx(at2).GetNeighbors() + ] + for at3 in atom_pool: + if at3 != atom_idx and at3 in at2_neighbors: + angles.append((atom_idx, at2, at3)) + + if aromatic_only: # TODO: move this to its own method? + aromatic_rings = get_aromatic_rings(rdmol) + + def _belongs_to_ring(angle, aromatic_rings): + for ring in aromatic_rings: + if all(a in ring for a in angle): + return True + return False + + for angle in angles: + if not _belongs_to_ring(angle, aromatic_rings): + angles.remove(angle) + + return angles + + +def _get_guest_atom_pool( + rdmol: Chem.Mol, + rmsf: npt.NDArray, + rmsf_cutoff: unit.Quantity +) -> tuple[Optional[set[int]], bool]: + """ + Filter atoms based on rmsf & rings, defaulting to heavy atoms if + there are not enough. + + Parameters + ---------- + rdmol : Chem.Mol + The RDKit Molecule to search through + rmsf : npt.NDArray + A 1-D array of RMSF values for each atom. + rmsf_cutoff : unit.Quantity + The rmsf cutoff value for selecting atoms in units compatible with + nanometer. + + Returns + ------- + atom_pool : Optional[set[int]] + A pool of candidate atoms. + ring_atoms_only : bool + True if only ring atoms were selected. + """ + # Get a list of all the aromatic rings + # Note: no need to keep track of rings because we'll filter by + # bonded terms after, so if we only keep rings then all the bonded + # atoms should be within the same ring system. + atom_pool: set[int] = set() + ring_atoms_only: bool = True + for ring in get_aromatic_rings(rdmol): + max_rmsf = rmsf[list(ring)].max() + if max_rmsf < rmsf_cutoff: + atom_pool.update(ring) + + # if we don't have enough atoms just get all the heavy atoms + if len(atom_pool) < 3: + ring_atoms_only = False + heavy_atoms = np.array(get_heavy_atom_idxs(rdmol)) + atom_pool = set(heavy_atoms[rmsf[heavy_atoms] < rmsf_cutoff]) + if len(atom_pool) < 3: + return None, False + + return atom_pool, ring_atoms_only + + +def find_guest_atom_candidates( + universe: mda.Universe, + rdmol: Chem.Mol, + guest_idxs: list[int], + rmsf_cutoff: unit.Quantity = 1 * unit.nanometer, +) -> list[tuple[int]]: + """ + Get a list of potential ligand atom choices for a Boresch restraint + being applied to a given small molecule. + + Parameters + ---------- + universe : mda.Universe + An MDAnalysis Universe defining the system and its coordinates. + rdmol : Chem.Mol + An RDKit Molecule representing the small molecule ordered in + the same way as it is listed in the topology. + guest_idxs : list[int] + The ligand indices in the topology. + rmsf_cutoff : unit.Quantity + The RMSF filter cut-off. + + Returns + ------- + angle_list : list[tuple[int]] + A list of tuples for each valid G0, G1, G2 angle. If ``None``, no + angles could be found. + + Raises + ------ + ValueError + If no suitable ligand atoms could be found. + + TODO + ---- + Should the RDMol have a specific frame position? + """ + ligand_ag = universe.atoms[guest_idxs] + + # 0. Get the ligand RMSF + rmsf = get_local_rmsf(ligand_ag) + universe.trajectory[-1] # forward to the last frame + + # 1. Get the pool of atoms to work with + atom_pool, rings_only = _get_guest_atom_pool(rdmol, rmsf, rmsf_cutoff) + + if atom_pool is None: + # We don't have enough atoms so we raise an error + errmsg = "No suitable ligand atoms were found for the restraint" + raise ValueError(errmsg) + + # 2. Get the central atom + center = get_central_atom_idx(rdmol) + + # 3. Sort the atom pool based on their distance from the center + sorted_atom_pool = _sort_by_distance_from_atom(rdmol, center, atom_pool) + + # 4. Get a list of probable angles + angles_list = [] + for atom in sorted_atom_pool: + angles = _bonded_angles_from_pool( + rdmol=rdmol, + atom_idx=atom, + atom_pool=sorted_atom_pool, + aromatic_only=rings_only, + ) + for angle in angles: + # Check that the angle is at least not collinear + angle_ag = ligand_ag.atoms[list(angle)] + if not is_collinear(ligand_ag.positions, angle, universe.dimensions): + angles_list.append( + ( + angle_ag.atoms[0].ix, + angle_ag.atoms[1].ix, + angle_ag.atoms[2].ix + ) + ) + + return angles_list diff --git a/openfe/protocols/restraint_utils/geometry/boresch/host.py b/openfe/protocols/restraint_utils/geometry/boresch/host.py new file mode 100644 index 000000000..56f015241 --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/boresch/host.py @@ -0,0 +1,430 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Restraint Geometry classes + +TODO +---- +* Add relevant duecredit entries. +""" +from typing import Optional +import warnings + +from openff.units import unit +import MDAnalysis as mda +from MDAnalysis.analysis.base import AnalysisBase +from MDAnalysis.lib.distances import calc_bonds, calc_angles, calc_dihedrals +import numpy as np +import numpy.typing as npt + +from openfe.protocols.restraint_utils.geometry.utils import ( + is_collinear, + check_angular_variance, + check_dihedral_bounds, + check_angle_not_flat, + FindHostAtoms, + get_local_rmsf, + stable_secondary_structure_selection +) + + +def find_host_atom_candidates( + universe: mda.Universe, + host_idxs: list[int], + l1_idx: int, + host_selection: str, + dssp_filter: bool = False, + rmsf_cutoff: unit.Quantity = 0.1 * unit.nanometer, + min_distance: unit.Quantity = 1 * unit.nanometer, + max_distance: unit.Quantity = 3 * unit.nanometer, +) -> npt.NDArray: + """ + Get a list of suitable host atoms. + + Parameters + ---------- + universe : mda.Universe + An MDAnalysis Universe defining the system and its coordinates. + host_idxs : list[int] + A list of the host indices in the system topology. + l1_idx : int + The index of the proposed l1 binding atom. + host_selection : str + An MDAnalysis selection string to filter the host by. + dssp_filter : bool + Whether or not to apply a DSSP filter on the host selection. + rmsf_cutoff : uni.Quantity + The maximum RMSF value allowwed for any candidate host atom. + min_distance : unit.Quantity + The minimum search distance around l1 for suitable candidate atoms. + max_distance : unit.Quantity + The maximum search distance around l1 for suitable candidate atoms. + + Return + ------ + NDArray + Array of host atom indexes + """ + # Get an AtomGroup for the host based on the input host indices + host_ag = universe.atoms[host_idxs] + + # Filter the host AtomGroup based on ``host_selection` + selected_host_ag = host_ag.select_atoms(host_selection) + + # If requested, filter the host atoms based on if their residues exist + # within stable secondary structures. + if dssp_filter: + # TODO: allow user-supplied kwargs here + stable_ag = stable_secondary_structure_selection(selected_host_ag) + + if len(stable_ag) < 20: + wmsg = ( + "Secondary structure filtering: " + "Too few atoms found via secondary strcuture filtering will " + "try to only select all residues in protein chains instead." + ) + warnings.warn(wmsg) + stable_ag = protein_chain_selection(selected_host_ag) + + if len(stable_ag) < 20: + wmsg = ( + "Secondary structure filtering: " + "Too few atoms found in protein residue chains, will just " + "use all atoms." + ) + warnings.warn(wmsg) + else: + selected_host_ag = stable_ag + + # 1. Get the RMSF & filter to create a new AtomGroup + rmsf = get_local_rmsf(selected_host_ag) + filtered_host_ag = selected_host_ag.atoms[rmsf < rmsf_cutoff] + + # 2. Search of atoms within the min/max cutoff + atom_finder = FindHostAtoms( + host_atoms=filtered_host_ag, + guest_atoms=universe.atoms[l1_idx], + min_search_distance=min_distance, + max_search_distance=max_distance, + ) + atom_finder.run() + return atom_finder.results.host_idxs + + +class EvaluateHostAtoms1(AnalysisBase): + """ + Class to evaluate the suitability of a set of host atoms + as either H0 or H1 atoms (i.e. the first and second host atoms). + + Parameters + ---------- + reference : MDAnalysis.AtomGroup + The reference preceeding three atoms. + host_atom_pool : MDAnalysis.AtomGroup + The pool of atoms to pick an atom from. + minimum_distance : unit.Quantity + The minimum distance from the bound reference atom. + angle_force_constant : unit.Quantity + The force constant for the angle. + temperature : unit.Quantity + The system temperature in Kelvin + """ + def __init__( + self, + reference, + host_atom_pool, + minimum_distance, + angle_force_constant, + temperature, + **kwargs, + ): + super().__init__(reference.universe.trajectory, **kwargs) + + if len(reference) != 3: + errmsg = "Incorrect number of reference atoms passed" + raise ValueError(errmsg) + + self.reference = reference + self.host_atom_pool = host_atom_pool + self.minimum_distance = minimum_distance.to("angstrom").m + self.angle_force_constant = angle_force_constant + self.temperature = temperature + + def _prepare(self): + self.results.distances = np.zeros( + (len(self.host_atom_pool), self.n_frames) + ) + self.results.angles = np.zeros( + (len(self.host_atom_pool), self.n_frames) + ) + self.results.dihedrals = np.zeros( + (len(self.host_atom_pool), self.n_frames) + ) + self.results.collinear = np.empty( + (len(self.host_atom_pool), self.n_frames), + dtype=bool, + ) + self.results.valid = np.empty( + len(self.host_atom_pool), + dtype=bool, + ) + # Set everything to False to begin with + self.results.valid[:] = False + + def _single_frame(self): + for i, at in enumerate(self.host_atom_pool): + distance = calc_bonds( + at.position, + self.reference.atoms[0].position, + box=self.reference.dimensions, + ) + angle = calc_angles( + at.position, + self.reference.atoms[0].position, + self.reference.atoms[1].position, + box=self.reference.dimensions, + ) + dihedral = calc_dihedrals( + at.position, + self.reference.atoms[0].position, + self.reference.atoms[1].position, + self.reference.atoms[2].position, + box=self.reference.dimensions, + ) + collinear = is_collinear( + positions=np.vstack((at.position, self.reference.positions)), + atoms=[0, 1, 2, 3], + dimensions=self.reference.dimensions, + ) + self.results.distances[i][self._frame_index] = distance + self.results.angles[i][self._frame_index] = angle + self.results.dihedrals[i][self._frame_index] = dihedral + self.results.collinear[i][self._frame_index] = collinear + + def _conclude(self): + for i, at in enumerate(self.host_atom_pool): + # Check distances + distance_bounds = all( + self.results.distances[i] > self.minimum_distance + ) + # Check angles + angle_bounds = all( + check_angle_not_flat( + angle=angle * unit.radians, + force_constant=self.angle_force_constant, + temperature=self.temperature + ) + for angle in self.results.angles[i] + ) + angle_variance = check_angular_variance( + self.results.angles[i] * unit.radians, + upper_bound=np.pi * unit.radians, + lower_bound=0 * unit.radians, + width=1.745 * unit.radians, + ) + # Check dihedrals + dihed_bounds = all( + check_dihedral_bounds(dihed * unit.radians) + for dihed in self.results.dihedrals[i] + ) + dihed_variance = check_angular_variance( + self.results.dihedrals[i] * unit.radians, + upper_bound=np.pi * unit.radians, + lower_bound=-np.pi * unit.radians, + width=5.23 * unit.radians, + ) + not_collinear = not all(self.results.collinear[i]) + if all( + [ + distance_bounds, + angle_bounds, + angle_variance, + dihed_bounds, + dihed_variance, + not_collinear, + ] + ): + self.results.valid[i] = True + + +class EvaluateHostAtoms2(EvaluateHostAtoms1): + """ + Class to evaluate the suitability of a set of host atoms + as H2 atoms (i.e. the third host atoms). + + Parameters + ---------- + reference : MDAnalysis.AtomGroup + The reference preceeding three atoms. + host_atom_pool : MDAnalysis.AtomGroup + The pool of atoms to pick an atom from. + minimum_distance : unit.Quantity + The minimum distance from the bound reference atom. + angle_force_constant : unit.Quantity + The force constant for the angle. + temperature : unit.Quantity + The system temperature in Kelvin + """ + def _prepare(self): + self.results.distances1 = np.zeros((len(self.host_atom_pool), self.n_frames)) + self.results.distances2 = np.zeros((len(self.host_atom_pool), self.n_frames)) + self.results.dihedrals = np.zeros((len(self.host_atom_pool), self.n_frames)) + self.results.collinear = np.empty( + (len(self.host_atom_pool), self.n_frames), + dtype=bool, + ) + self.results.valid = np.empty( + len(self.host_atom_pool), + dtype=bool, + ) + # Default to valid == False + self.results.valid[:] = False + + def _single_frame(self): + for i, at in enumerate(self.host_atom_pool): + distance1 = calc_bonds( + at.position, + self.reference.atoms[0].position, + box=self.reference.dimensions, + ) + distance2 = calc_bonds( + at.position, + self.reference.atoms[1].position, + box=self.reference.dimensions, + ) + dihedral = calc_dihedrals( + at.position, + self.reference.atoms[0].position, + self.reference.atoms[1].position, + self.reference.atoms[2].position, + box=self.reference.dimensions, + ) + collinear = is_collinear( + positions=np.vstack((at.position, self.reference.positions)), + atoms=[0, 1, 2, 3], + dimensions=self.reference.dimensions, + ) + self.results.distances1[i][self._frame_index] = distance1 + self.results.distances2[i][self._frame_index] = distance2 + self.results.dihedrals[i][self._frame_index] = dihedral + self.results.collinear[i][self._frame_index] = collinear + + def _conclude(self): + for i, at in enumerate(self.host_atom_pool): + distance1_bounds = all( + self.results.distances1[i] > self.minimum_distance + ) + distance2_bounds = all( + self.results.distances2[i] > self.minimum_distance + ) + dihed_bounds = all( + check_dihedral_bounds(dihed * unit.radians) + for dihed in self.results.dihedrals[i] + ) + dihed_variance = check_angular_variance( + self.results.dihedrals[i] * unit.radians, + upper_bound=np.pi * unit.radians, + lower_bound=-np.pi * unit.radians, + width=5.23 * unit.radians, + ) + not_collinear = not all(self.results.collinear[i]) + if all( + [ + distance1_bounds, + distance2_bounds, + dihed_bounds, + dihed_variance, + not_collinear, + ] + ): + self.results.valid[i] = True + + +def find_host_anchor( + guest_atoms: mda.AtomGroup, + host_atom_pool: mda.AtomGroup, + minimum_distance: unit.Quantity, + angle_force_constant: unit.Quantity, + temperature: unit.Quantity +) -> Optional[list[int]]: + """ + Find suitable atoms for the H0-H1-H2 portion of the restraint. + + Parameters + ---------- + guest_atoms : mda.AtomGroup + The guest anchor atoms for G0-G1-G2 + host_atom_pool : mda.AtomGroup + The host atoms to search from. + minimum_distance : unit.Quantity + The minimum distance to pick host atoms from each other. + angle_force_constant : unit.Quantity + The force constant for the G1-G0-H0 and G0-H0-H1 angles. + temperature : unit.Quantity + The target system temperature. + + Returns + ------- + Optional[list[int]] + A list of indices for a selected combination of H0, H1, and H2. + """ + # Evalulate the host_atom_pool for suitability as H0 atoms + h0_eval = EvaluateHostAtoms1( + guest_atoms, + host_atom_pool, + minimum_distance, + angle_force_constant, + temperature, + ) + h0_eval.run() + + for i, valid_h0 in enumerate(h0_eval.results.valid): + # If valid H0 atom, evaluate rest of host_atom_pool for suitability + # as H1 atoms. + if valid_h0: + h0g0g1_atoms = host_atom_pool.atoms[i] + guest_atoms.atoms[:2] + h1_eval = EvaluateHostAtoms1( + h0g0g1_atoms, + host_atom_pool, + minimum_distance, + angle_force_constant, + temperature, + ) + h1_eval.run() + for j, valid_h1 in enumerate(h1_eval.results.valid): + # If valid H1 atom, evaluate rest of host_atom_pool for + # suitability as H2 atoms + if valid_h1: + h1h0g0_atoms = host_atom_pool.atoms[j] + h0g0g1_atoms.atoms[:2] + h2_eval = EvaluateHostAtoms2( + h1h0g0_atoms, + host_atom_pool, + minimum_distance, + angle_force_constant, + temperature, + ) + h2_eval.run() + + if any(h2_eval.results.valid): + # Get the sum of the average distances (dsum_avgs) + # for all the host_atom_pool atoms + distance1_avgs = np.array( + [d.mean() for d in h2_eval.results.distances1] + ) + distance2_avgs = np.array( + [d.mean() for d in h2_eval.results.distances2] + ) + dsum_avgs = distance1_avgs + distance2_avgs + + # Now filter by validity as H2 atom + h2_dsum_avgs = [ + (idx, val) for idx, val in enumerate(dsum_avgs) + if h2_eval.results.valid[idx] + ] + + # Get the index of the H2 atom with the lowest + # average distance + k = sorted(h2_dsum_avgs, key=lambda x: x[1])[0][0] + + return list(host_atom_pool.atoms[[i, j, k]].ix) + return None diff --git a/openfe/protocols/restraint_utils/geometry/flatbottom.py b/openfe/protocols/restraint_utils/geometry/flatbottom.py new file mode 100644 index 000000000..1f88fbf59 --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/flatbottom.py @@ -0,0 +1,126 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Restraint Geometry classes + +TODO +---- +* Add relevant duecredit entries. +""" +from typing import Optional +import numpy as np +from openff.units import unit +from openff.models.types import FloatQuantity +import MDAnalysis as mda +from MDAnalysis.analysis.base import AnalysisBase +from MDAnalysis.lib.distances import calc_bonds + +from .harmonic import ( + DistanceRestraintGeometry, +) + +from .utils import _get_mda_selection + + +class FlatBottomDistanceGeometry(DistanceRestraintGeometry): + """ + A geometry class for a flat bottom distance restraint between two groups + of atoms. + """ + well_radius: FloatQuantity["nanometer"] + + +class COMDistanceAnalysis(AnalysisBase): + """ + Get a timeseries of COM distances between two AtomGroups + + Parameters + ---------- + group1 : MDAnalysis.AtomGroup + Atoms defining the first centroid. + group2 : MDANalysis.AtomGroup + Atoms defining the second centroid. + """ + _analysis_algorithm_is_parallelizable = False + + def __init__(self, group1, group2, **kwargs): + super().__init__(group1.universe.trajectory, **kwargs) + + self.ag1 = group1 + self.ag2 = group2 + + def _prepare(self): + self.results.distances = np.zeros(self.n_frames) + + def _single_frame(self): + com_dist = calc_bonds( + self.ag1.center_of_mass(), + self.ag2.center_of_mass(), + box=self.ag1.universe.dimensions, + ) + self.results.distances[self._frame_index] = com_dist + + def _conclude(self): + pass + + +def get_flatbottom_distance_restraint( + universe: mda.Universe, + host_atoms: Optional[list[int]] = None, + guest_atoms: Optional[list[int]] = None, + host_selection: Optional[str] = None, + guest_selection: Optional[str] = None, + padding: unit.Quantity = 0.5 * unit.nanometer, +) -> FlatBottomDistanceGeometry: + """ + Get a FlatBottomDistanceGeometry by analyzing the COM distance + change between two sets of atoms. + + The ``well_radius`` is defined as the maximum COM distance plus + ``padding``. + + Parameters + ---------- + universe : mda.Universe + An MDAnalysis Universe defining the system and its coordinates. + host_atoms : Optional[list[int]] + A list of host atoms indices. Either ``host_atoms`` or + ``host_selection`` must be defined. + guest_atoms : Optional[list[int]] + A list of guest atoms indices. Either ``guest_atoms`` or + ``guest_selection`` must be defined. + host_selection : Optional[str] + An MDAnalysis selection string to define the host atoms. + Either ``host_atoms`` or ``host_selection`` must be defined. + guest_selection : Optional[str] + An MDAnalysis selection string to define the guest atoms. + Either ``guest_atoms`` or ``guest_selection`` must be defined. + padding : unit.Quantity + A padding value to add to the ``well_radius`` definition. + Must be in units compatible with nanometers. + + Returns + ------- + FlatBottomDistanceGeometry + An object defining a flat bottom restraint geometry. + """ + guest_ag = _get_mda_selection(universe, guest_atoms, guest_selection) + host_ag = _get_mda_selection(universe, host_atoms, host_selection) + guest_idxs = [a.ix for a in guest_ag] + host_idxs = [a.ix for a in host_ag] + + if len(host_idxs) == 0 or len(guest_idxs) == 0: + errmsg = ( + "no atoms found in either the host or guest atom groups" + f"host_atoms: {host_idxs}" + f"guest_atoms: {guest_idxs}" + ) + raise ValueError(errmsg) + + com_dists = COMDistanceAnalysis(guest_ag, host_ag) + com_dists.run() + + well_radius = com_dists.results.distances.max() * unit.angstrom + padding + return FlatBottomDistanceGeometry( + guest_atoms=guest_idxs, host_atoms=host_idxs, well_radius=well_radius + ) diff --git a/openfe/protocols/restraint_utils/geometry/harmonic.py b/openfe/protocols/restraint_utils/geometry/harmonic.py new file mode 100644 index 000000000..838724deb --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/harmonic.py @@ -0,0 +1,106 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Restraint Geometry classes + +TODO +---- +* Add relevant duecredit entries. +""" +from typing import Optional +import MDAnalysis as mda +from rdkit import Chem + +from .base import HostGuestRestraintGeometry +from .utils import ( + get_central_atom_idx, + _get_mda_selection, +) + + +class DistanceRestraintGeometry(HostGuestRestraintGeometry): + """ + A geometry class for a distance restraint between two groups of atoms. + """ + + +def get_distance_restraint( + universe: mda.Universe, + host_atoms: Optional[list[int]] = None, + guest_atoms: Optional[list[int]] = None, + host_selection: Optional[str] = None, + guest_selection: Optional[str] = None, +) -> DistanceRestraintGeometry: + """ + Get a DistanceRestraintGeometry between two groups of atoms. + + You can either select the groups by passing through a set of indices + or an MDAnalysis selection. + + Parameters + ---------- + universe : mda.Universe + An MDAnalysis Universe defining the system and its coordinates. + host_atoms : Optional[list[int]] + A list of host atoms indices. Either ``host_atoms`` or + ``host_selection`` must be defined. + guest_atoms : Optional[list[int]] + A list of guest atoms indices. Either ``guest_atoms`` or + ``guest_selection`` must be defined. + host_selection : Optional[str] + An MDAnalysis selection string to define the host atoms. + Either ``host_atoms`` or ``host_selection`` must be defined. + guest_selection : Optional[str] + An MDAnalysis selection string to define the guest atoms. + Either ``guest_atoms`` or ``guest_selection`` must be defined. + + Returns + ------- + DistanceRestraintGeometry + An object that defines a distance restraint geometry. + """ + guest_ag = _get_mda_selection(universe, guest_atoms, guest_selection) + guest_atoms = [a.ix for a in guest_ag] + host_ag = _get_mda_selection(universe, host_atoms, host_selection) + host_atoms = [a.ix for a in host_ag] + + return DistanceRestraintGeometry( + guest_atoms=guest_atoms, host_atoms=host_atoms + ) + + +def get_molecule_centers_restraint( + molA_rdmol: Chem.Mol, + molB_rdmol: Chem.Mol, + molA_idxs: list[int], + molB_idxs: list[int], +): + """ + Get a DistanceRestraintGeometry between the central atoms of + two molecules. + + Parameters + ---------- + molA_rdmol : Chem.Mol + An RDKit Molecule for the first molecule. + molB_rdmol : Chem.Mol + An RDKit Molecule for the second molecule. + molA_idxs : list[int] + The indices of the first molecule in the system. Note we assume these + to be sorted in the same order as the input rdmol. + molB_idxs : list[int] + The indices of the second molecule in the system. Note we assume these + to be sorted in the same order as the input rdmol. + + Returns + ------- + DistanceRestraintGeometry + An object that defines a distance restraint geometry. + """ + # We assume that the mol idxs are ordered + centerA = molA_idxs[get_central_atom_idx(molA_rdmol)] + centerB = molB_idxs[get_central_atom_idx(molB_rdmol)] + + return DistanceRestraintGeometry( + guest_atoms=[centerA], host_atoms=[centerB] + ) diff --git a/openfe/protocols/restraint_utils/geometry/utils.py b/openfe/protocols/restraint_utils/geometry/utils.py new file mode 100644 index 000000000..36fec7c0f --- /dev/null +++ b/openfe/protocols/restraint_utils/geometry/utils.py @@ -0,0 +1,720 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Search methods for generating Geometry objects + +TODO +---- +* Add relevant duecredit entries. +""" +from typing import Union, Optional +from itertools import combinations, groupby +import numpy as np +import numpy.typing as npt +from scipy.stats import circvar +import warnings + +from openff.toolkit import Molecule as OFFMol +from openff.units import unit +import networkx as nx +from rdkit import Chem +import MDAnalysis as mda +from MDAnalysis.analysis.base import AnalysisBase +from MDAnalysis.analysis.rms import RMSF +from MDAnalysis.analysis.dssp import DSSP +from MDAnalysis.lib.distances import minimize_vectors, capped_distance +from MDAnalysis.transformations.nojump import NoJump + +from openfe_analysis.transformations import Aligner + + +DEFAULT_ANGLE_FRC_CONSTANT = 83.68 * unit.kilojoule_per_mole / unit.radians**2 + + +def _get_mda_selection( + universe: Union[mda.Universe, mda.AtomGroup], + atom_list: Optional[list[int]] = None, + selection: Optional[str] = None, +) -> mda.AtomGroup: + """ + Return an AtomGroup based on either a list of atom indices or an + mdanalysis string selection. + + Parameters + ---------- + universe : Union[mda.Universe, mda.AtomGroup] + The MDAnalysis Universe or AtomGroup to get the AtomGroup from. + atom_list : Optional[list[int]] + A list of atom indices. + selection : Optional[str] + An MDAnalysis selection string. + + Returns + ------- + ag : mda.AtomGroup + An atom group selected from the inputs. + + Raises + ------ + ValueError + If both ``atom_list`` and ``selection`` are ``None`` + or are defined. + """ + if atom_list is None: + if selection is None: + raise ValueError( + "one of either the atom lists or selections must be defined" + ) + + ag = universe.select_atoms(selection) + else: + if selection is not None: + raise ValueError( + "both atom_list and selection cannot be defined together" + ) + ag = universe.atoms[atom_list] + return ag + + +def get_aromatic_rings(rdmol: Chem.Mol) -> list[tuple[int, ...]]: + """ + Get a list of tuples with the indices for each ring in an rdkit Molecule. + + Parameters + ---------- + rdmol : Chem.Mol + RDKit Molecule + + Returns + ------- + list[tuple[int]] + List of tuples for each ring. + """ + + ringinfo = rdmol.GetRingInfo() + arom_idxs = get_aromatic_atom_idxs(rdmol) + + aromatic_rings = [] + + # Add to the aromatic_rings list if all the atoms in a ring are aromatic + for ring in ringinfo.AtomRings(): + if all(a in arom_idxs for a in ring): + aromatic_rings.append(set(ring)) + + # Reduce the ring list by merging any rings that have colliding atoms + for x, y in combinations(aromatic_rings, 2): + if not x.isdisjoint(y): + x.update(y) + aromatic_rings.remove(y) + + return aromatic_rings + + +def get_aromatic_atom_idxs(rdmol: Chem.Mol) -> list[int]: + """ + Helper method to get aromatic atoms idxs + in a RDKit Molecule + + Parameters + ---------- + rdmol : Chem.Mol + RDKit Molecule + + Returns + ------- + list[int] + A list of the aromatic atom idxs + """ + idxs = [at.GetIdx() for at in rdmol.GetAtoms() if at.GetIsAromatic()] + return idxs + + +def get_heavy_atom_idxs(rdmol: Chem.Mol) -> list[int]: + """ + Get idxs of heavy atoms in an RDKit Molecule + + Parameters + ---------- + rmdol : Chem.Mol + + Returns + ------- + list[int] + A list of heavy atom idxs + """ + idxs = [at.GetIdx() for at in rdmol.GetAtoms() if at.GetAtomicNum() > 1] + return idxs + + +def get_central_atom_idx(rdmol: Chem.Mol) -> int: + """ + Get the central atom in an rdkit Molecule. + + Parameters + ---------- + rdmol : Chem.Mol + RDKit Molcule to query + + Returns + ------- + int + Index of central atom in Molecule + + Note + ---- + If there are equal likelihood centers, will return + the first entry. + """ + # TODO: switch to a manual conversion to avoid an OpenFF dependency + offmol = OFFMol(rdmol, allow_undefined_stereo=True) + nx_mol = offmol.to_networkx() + + if not nx.is_weakly_connected(nx_mol.to_directed()): + errmsg = "A disconnected molecule was passed, cannot find the center" + raise ValueError(errmsg) + + # Get a list of all shortest paths + shortest_paths = [ + path + for node_paths in nx.shortest_path(nx_mol).values() + for path in node_paths.values() + ] + + # Get the longest of these paths (returns first instance) + longest_path = max(shortest_paths, key=len) + + # Return the index of the central atom + return longest_path[len(longest_path) // 2] + + +def is_collinear( + positions: npt.ArrayLike, + atoms: list[int], + dimensions=None, + threshold=0.9 +): + """ + Check whether any sequential vectors in a sequence of atoms are collinear. + + Approach: for each sequential set of 3 atoms (defined as A, B, and C), + calculates the nomralized inner product (i.e. cos^-1(angle)) between + vectors AB adn BC. If the absolute value of this inner product is + close to 1 (i.e. an angle of 0 radians), then the three atoms are + considered as colinear. You can use ``threshold`` to define how close + to 1 is considered "flat". + + Parameters + ---------- + positions : npt.ArrayLike + System positions. + atoms : list[int] + The indices of the atoms to test. + dimensions : Optional[npt.NDArray] + The dimensions of the system to minimize vectors. + threshold : float + Atoms are not collinear if their sequential vector separation dot + products are less than ``threshold``. Default 0.9. + + Returns + ------- + result : bool + Returns True if any sequential pair of vectors is collinear; + False otherwise. + + Notes + ----- + Originally from Yank. + """ + if len(atoms) < 3: + raise ValueError("Too few atoms passed for co-linearity test") + if len(positions) < len(atoms) or len(positions) < max(atoms) + 1: + errmsg = "atoms indices do not match the positions array passed" + raise ValueError(errmsg) + if not all(isinstance(x, int) for x in atoms): + errmsg = "atoms is not a list of index integers" + raise ValueError(errmsg) + + result = False + for i in range(len(atoms) - 2): + v1 = positions[atoms[i + 1], :] - positions[atoms[i], :] + v2 = positions[atoms[i + 2], :] - positions[atoms[i + 1], :] + if dimensions is not None: + v1 = minimize_vectors(v1, box=dimensions) + v2 = minimize_vectors(v2, box=dimensions) + + normalized_inner_product = np.dot(v1, v2) / np.sqrt( + np.dot(v1, v1) * np.dot(v2, v2) + ) + result = result or (np.abs(normalized_inner_product) > threshold) + return result + + +def _wrap_angle(angle: unit.Quantity) -> unit.Quantity: + """ + Wrap an angle to -pi to pi radians. + + Parameters + ---------- + angle : unit.Quantity + An angle in radians compatible units. + + Returns + ------- + unit.Quantity + The angle in units of radians wrapped. + + Notes + ----- + Print automatically converts the angle to radians + as it passes it through arctan2. + """ + return np.arctan2(np.sin(angle), np.cos(angle)) + + +def check_angle_not_flat( + angle: unit.Quantity, + force_constant: unit.Quantity = DEFAULT_ANGLE_FRC_CONSTANT, + temperature: unit.Quantity = 298.15 * unit.kelvin, +) -> bool: + """ + Check whether the chosen angle is less than 10 kT from 0 or pi radians + + Parameters + ---------- + angle : unit.Quantity + The angle to check in units compatible with radians. + force_constant : unit.Quantity + Force constant of the angle in units compatible with + kilojoule_per_mole / radians ** 2. + temperature : unit.Quantity + The system temperature in units compatible with Kelvin. + + Returns + ------- + bool + False if the angle is less than 10 kT from 0 or pi radians + + Note + ---- + We assume the temperature to be 298.15 Kelvin. + + Acknowledgements + ---------------- + This code was initially contributed by Vytautas Gapsys. + """ + # Convert things + angle_rads = _wrap_angle(angle) + frc_const = force_constant.to("unit.kilojoule_per_mole / unit.radians**2") + temp_kelvin = temperature.to("kelvin") + RT = 8.31445985 * 0.001 * temp_kelvin + + # check if angle is <10kT from 0 or 180 + check1 = 0.5 * frc_const * np.power((angle_rads - 0.0), 2) + check2 = 0.5 * frc_const * np.power((angle_rads - np.pi), 2) + ang_check_1 = check1 / RT + ang_check_2 = check2 / RT + if ang_check_1.m < 10.0 or ang_check_2.m < 10.0: + return False + return True + + +def check_dihedral_bounds( + dihedral: unit.Quantity, + lower_cutoff: unit.Quantity = -2.618 * unit.radians, + upper_cutoff: unit.Quantity = 2.618 * unit.radians, +) -> bool: + """ + Check that a dihedral does not exceed the bounds set by + lower_cutoff and upper_cutoff on a -pi to pi range. + + All angles and cutoffs are wrapped to -pi to pi before + applying the check. + + Parameters + ---------- + dihedral : unit.Quantity + Dihedral in units compatible with radians. + lower_cutoff : unit.Quantity + Dihedral lower cutoff in units compatible with radians. + upper_cutoff : unit.Quantity + Dihedral upper cutoff in units compatible with radians. + + Returns + ------- + bool + ``True`` if the dihedral is within the upper and lower + cutoff bounds. + """ + dihed = _wrap_angle(dihedral) + lower = _wrap_angle(lower_cutoff) + upper = _wrap_angle(upper_cutoff) + if (dihed < lower) or (dihed > upper): + return False + return True + + +def check_angular_variance( + angles: unit.Quantity, + upper_bound: unit.Quantity, + lower_bound: unit.Quantity, + width: unit.Quantity, +) -> bool: + """ + Check that the variance of a list of ``angles`` does not exceed + a given ``width`` + + Parameters + ---------- + angles : ArrayLike unit.Quantity + An array of angles in units compatible with radians. + upper_bound: unit.Quantity + The upper bound in the angle range in radians compatible units. + lower_bound: unit.Quantity + The lower bound in the angle range in radians compatible units. + width : unit.Quantity + The width to check the variance against, in units compatible with + radians. + + Returns + ------- + bool + ``True`` if the variance of the angles is less than the width. + + """ + # scipy circ methods already recasts internally so we shouldn't + # need to wrap the angles + variance = circvar( + angles.to("radians").m, + high=upper_bound.to("radians").m, + low=lower_bound.to("radians").m, + ) + return not (variance * unit.radians > width) + + +class FindHostAtoms(AnalysisBase): + """ + Class filter host atoms based on their distance + from a set of guest atoms. + + Parameters + ---------- + host_atoms : MDAnalysis.AtomGroup + Initial selection of host atoms to filter from. + guest_atoms : MDANalysis.AtomGroup + Selection of guest atoms to search around. + min_search_distance: unit.Quantity + Minimum distance to filter atoms within. + max_search_distance: unit.Quantity + Maximum distance to filter atoms within. + """ + _analysis_algorithm_is_parallelizable = False + + def __init__( + self, + host_atoms, + guest_atoms, + min_search_distance, + max_search_distance, + **kwargs, + ): + super().__init__(host_atoms.universe.trajectory, **kwargs) + + def get_atomgroup(ag): + if ag._is_group: + return ag + return mda.AtomGroup([ag]) + + self.host_ag = get_atomgroup(host_atoms) + self.guest_ag = get_atomgroup(guest_atoms) + self.min_cutoff = min_search_distance.to("angstrom").m + self.max_cutoff = max_search_distance.to("angstrom").m + + def _prepare(self): + self.results.host_idxs = set(self.host_ag.atoms.ix) + + def _single_frame(self): + pairs = capped_distance( + reference=self.guest_ag.positions, + configuration=self.host_ag.positions, + max_cutoff=self.max_cutoff, + min_cutoff=self.min_cutoff, + box=self.guest_ag.universe.dimensions, + return_distances=False, + ) + + host_idxs = set(self.host_ag.atoms[p].ix for p in pairs[:, 1]) + + # We do an intersection as we go along to prune atoms that don't pass + # the distance selection criteria + self.results.host_idxs = self.results.host_idxs.intersection( + host_idxs + ) + + def _conclude(self): + self.results.host_idxs = np.array(list(self.results.host_idxs)) + + +def get_local_rmsf(atomgroup: mda.AtomGroup) -> unit.Quantity: + """ + Get the RMSF of an AtomGroup when aligned upon itself. + + Parameters + ---------- + atomgroup : MDAnalysis.AtomGroup + + Return + ------ + rmsf + ArrayQuantity of RMSF values. + """ + # First let's copy our Universe + copy_u = atomgroup.universe.copy() + ag = copy_u.atoms[atomgroup.atoms.ix] + + nojump = NoJump() + align = Aligner(ag) + + copy_u.trajectory.add_transformations(nojump, align) + + rmsf = RMSF(ag) + rmsf.run() + return rmsf.results.rmsf * unit.angstrom + + +def _atomgroup_has_bonds( + atomgroup: Union[mda.AtomGroup, mda.Universe] +) -> bool: + """ + Check if all residues in an AtomGroup or Univese has bonds. + + Parameters + ---------- + atomgroup : Union[mda.Atomgroup, mda.Universe] + Either an MDAnalysis AtomGroup or Universe to check for bonds. + + Returns + ------- + bool + True if all residues contain at least one bond, False otherwise. + """ + if not hasattr(atomgroup, 'bonds'): + return False + + if not all(len(r.atoms.bonds) > 0 for r in atomgroup.residues): + return False + + return True + + +def stable_secondary_structure_selection( + atomgroup: mda.AtomGroup, + trim_chain_start: int = 10, + trim_chain_end: int = 10, + min_structure_size: int = 6, + trim_structure_ends: int = 2, +) -> mda.AtomGroup: + """ + Select all atoms in a given AtomGroup which belong to residues with a + stable secondary structure as defined by Baumann et al.[1] + + The selection algorithm works in the following manner: + 1. Protein residues are selected from the ``atomgroup``. + 2. If there are fewer than 30 protein residues, raise an error. + 3. Split the protein residues by fragment, guessing bonds if necessary. + 4. Discard the first ``trim_chain_start`` and the last + ``trim_chain_end`` residues per fragment. + 5. Run DSSP using the last trajectory frame on the remaining + fragment residues. + 6. Extract all contiguous structure units that are longer than + ``min_structure_size``, removing ``trim_structure_ends`` + residues from each end of the structure. + 7. For all extract structures, if there are more beta-sheet + residues than there are alpha-helix residues, then allow + residues to be selected from either structure type. If not, + then only allow alpha-helix residues. + 8. Select all atoms in the ``atomgroup`` that belong to residues + from extracted structure units of the selected structure type. + + Parameters + ---------- + atomgroup : mda.AtomgGroup + The AtomGroup to select atoms from. + trim_chain_start: int + The number of residues to trim from the start of each + protein chain. Default 10. + trim_chain_end : int + The number of residues to trim from the end of each + protein chain. Default 10. + min_structure_size : int + The minimum number of residues needed in a given + secondary structure unit to be considered stable. Default 8. + trim_structure_ends : int + The number of residues to trim from the end of each + secondary structure units. Default 3. + + Returns + ------- + AtomGroup : mda.AtomGroup + An AtomGroup containing all the atoms from the input AtomGroup + which belong to stable secondary structure residues. + + Raises + ------ + UserWarning + If there are no bonds for the protein atoms in the input + host residue. In this case, the bonds will be guessed + using a simple distance metric. + + Notes + ----- + * This selection algorithm assumes contiguous & ordered residues. + * We recommend always trimming at least one residue at the ends of + each chain using ``trim_chain_start`` and ``trim_chain_end`` to + avoid issues with capping residues. + * DSSP assignement is done on the final frame of the trajectory. + + References + ---------- + [1] Baumann, Hannah M., et al. "Broadening the scope of binding free energy + calculations using a Separated Topologies approach." (2023). + """ + # First let's copy our Universe so we don't overwrite its current state + copy_u = atomgroup.universe.copy() + + # Create an AtomGroup that contains all the protein residues in the + # input Universe - we will filter by what matches in the atomgroup later + copy_protein_ag = copy_u.select_atoms('protein').atoms + + # We need to split by fragments to account for multiple chains + # To do this, we need bonds! + if not _atomgroup_has_bonds(copy_protein_ag): + wmsg = "No bonds found in input Universe, will attept to guess them." + warnings.warn(wmsg) + protein_ag.guess_bonds() + + structures = [] # container for all contiguous secondary structure units + # Counter for each residue type found + structure_residue_counts = {'H': 0, 'E': 0, '-': 0} + # THe minimum length any chain must have + min_chain_length = trim_chain_start + trim_chain_end + min_structure_size + + # Loop over each continually bonded section (i.e. chain) of the protein + for frag in copy_protein_ag.fragments: + # If this fragment is too small, skip processing it + if len(frag.residues) < min_chain_length: + continue + + # Trim the chain ends + chain = frag.residues[trim_chain_start:-trim_chain_end].atoms + + try: + # Run on the last frame + # TODO: maybe filter out any residue that changes secondary + # structure during the trajectory + dssp = DSSP(chain).run(start=-1) + except ValueError: + # DSSP may fail if it doesn't recognise the system's atom names + # or non-canonical residues are included, in this case just skip + continue + + # Tag each residue structure by its resindex + dssp_results = [ + (structure, resid) for structure, resid in + zip(dssp.results.dssp[0], chain.residues.resindices) + ] + + # Group by contiguous secondary structure + for _, group_iter in groupby(dssp_results, lambda x: x[0]): + group = list(group_iter) + if len(group) >= min_structure_size: + structures.append( + group[trim_structure_ends:-trim_structure_ends] + ) + num_residues = len(group) - (2 * trim_structure_ends) + structure_residue_counts[group[0][0]] += num_residues + + # If we have fewer alpha-helix residues than beta-sheet residues + # then we allow picking from beta-sheets too. + allowed_structures = ['H'] + if structure_residue_counts['H'] < structure_residue_counts['E']: + allowed_structures.append('E') + + allowed_residxs = [] + for structure in structures: + if structure[0][0] in allowed_structures: + allowed_residxs.extend([residue[1] for residue in structure]) + + # Resindexes are keyed at the Universe scale not AtomGroup + allowed_atoms = atomgroup.universe.residues[allowed_residxs].atoms + + # Pick up all the atoms that intersect the initial selection and + # those allowed. + return atomgroup.intersection(allowed_atoms) + + +def protein_chain_selection( + atomgroup: mda.AtomGroup, + trim_chain_start: int = 10, + trim_chain_end: int = 10, +) -> mda.AtomGroup: + """ + Return a sub-selection of the input AtomGroup which belongs to protein + chains trimmed by ``trim_chain_start`` and ``trim_chain_end``. + + Protein chains are defined as any continuously bonded part of system with + at least 30 residues which match the ``protein`` selection of MDAnalysis. + + Parameters + ---------- + atomgroup : mda.AtomgGroup + The AtomGroup to select atoms from. + trim_chain_start: int + The number of residues to trim from the start of each + protein chain. Default 10. + trim_chain_end : int + The number of residues to trim from the end of each + protein chain. Default 10. + + Returns + ------- + atomgroup : mda.AtomGroup + An AtomGroup containing all the atoms from the input AtomGroup + which belong to protein chains. + """ + # First let's copy our Universe so we don't overwrite its current state + copy_u = atomgroup.universe.copy() + + # Create an AtomGroup that contains all the protein residues in the + # input Universe - we will filter by what matches in the atomgroup later + copy_protein_ag = copy_u.select_atoms('protein').atoms + + # We need to split by fragments to account for multiple chains + # To do this, we need bonds! + if not _atomgroup_has_bonds(copy_protein_ag): + wmsg = ( + "No bonds found in input Universe, will attept to guess them." + ) + warnings.warn(wmsg) + copy_protein_ag.guess_bonds() + + copy_chains_ags_list = [] + + # Loop over each continually bonded section (i.e. chain) of the protein + for frag in copy_protein_ag.fragments: + # If this chain is less than 30 residues, it's probably a peptide + if len(frag.residues) < 30: + continue + + chain = frag.residues[trim_chain_start:-trim_chain_end].atoms + copy_chains_ags_list.append(chain) + + # Create a single atomgroup from all chains + copy_chains_ag = sum(copy_chains_ags_list) + + # Now get a list of all the chain atoms in the original Universe + # Resindexes are keyed at the Universe scale not AtomGroup + chain_atoms = atomgroup.universe.atoms[copy_chains_ag.atoms.ix] + + # Return all atoms at the intersection of the input atomgroup and + # the chains atomgroup + return atomgroup.intersection(chain_atoms) diff --git a/openfe/protocols/restraint_utils/openmm/__init__.py b/openfe/protocols/restraint_utils/openmm/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openfe/protocols/restraint_utils/openmm/omm_forces.py b/openfe/protocols/restraint_utils/openmm/omm_forces.py new file mode 100644 index 000000000..2947c8e03 --- /dev/null +++ b/openfe/protocols/restraint_utils/openmm/omm_forces.py @@ -0,0 +1,129 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Custom OpenMM Forces + +TODO +---- +* Add relevant duecredit entries. +""" +import numpy as np +import openmm + + +def get_boresch_energy_function( + control_parameter: str, +) -> str: + """ + Return a Boresch-style energy function for a CustomCompoundForce. + + Parameters + ---------- + control_parameter : str + A string for the lambda scaling control parameter + + Returns + ------- + str + The energy function string. + """ + energy_function = ( + f"{control_parameter} * E; " + "E = (K_r/2)*(distance(p3,p4) - r_aA0)^2 " + "+ (K_thetaA/2)*(angle(p2,p3,p4)-theta_A0)^2 + (K_thetaB/2)*(angle(p3,p4,p5)-theta_B0)^2 " + "+ (K_phiA/2)*dphi_A^2 + (K_phiB/2)*dphi_B^2 + (K_phiC/2)*dphi_C^2; " + "dphi_A = dA - floor(dA/(2.0*pi)+0.5)*(2.0*pi); dA = dihedral(p1,p2,p3,p4) - phi_A0; " + "dphi_B = dB - floor(dB/(2.0*pi)+0.5)*(2.0*pi); dB = dihedral(p2,p3,p4,p5) - phi_B0; " + "dphi_C = dC - floor(dC/(2.0*pi)+0.5)*(2.0*pi); dC = dihedral(p3,p4,p5,p6) - phi_C0; " + f"pi = {np.pi}; " + ) + return energy_function + + +def get_periodic_boresch_energy_function( + control_parameter: str, +) -> str: + """ + Return a Boresch-style energy function with a periodic torsion for a + CustomCompoundForce. + + Parameters + ---------- + control_parameter : str + A string for the lambda scaling control parameter + + Returns + ------- + str + The energy function string. + """ + energy_function = ( + f"{control_parameter} * E; " + "E = (K_r/2)*(distance(p3,p4) - r_aA0)^2 " + "+ (K_thetaA/2)*(angle(p2,p3,p4)-theta_A0)^2 + (K_thetaB/2)*(angle(p3,p4,p5)-theta_B0)^2 " + "+ (K_phiA/2)*uphi_A + (K_phiB/2)*uphi_B + (K_phiC/2)*uphi_C; " + "uphi_A = (1-cos(dA)); dA = dihedral(p1,p2,p3,p4) - phi_A0; " + "uphi_B = (1-cos(dB)); dB = dihedral(p2,p3,p4,p5) - phi_B0; " + "uphi_C = (1-cos(dC)); dC = dihedral(p3,p4,p5,p6) - phi_C0; " + f"pi = {np.pi}; " + ) + return energy_function + + +def get_custom_compound_bond_force( + energy_function: str, n_particles: int = 6, +): + """ + Return an OpenMM CustomCompoundForce + + TODO + ---- + Change this to a direct subclass like openmmtools.force. + + Acknowledgements + ---------------- + Boresch-like energy functions are reproduced from `Yank `_ + """ + return openmm.CustomCompoundBondForce(n_particles, energy_function) + + +def add_force_in_separate_group( + system: openmm.System, + force: openmm.Force, +): + """ + Add force to a System in a separate force group. + + Parameters + ---------- + system : openmm.System + System to add the Force to. + force : openmm.Force + The Force to add to the System. + + Raises + ------ + ValueError + If all 32 force groups are occupied. + + + TODO + ---- + Unlike the original Yank implementation, we assume that + all 32 force groups will not be filled. Should this be an issue + we can consider just separating it from NonbondedForce. + + Acknowledgements + ---------------- + Mostly reproduced from `Yank `_. + """ + available_force_groups = set(range(32)) + for existing_force in system.getForces(): + available_force_groups.discard(existing_force.getForceGroup()) + + if len(available_force_groups) == 0: + errmsg = "No available force groups could be found" + raise ValueError(errmsg) + + force.setForceGroup(min(available_force_groups)) + system.addForce(force) diff --git a/openfe/protocols/restraint_utils/openmm/omm_restraints.py b/openfe/protocols/restraint_utils/openmm/omm_restraints.py new file mode 100644 index 000000000..352bbd9bd --- /dev/null +++ b/openfe/protocols/restraint_utils/openmm/omm_restraints.py @@ -0,0 +1,706 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Classes for applying restraints to OpenMM Systems. + +Acknowledgements +---------------- +Many of the classes here are at least in part inspired from +`Yank `_ and +`OpenMMTools `_. + +TODO +---- +* Add relevant duecredit entries. +* Add Periodic Torsion Boresch class +""" +import abc + +import numpy as np +import openmm +from openmm import unit as omm_unit +from openmmtools.forces import ( + HarmonicRestraintForce, + HarmonicRestraintBondForce, + FlatBottomRestraintForce, + FlatBottomRestraintBondForce, +) +from openmmtools.states import GlobalParameterState, ThermodynamicState +from openff.units.openmm import to_openmm, from_openmm +from openff.units import unit + +from gufe.settings.models import SettingsBaseModel + +from openfe.protocols.restraint_utils.geometry import ( + BaseRestraintGeometry, + DistanceRestraintGeometry, + BoreschRestraintGeometry +) + +from openfe.protocols.restraint_utils.settings import ( + DistanceRestraintSettings, + BoreschRestraintSettings, +) + +from .omm_forces import ( + get_custom_compound_bond_force, + add_force_in_separate_group, + get_boresch_energy_function, +) + + +class RestraintParameterState(GlobalParameterState): + """ + Composable state to control `lambda_restraints` OpenMM Force parameters. + + See :class:`openmmtools.states.GlobalParameterState` for more details. + + Parameters + ---------- + parameters_name_suffix : Optional[str] + If specified, the state will control a modified version of the parameter + ``lambda_restraints_{parameters_name_suffix}` instead of just + ``lambda_restraints``. + lambda_restraints : Optional[float] + The scaling parameter for the restraint. If defined, + must be between 0 and 1. In most cases, a value of 1 indicates that the + restraint is fully turned on, whilst a value of 0 indicates that it is + innactive. + + Acknowledgement + --------------- + Partially reproduced from Yank. + """ + # We set the standard system to a fully interacting restraint + lambda_restraints = GlobalParameterState.GlobalParameter( + "lambda_restraints", standard_value=1.0 + ) + + @lambda_restraints.validator + def lambda_restraints(self, instance, new_value): + if new_value is not None and not (0.0 <= new_value <= 1.0): + errmsg = ( + "lambda_restraints must be between 0.0 and 1.0 " + f"and got {new_value}" + ) + raise ValueError(errmsg) + # Not crashing out on None to match upstream behaviour + return new_value + + +class BaseHostGuestRestraints(abc.ABC): + """ + An abstract base class for defining objects that apply a restraint between + two entities (referred to as a Host and a Guest). + + + TODO + ---- + Add some developer examples here. + """ + + def __init__( + self, + restraint_settings: SettingsBaseModel, + ): + self.settings = restraint_settings + self._verify_inputs() + + @abc.abstractmethod + def _verify_inputs(self): + """ + Method for validating that the inputs to the class are correct. + """ + pass + + @abc.abstractmethod + def _verify_geometry(self, geometry): + """ + Method for validating that the geometry object passed is correct. + """ + pass + + @abc.abstractmethod + def add_force( + self, + thermodynamic_state: ThermodynamicState, + geometry: BaseRestraintGeometry, + controlling_parameter_name: str, + ): + """ + Method for in-place adding the Force to the System of a + ThermodynamicState. + + Parameters + ---------- + thermodymamic_state : ThermodynamicState + The ThermodynamicState with a System to inplace modify with the + new force. + geometry : BaseRestraintGeometry + A geometry object defining the restraint parameters. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + """ + pass + + @abc.abstractmethod + def get_standard_state_correction( + self, + thermodynamic_state: ThermodynamicState, + geometry: BaseRestraintGeometry + ) -> unit.Quantity: + """ + Get the standard state correction for the Force when + applied to the input ThermodynamicState. + + Parameters + ---------- + thermodymamic_state : ThermodynamicState + The ThermodynamicState with a System to inplace modify with the + new force. + geometry : BaseRestraintGeometry + A geometry object defining the restraint parameters. + + Returns + ------- + correction : unit.Quantity + The standard state correction free energy in units compatible + with kilojoule per mole. + """ + pass + + @abc.abstractmethod + def _get_force( + self, + geometry: BaseRestraintGeometry, + controlling_parameter_name: str, + ): + """ + Helper method to get the relevant OpenMM Force for this + class, given an input geometry. + """ + pass + + +class SingleBondMixin: + """ + A mixin to extend geometry checks for Forces that can only hold + a single atom. + """ + def _verify_geometry(self, geometry: BaseRestraintGeometry): + if len(geometry.host_atoms) != 1 or len(geometry.guest_atoms) != 1: + errmsg = ( + "host_atoms and guest_atoms must only include a single index " + f"each, got {len(geometry.host_atoms)} and " + f"{len(geometry.guest_atoms)} respectively." + ) + raise ValueError(errmsg) + super()._verify_geometry(geometry) + + +class BaseRadiallySymmetricRestraintForce(BaseHostGuestRestraints): + """ + A base class for all radially symmetic Forces acting between + two sets of atoms. + + Must be subclassed. + """ + def _verify_inputs(self) -> None: + if not isinstance(self.settings, DistanceRestraintSettings): + errmsg = f"Incorrect settings type {self.settings} passed through" + raise ValueError(errmsg) + + def _verify_geometry(self, geometry: DistanceRestraintGeometry): + if not isinstance(geometry, DistanceRestraintGeometry): + errmsg = f"Incorrect geometry class type {geometry} passed through" + raise ValueError(errmsg) + + def add_force( + self, + thermodynamic_state: ThermodynamicState, + geometry: DistanceRestraintGeometry, + controlling_parameter_name: str = "lambda_restraints", + ) -> None: + """ + Method for in-place adding the Force to the System of the + given ThermodynamicState. + + Parameters + ---------- + thermodymamic_state : ThermodynamicState + The ThermodynamicState with a System to inplace modify with the + new force. + geometry : BaseRestraintGeometry + A geometry object defining the restraint parameters. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + """ + self._verify_geometry(geometry) + force = self._get_force(geometry, controlling_parameter_name) + force.setUsesPeriodicBoundaryConditions( + thermodynamic_state.is_periodic + ) + # Note .system is a call to get_system() so it's returning a copy + system = thermodynamic_state.system + add_force_in_separate_group(system, force) + thermodynamic_state.system = system + + def get_standard_state_correction( + self, + thermodynamic_state: ThermodynamicState, + geometry: DistanceRestraintGeometry, + ) -> unit.Quantity: + """ + Get the standard state correction for the Force when + applied to the input ThermodynamicState. + + Parameters + ---------- + thermodymamic_state : ThermodynamicState + The ThermodynamicState with a System to inplace modify with the + new force. + geometry : BaseRestraintGeometry + A geometry object defining the restraint parameters. + + Returns + ------- + correction : unit.Quantity + The standard state correction free energy in units compatible + with kilojoule per mole. + """ + self._verify_geometry(geometry) + force = self._get_force(geometry) + corr = force.compute_standard_state_correction( + thermodynamic_state, volume="system" + ) + dg = corr * thermodynamic_state.kT + return from_openmm(dg).to('kilojoule_per_mole') + + def _get_force( + self, + geometry: DistanceRestraintGeometry, + controlling_parameter_name: str + ): + raise NotImplementedError("only implemented in child classes") + + +class HarmonicBondRestraint( + BaseRadiallySymmetricRestraintForce, SingleBondMixin +): + """ + A class to add a harmonic restraint between two atoms + in an OpenMM system. + + The restraint is defined as a + :class:`openmmtools.forces.HarmonicRestraintBondForce`. + + Notes + ----- + * Settings must contain a ``spring_constant`` for the + Force in units compatible with kilojoule/mole/nm**2. + """ + def _get_force( + self, + geometry: DistanceRestraintGeometry, + controlling_parameter_name: str, + ) -> openmm.Force: + """ + Get the HarmonicRestraintBondForce given an input geometry. + + Parameters + ---------- + geometry : DistanceRestraintGeometry + A geometry class that defines how the Force is applied. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + + Returns + ------- + HarmonicRestraintBondForce + An OpenMM Force that applies a harmonic restraint between + two atoms. + """ + spring_constant = to_openmm( + self.settings.spring_constant + ).value_in_unit_system(omm_unit.md_unit_system) + return HarmonicRestraintBondForce( + spring_constant=spring_constant, + restrained_atom_index1=geometry.host_atoms[0], + restrained_atom_index2=geometry.guest_atoms[0], + controlling_parameter_name=controlling_parameter_name, + ) + + +class FlatBottomBondRestraint( + BaseRadiallySymmetricRestraintForce, SingleBondMixin +): + """ + A class to add a flat bottom restraint between two atoms + in an OpenMM system. + + The restraint is defined as a + :class:`openmmtools.forces.FlatBottomRestraintBondForce`. + + Notes + ----- + * Settings must contain a ``spring_constant`` for the + Force in units compatible with kilojoule/mole/nm**2. + """ + def _get_force( + self, + geometry: DistanceRestraintGeometry, + controlling_parameter_name: str, + ) -> openmm.Force: + """ + Get the FlatBottomRestraintBondForce given an input geometry. + + Parameters + ---------- + geometry : DistanceRestraintGeometry + A geometry class that defines how the Force is applied. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + + Returns + ------- + FlatBottomRestraintBondForce + An OpenMM Force that applies a flat bottom restraint between + two atoms. + """ + spring_constant = to_openmm( + self.settings.spring_constant + ).value_in_unit_system(omm_unit.md_unit_system) + well_radius = to_openmm( + geometry.well_radius + ).value_in_unit_system(omm_unit.md_unit_system) + return FlatBottomRestraintBondForce( + spring_constant=spring_constant, + well_radius=well_radius, + restrained_atom_index1=geometry.host_atoms[0], + restrained_atom_index2=geometry.guest_atoms[0], + controlling_parameter_name=controlling_parameter_name, + ) + + +class CentroidHarmonicRestraint(BaseRadiallySymmetricRestraintForce): + """ + A class to add a harmonic restraint between the centroid of + two sets of atoms in an OpenMM system. + + The restraint is defined as a + :class:`openmmtools.forces.HarmonicRestraintForce`. + + Notes + ----- + * Settings must contain a ``spring_constant`` for the + Force in units compatible with kilojoule/mole/nm**2. + """ + def _get_force( + self, + geometry: DistanceRestraintGeometry, + controlling_parameter_name: str, + ) -> openmm.Force: + """ + Get the HarmonicRestraintForce given an input geometry. + + Parameters + ---------- + geometry : DistanceRestraintGeometry + A geometry class that defines how the Force is applied. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + + Returns + ------- + HarmonicRestraintForce + An OpenMM Force that applies a harmonic restraint between + the centroid of two sets of atoms. + """ + spring_constant = to_openmm( + self.settings.spring_constant + ).value_in_unit_system(omm_unit.md_unit_system) + return HarmonicRestraintForce( + spring_constant=spring_constant, + restrained_atom_index1=geometry.host_atoms, + restrained_atom_index2=geometry.guest_atoms, + controlling_parameter_name=controlling_parameter_name, + ) + + +class CentroidFlatBottomRestraint(BaseRadiallySymmetricRestraintForce): + """ + A class to add a flat bottom restraint between the centroid + of two sets of atoms in an OpenMM system. + + The restraint is defined as a + :class:`openmmtools.forces.FlatBottomRestraintForce`. + + Notes + ----- + * Settings must contain a ``spring_constant`` for the + Force in units compatible with kilojoule/mole/nm**2. + """ + def _get_force( + self, + geometry: DistanceRestraintGeometry, + controlling_parameter_name: str, + ) -> openmm.Force: + """ + Get the FlatBottomRestraintForce given an input geometry. + + Parameters + ---------- + geometry : DistanceRestraintGeometry + A geometry class that defines how the Force is applied. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + + Returns + ------- + FlatBottomRestraintForce + An OpenMM Force that applies a flat bottom restraint between + the centroid of two sets of atoms. + """ + spring_constant = to_openmm( + self.settings.spring_constant + ).value_in_unit_system(omm_unit.md_unit_system) + well_radius = to_openmm( + geometry.well_radius + ).value_in_unit_system(omm_unit.md_unit_system) + return FlatBottomRestraintForce( + spring_constant=spring_constant, + well_radius=well_radius, + restrained_atom_index1=geometry.host_atoms, + restrained_atom_index2=geometry.guest_atoms, + controlling_parameter_name=controlling_parameter_name, + ) + + +class BoreschRestraint(BaseHostGuestRestraints): + """ + A class to add a Boresch-like restraint between six atoms, + + The restraint is defined as a + :class:`openmmtools.forces.CustomCompoundForce` with the + following energy function: + + lambda_control_parameter * E; + E = (K_r/2)*(distance(p3,p4) - r_aA0)^2 + + (K_thetaA/2)*(angle(p2,p3,p4)-theta_A0)^2 + + (K_thetaB/2)*(angle(p3,p4,p5)-theta_B0)^2 + + (K_phiA/2)*dphi_A^2 + (K_phiB/2)*dphi_B^2 + + (K_phiC/2)*dphi_C^2; + dphi_A = dA - floor(dA/(2.0*pi)+0.5)*(2.0*pi); + dA = dihedral(p1,p2,p3,p4) - phi_A0; + dphi_B = dB - floor(dB/(2.0*pi)+0.5)*(2.0*pi); + dB = dihedral(p2,p3,p4,p5) - phi_B0; + dphi_C = dC - floor(dC/(2.0*pi)+0.5)*(2.0*pi); + dC = dihedral(p3,p4,p5,p6) - phi_C0; + + Where p1, p2, p3, p4, p5, p6 represent host atoms 2, 1, 0, + and guest atoms 0, 1, 2 respectively. + + ``lambda_control_parameter`` is a control parameter for + scaling the Force. + + ``K_r`` is defined as the bond spring constant between + p3 and p4 and must be provided in the settings in units + compatible with kilojoule / mole. + + ``r_aA0`` is the equilibrium distance of the bond between + p3 and p4. This must be provided by the Geometry class in + units compatiblle with nanometer. + + ``K_thetaA`` and ``K_thetaB`` are the spring constants for the angles + formed by (p2, p3, p4) and (p3, p4, p5). They must be provided in the + settings in units compatible with kilojoule / mole / radians**2. + + ``theta_A0`` and ``theta_B0`` are the equilibrium values for angles + (p2, p3, p4) and (p3, p4, p5). They must be provided by the + Geometry class in units compatible with radians. + + ``phi_A0``, ``phi_B0``, and ``phi_C0`` are the equilibrium force constants + for the dihedrals formed by (p1, p2, p3, p4), (p2, p3, p4, p5), and + (p3, p4, p5, p6). They must be provided in the settings in units + compatible with kilojoule / mole / radians ** 2. + + ``phi_A0``, ``phi_B0``, and ``phi_C0`` are the equilibrium values + for the dihedrals formed by (p1, p2, p3, p4), (p2, p3, p4, p5), and + (p3, p4, p5, p6). They must be provided in the Geometry class in + units compatible with radians. + + + Notes + ----- + * Settings must define the ``K_r`` (d) + """ + def _verify_inputs(self) -> None: + """ + Method for validating that the geometry object is correct. + """ + if not isinstance(self.settings, BoreschRestraintSettings): + errmsg = f"Incorrect settings type {self.settings} passed through" + raise ValueError(errmsg) + + def _verify_geometry(self, geometry: BoreschRestraintGeometry): + """ + Method for validating that the geometry object is correct. + """ + if not isinstance(geometry, BoreschRestraintGeometry): + errmsg = f"Incorrect geometry class type {geometry} passed through" + raise ValueError(errmsg) + + def add_force( + self, + thermodynamic_state: ThermodynamicState, + geometry: BoreschRestraintGeometry, + controlling_parameter_name: str, + ) -> None: + """ + Method for in-place adding the Boresch CustomCompoundForce + to the System of the given ThermodynamicState. + + Parameters + ---------- + thermodymamic_state : ThermodynamicState + The ThermodynamicState with a System to inplace modify with the + new force. + geometry : BaseRestraintGeometry + A geometry object defining the restraint parameters. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + """ + self._verify_geometry(geometry) + force = self._get_force( + geometry, + controlling_parameter_name, + ) + force.setUsesPeriodicBoundaryConditions( + thermodynamic_state.is_periodic + ) + # Note .system is a call to get_system() so it's returning a copy + system = thermodynamic_state.system + add_force_in_separate_group(system, force) + thermodynamic_state.system = system + + def _get_force( + self, + geometry: BoreschRestraintGeometry, + controlling_parameter_name: str + ) -> openmm.CustomCompoundBondForce: + """ + Get the CustomCompoundForce with a Boresch-like energy function + given an input geometry. + + Parameters + ---------- + geometry : DistanceRestraintGeometry + A geometry class that defines how the Force is applied. + controlling_parameter_name : str + The name of the controlling parameter for the Force. + + Returns + ------- + CustomCompoundForce + An OpenMM CustomCompoundForce that applies a Boresch-like + restraint between 6 atoms. + """ + efunc = get_boresch_energy_function(controlling_parameter_name) + + force = get_custom_compound_bond_force( + energy_function=efunc, n_particles=6, + ) + + param_values = [] + + parameter_dict = { + 'K_r': self.settings.K_r, + 'r_aA0': geometry.r_aA0, + 'K_thetaA': self.settings.K_thetaA, + 'theta_A0': geometry.theta_A0, + 'K_thetaB': self.settings.K_thetaB, + 'theta_B0': geometry.theta_B0, + 'K_phiA': self.settings.K_phiA, + 'phi_A0': geometry.phi_A0, + 'K_phiB': self.settings.K_phiB, + 'phi_B0': geometry.phi_B0, + 'K_phiC': self.settings.K_phiC, + 'phi_C0': geometry.phi_C0, + } + for key, val in parameter_dict.items(): + param_values.append( + to_openmm(val).value_in_unit_system(omm_unit.md_unit_system) + ) + force.addPerBondParameter(key) + + force.addGlobalParameter(controlling_parameter_name, 1.0) + atoms = [ + geometry.host_atoms[2], + geometry.host_atoms[1], + geometry.host_atoms[0], + geometry.guest_atoms[0], + geometry.guest_atoms[1], + geometry.guest_atoms[2], + ] + force.addBond(atoms, param_values) + return force + + def get_standard_state_correction( + self, + thermodynamic_state: ThermodynamicState, + geometry: BoreschRestraintGeometry + ) -> unit.Quantity: + """ + Get the standard state correction for the Boresch-like + restraint when applied to the input ThermodynamicState. + + The correction is calculated using the analytical method + as defined by Boresch et al. [1] + + Parameters + ---------- + thermodymamic_state : ThermodynamicState + The ThermodynamicState with a System to inplace modify with the + new force. + geometry : BaseRestraintGeometry + A geometry object defining the restraint parameters. + + Returns + ------- + correction : unit.Quantity + The standard state correction free energy in units compatible + with kilojoule per mole. + + References + ---------- + [1] Boresch S, Tettinger F, Leitgeb M, Karplus M. J Phys Chem B. 107:9535, 2003. + http://dx.doi.org/10.1021/jp0217839 + """ + self._verify_geometry(geometry) + + StandardV = 1.66053928 * unit.nanometer**3 + kt = from_openmm(thermodynamic_state.kT) + + # distances + r_aA0 = geometry.r_aA0.to('nm') + sin_thetaA0 = np.sin(geometry.theta_A0.to('radians')) + sin_thetaB0 = np.sin(geometry.theta_B0.to('radians')) + + # restraint energies + K_r = self.settings.K_r.to('kilojoule_per_mole / nm ** 2') + K_thetaA = self.settings.K_thetaA.to('kilojoule_per_mole / radians ** 2') + K_thetaB = self.settings.K_thetaB.to('kilojoule_per_mole / radians ** 2') + K_phiA = self.settings.K_phiA.to('kilojoule_per_mole / radians ** 2') + K_phiB = self.settings.K_phiB.to('kilojoule_per_mole / radians ** 2') + K_phiC = self.settings.K_phiC.to('kilojoule_per_mole / radians ** 2') + + numerator1 = 8.0 * (np.pi**2) * StandardV + denum1 = (r_aA0**2) * sin_thetaA0 * sin_thetaB0 + numerator2 = np.sqrt( + K_r * K_thetaA * K_thetaB * K_phiA * K_phiB * K_phiC + ) + denum2 = (2.0 * np.pi * kt)**3 + + dG = -kt * np.log((numerator1/denum1) * (numerator2/denum2)) + + return dG diff --git a/openfe/protocols/restraint_utils/settings.py b/openfe/protocols/restraint_utils/settings.py new file mode 100644 index 000000000..efe9c33f6 --- /dev/null +++ b/openfe/protocols/restraint_utils/settings.py @@ -0,0 +1,150 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Settings for adding restraints. + +TODO +---- +* Rename from host/guest to molA/molB? +""" +from typing import Optional +from openff.models.types import FloatQuantity +from pydantic.v1 import validator +from gufe.settings import ( + SettingsBaseModel, +) + + +class BaseRestraintSettings(SettingsBaseModel): + """ + Base class for RestraintSettings objects. + """ + class Config: + arbitrary_types_allowed = True + + +class DistanceRestraintSettings(BaseRestraintSettings): + """ + Settings defining a distance restraint between + two groups of atoms defined as ``host`` and ``guest``. + """ + spring_constant: FloatQuantity['kilojoule_per_mole / nm ** 2'] + """ + The distance restraint potential spring constant. + """ + host_atoms: Optional[list[int]] = None + """ + The indices of the host component atoms to restrain. + If defined, these will override any automatic selection. + """ + guest_atoms: Optional[list[int]] = None + """ + The indices of the guest component atoms to restraint. + If defined, these will override any automatic selection. + """ + central_atoms_only: bool = False + """ + Whether to apply the restraint solely to the central atoms + of each group. + + Note: this can only be applied if ``host`` and ``guest`` + represent small molecules. + """ + + @validator("guest_atoms", "host_atoms") + def positive_idxs(cls, v): + if v is not None and any([i < 0 for i in v]): + errmsg = "negative indices passed" + raise ValueError(errmsg) + return v + + +class FlatBottomRestraintSettings(DistanceRestraintSettings): + """ + Settings to define a flat bottom restraint between two + groups of atoms named ``host`` and ``guest``. + """ + well_radius: Optional[FloatQuantity['nm']] = None + """ + The distance at which the harmonic restraint is imposed + in units of distance. + """ + @validator("well_radius") + def positive_value(cls, v): + if v is not None and v.m < 0: + errmsg = f"well radius cannot be negative {v}" + raise ValueError(errmsg) + return v + + +class BoreschRestraintSettings(BaseRestraintSettings): + """ + Settings to define a Boresch-style restraint between + two groups of atoms named ``host`` and ``guest``. + + The restraint is defined in the following manner: + + H2 G2 + - - + - - + H1 - - H0 -- G0 - - G1 + + Where HX represents the X index of ``host_atoms`` + and GX the X indexx of ``guest_atoms``. + + By default, the Boresch-like restraint will be + obtained using a modified version of the + search algorithm implemented by Baumann et al. [1]. + + If ``guest_atoms`` and ``host_atoms`` are defined, + these indices will be used instead. + + References + ---------- + [1] Baumann, Hannah M., et al. "Broadening the scope of binding free + energy calculations using a Separated Topologies approach." (2023). + """ + K_r: FloatQuantity['kilojoule_per_mole / nm ** 2'] + """ + The bond spring constant between H0 and G0. + """ + K_thetaA: FloatQuantity['kilojoule_per_mole / radians ** 2'] + """ + The spring constant for the angle formed by H1-H0-G0. + """ + K_thetaB: FloatQuantity['kilojoule_per_mole / radians ** 2'] + """ + The spring constant for the angle formed by H0-G0-G1. + """ + phi_A0: FloatQuantity['kilojoule_per_mole / radians ** 2'] + """ + The equilibrium force constant for the dihedral formed by + H2-H1-H0-G0. + """ + phi_B0: FloatQuantity['kilojoule_per_mole / radians ** 2'] + """ + The equilibrium force constant for the dihedral formed by + H1-H0-G0-G1. + """ + phi_C0: FloatQuantity['kilojoule_per_mole / radians ** 2'] + """ + The equilibrium force constant for the dihedral formed by + H0-G0-G1-G2. + """ + host_atoms: Optional[list[int]] = None + """ + The indices of the host component atoms to restrain. + If defined, these will override any automatic selection. + """ + guest_atoms: Optional[list[int]] = None + """ + The indices of the guest component atoms to restraint. + If defined, these will override any automatic selection. + """ + + @validator("guest_atoms", "host_atoms") + def positive_idxs_list(cls, v): + if v is not None and any([i < 0 for i in v]): + errmsg = "negative indices passed" + raise ValueError(errmsg) + return v \ No newline at end of file diff --git a/openfe/tests/conftest.py b/openfe/tests/conftest.py index 51cfb598b..026b90250 100644 --- a/openfe/tests/conftest.py +++ b/openfe/tests/conftest.py @@ -192,6 +192,28 @@ def benzene_modifications(): return files +@pytest.fixture(scope='session') +def charged_benzene_modifications(): + files = {} + with importlib.resources.files('openfe.tests.data.openmm_rfe') as d: + fn = str(d / 'charged_benzenes.sdf') + supp = Chem.SDMolSupplier(str(fn), removeHs=False) + for rdmol in supp: + files[rdmol.GetProp('_Name')] = SmallMoleculeComponent(rdmol) + return files + + +@pytest.fixture(scope='session') +def bace_ligands(): + files = {} + with importlib.resources.files('openfe.tests.data.openmm_septop') as d: + fn = str(d / 'bace1.sdf') + supp = Chem.SDMolSupplier(str(fn), removeHs=False) + for rdmol in supp: + files[rdmol.GetProp('_Name')] = SmallMoleculeComponent(rdmol) + return files + + @pytest.fixture def serialization_template(): def inner(filename): @@ -222,8 +244,16 @@ def T4_protein_component(): return comp +@pytest.fixture(scope='session') +def bace_protein_component(): + with resources.files('openfe.tests.data.openmm_septop') as d: + fn = str(d / 'bace.pdb') + comp = gufe.ProteinComponent.from_pdb_file(fn, name="BACE") -@pytest.fixture() + return comp + + +@pytest.fixture(scope='session') def eg5_protein_pdb(): with resources.files('openfe.tests.data.eg5') as d: yield str(d / 'eg5_protein.pdb') diff --git a/openfe/tests/data/openmm_septop/SepTopProtocol_json_results.gz b/openfe/tests/data/openmm_septop/SepTopProtocol_json_results.gz new file mode 100644 index 000000000..192a16402 Binary files /dev/null and b/openfe/tests/data/openmm_septop/SepTopProtocol_json_results.gz differ diff --git a/openfe/tests/data/openmm_septop/__init__.py b/openfe/tests/data/openmm_septop/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openfe/tests/data/openmm_septop/bace.pdb b/openfe/tests/data/openmm_septop/bace.pdb new file mode 100644 index 000000000..a032ccc37 --- /dev/null +++ b/openfe/tests/data/openmm_septop/bace.pdb @@ -0,0 +1,6053 @@ +REMARK GENERATED BY TRJCONV +TITLE 6OD6(A)altA +MODEL 1 +ATOM 1 C ACE A -6 -25.006 -74.654 28.933 0.00 99.99 C +ATOM 2 O ACE A -6 -26.174 -74.741 29.237 0.00 99.99 O +ATOM 3 CH3 ACE A -6 -24.203 -75.902 28.655 0.00 99.99 C +ATOM 4 HH31 ACE A -6 -24.845 -76.787 28.778 0.00 20.00 H +ATOM 5 HH32 ACE A -6 -23.819 -75.869 27.625 0.00 20.00 H +ATOM 6 HH33 ACE A -6 -23.360 -75.961 29.359 0.00 20.00 H +ATOM 7 N THR A -5 -24.429 -73.459 28.843 1.00 83.06 N +ATOM 8 CA THR A -5 -25.094 -72.181 29.086 1.00 83.80 C +ATOM 9 C THR A -5 -24.875 -71.228 27.913 1.00 84.73 C +ATOM 10 O THR A -5 -25.648 -70.293 27.711 1.00 85.36 O +ATOM 11 CB THR A -5 -24.597 -71.525 30.391 1.00 83.62 C +ATOM 12 OG1 THR A -5 -23.171 -71.382 30.346 0.00 84.45 O +ATOM 13 CG2 THR A -5 -24.977 -72.388 31.590 0.00 83.91 C +ATOM 14 H THR A -5 -23.462 -73.433 28.589 1.00 20.00 H +ATOM 15 HA THR A -5 -26.175 -72.355 29.186 1.00 20.00 H +ATOM 16 HB THR A -5 -25.074 -70.539 30.495 1.00 20.00 H +ATOM 17 HG1 THR A -5 -22.935 -70.488 30.566 0.00 20.00 H +ATOM 18 HG21 THR A -5 -24.618 -71.911 32.514 0.00 20.00 H +ATOM 19 HG22 THR A -5 -26.071 -72.494 31.633 0.00 20.00 H +ATOM 20 HG23 THR A -5 -24.516 -73.382 31.487 0.00 20.00 H +ATOM 21 N THR A -4 -23.817 -71.467 27.141 1.00 84.55 N +ATOM 22 CA THR A -4 -23.558 -70.739 25.906 1.00 83.51 C +ATOM 23 C THR A -4 -23.330 -71.747 24.787 1.00 79.98 C +ATOM 24 O THR A -4 -23.306 -72.961 25.007 1.00 79.46 O +ATOM 25 CB THR A -4 -22.353 -69.798 26.043 1.00 82.46 C +ATOM 26 OG1 THR A -4 -21.157 -70.573 26.197 1.00 81.80 O +ATOM 27 CG2 THR A -4 -22.515 -68.880 27.249 1.00 81.31 C +ATOM 28 H THR A -4 -23.172 -72.178 27.421 1.00 20.00 H +ATOM 29 HA THR A -4 -24.440 -70.133 25.652 1.00 20.00 H +ATOM 30 HB THR A -4 -22.286 -69.180 25.135 1.00 20.00 H +ATOM 31 HG1 THR A -4 -21.385 -71.467 26.422 1.00 20.00 H +ATOM 32 HG21 THR A -4 -21.641 -68.217 27.326 1.00 20.00 H +ATOM 33 HG22 THR A -4 -23.425 -68.274 27.129 1.00 20.00 H +ATOM 34 HG23 THR A -4 -22.596 -69.487 28.163 1.00 20.00 H +ATOM 35 N GLY A -3 -23.166 -71.240 23.572 1.00 76.78 N +ATOM 36 CA GLY A -3 -22.945 -72.134 22.447 1.00 70.94 C +ATOM 37 C GLY A -3 -22.972 -71.402 21.124 1.00 65.00 C +ATOM 38 O GLY A -3 -22.606 -70.224 21.036 1.00 61.21 O +ATOM 39 H GLY A -3 -23.194 -70.250 23.431 1.00 20.00 H +ATOM 40 HA2 GLY A -3 -21.964 -72.617 22.565 1.00 20.00 H +ATOM 41 HA3 GLY A -3 -23.733 -72.901 22.444 1.00 20.00 H +ATOM 42 N SER A -2 -23.406 -72.124 20.093 1.00 63.67 N +ATOM 43 CA SER A -2 -23.430 -71.623 18.726 1.00 60.31 C +ATOM 44 C SER A -2 -24.873 -71.472 18.272 1.00 58.61 C +ATOM 45 O SER A -2 -25.628 -72.450 18.257 1.00 59.22 O +ATOM 46 CB SER A -2 -22.675 -72.560 17.785 1.00 60.87 C +ATOM 47 OG SER A -2 -22.613 -72.012 16.484 1.00 54.75 O +ATOM 48 H SER A -2 -23.731 -73.054 20.265 1.00 20.00 H +ATOM 49 HA SER A -2 -22.948 -70.635 18.692 1.00 20.00 H +ATOM 50 HB2 SER A -2 -21.653 -72.707 18.164 1.00 20.00 H +ATOM 51 HB3 SER A -2 -23.195 -73.529 17.745 1.00 20.00 H +ATOM 52 HG SER A -2 -23.490 -71.953 16.123 1.00 20.00 H +ATOM 53 N PHE A -1 -25.250 -70.252 17.902 1.00 57.91 N +ATOM 54 CA PHE A -1 -26.577 -69.994 17.361 1.00 59.48 C +ATOM 55 C PHE A -1 -26.422 -69.411 15.968 1.00 59.75 C +ATOM 56 O PHE A -1 -26.699 -68.232 15.732 1.00 59.77 O +ATOM 57 CB PHE A -1 -27.363 -69.067 18.288 1.00 60.22 C +ATOM 58 CG PHE A -1 -27.640 -69.667 19.635 1.00 60.18 C +ATOM 59 CD1 PHE A -1 -26.680 -69.636 20.636 1.00 58.55 C +ATOM 60 CD2 PHE A -1 -28.856 -70.277 19.897 1.00 59.33 C +ATOM 61 CE1 PHE A -1 -26.933 -70.198 21.876 1.00 59.65 C +ATOM 62 CE2 PHE A -1 -29.113 -70.836 21.135 1.00 60.85 C +ATOM 63 CZ PHE A -1 -28.150 -70.797 22.123 1.00 59.87 C +ATOM 64 H PHE A -1 -24.606 -69.493 17.998 1.00 20.00 H +ATOM 65 HA PHE A -1 -27.125 -70.944 17.280 1.00 20.00 H +ATOM 66 HB2 PHE A -1 -26.784 -68.143 18.430 1.00 20.00 H +ATOM 67 HB3 PHE A -1 -28.324 -68.827 17.809 1.00 20.00 H +ATOM 68 HD1 PHE A -1 -25.725 -69.169 20.446 1.00 20.00 H +ATOM 69 HD2 PHE A -1 -29.611 -70.316 19.126 1.00 20.00 H +ATOM 70 HE1 PHE A -1 -26.178 -70.167 22.648 1.00 20.00 H +ATOM 71 HE2 PHE A -1 -30.067 -71.303 21.329 1.00 20.00 H +ATOM 72 HZ PHE A -1 -28.350 -71.236 23.090 1.00 20.00 H +ATOM 73 N VAL A 0 -25.995 -70.265 15.038 1.00 57.00 N +ATOM 74 CA VAL A 0 -25.383 -69.808 13.798 1.00 57.40 C +ATOM 75 C VAL A 0 -26.389 -69.142 12.869 1.00 53.75 C +ATOM 76 O VAL A 0 -26.014 -68.281 12.065 1.00 58.61 O +ATOM 77 CB VAL A 0 -24.663 -70.995 13.123 1.00 60.49 C +ATOM 78 CG1 VAL A 0 -25.667 -71.911 12.419 1.00 58.61 C +ATOM 79 CG2 VAL A 0 -23.588 -70.509 12.172 1.00 65.29 C +ATOM 80 H VAL A 0 -26.098 -71.247 15.196 1.00 20.00 H +ATOM 81 HA VAL A 0 -24.616 -69.060 14.046 1.00 20.00 H +ATOM 82 HB VAL A 0 -24.174 -71.581 13.915 1.00 20.00 H +ATOM 83 HG11 VAL A 0 -25.132 -72.748 11.946 1.00 20.00 H +ATOM 84 HG12 VAL A 0 -26.384 -72.303 13.155 1.00 20.00 H +ATOM 85 HG13 VAL A 0 -26.207 -71.340 11.649 1.00 20.00 H +ATOM 86 HG21 VAL A 0 -23.092 -71.373 11.706 1.00 20.00 H +ATOM 87 HG22 VAL A 0 -24.045 -69.883 11.391 1.00 20.00 H +ATOM 88 HG23 VAL A 0 -22.847 -69.917 12.729 1.00 20.00 H +ATOM 89 N GLU A 1 -27.669 -69.509 12.958 1.00 46.87 N +ATOM 90 CA GLU A 1 -28.667 -68.879 12.097 1.00 46.68 C +ATOM 91 C GLU A 1 -29.004 -67.461 12.522 1.00 46.62 C +ATOM 92 O GLU A 1 -29.515 -66.688 11.704 1.00 50.85 O +ATOM 93 CB GLU A 1 -29.962 -69.690 12.059 1.00 46.55 C +ATOM 94 CG GLU A 1 -29.991 -70.723 10.972 1.00 51.02 C +ATOM 95 CD GLU A 1 -29.171 -71.926 11.343 1.00 53.26 C +ATOM 96 OE1 GLU A 1 -28.378 -72.407 10.507 1.00 50.59 O +ATOM 97 OE2 GLU A 1 -29.324 -72.379 12.493 1.00 51.82 O +ATOM 98 H GLU A 1 -27.944 -70.213 13.612 1.00 20.00 H +ATOM 99 HA GLU A 1 -28.269 -68.837 11.073 1.00 20.00 H +ATOM 100 HB2 GLU A 1 -30.082 -70.200 13.026 1.00 20.00 H +ATOM 101 HB3 GLU A 1 -30.802 -68.997 11.903 1.00 20.00 H +ATOM 102 HG2 GLU A 1 -31.032 -71.037 10.803 1.00 20.00 H +ATOM 103 HG3 GLU A 1 -29.586 -70.284 10.049 1.00 20.00 H +ATOM 104 N MET A 2 -28.750 -67.105 13.776 1.00 40.27 N +ATOM 105 CA MET A 2 -29.115 -65.786 14.264 1.00 36.21 C +ATOM 106 C MET A 2 -27.947 -64.818 14.282 1.00 39.12 C +ATOM 107 O MET A 2 -28.156 -63.620 14.493 1.00 39.42 O +ATOM 108 CB MET A 2 -29.738 -65.909 15.658 1.00 40.69 C +ATOM 109 CG MET A 2 -31.090 -66.608 15.624 1.00 41.21 C +ATOM 110 SD MET A 2 -31.937 -66.770 17.202 1.00 44.04 S +ATOM 111 CE MET A 2 -31.293 -68.329 17.799 1.00 48.68 C +ATOM 112 H MET A 2 -28.302 -67.753 14.392 1.00 20.00 H +ATOM 113 HA MET A 2 -29.883 -65.369 13.596 1.00 20.00 H +ATOM 114 HB2 MET A 2 -29.057 -66.486 16.301 1.00 20.00 H +ATOM 115 HB3 MET A 2 -29.871 -64.901 16.077 1.00 20.00 H +ATOM 116 HG2 MET A 2 -31.745 -66.039 14.948 1.00 20.00 H +ATOM 117 HG3 MET A 2 -30.935 -67.619 15.220 1.00 20.00 H +ATOM 118 HE1 MET A 2 -32.093 -68.886 18.309 1.00 20.00 H +ATOM 119 HE2 MET A 2 -30.919 -68.920 16.950 1.00 20.00 H +ATOM 120 HE3 MET A 2 -30.471 -68.140 18.505 1.00 20.00 H +ATOM 121 N VAL A 3 -26.731 -65.314 14.063 1.00 40.35 N +ATOM 122 CA VAL A 3 -25.581 -64.439 13.892 1.00 39.02 C +ATOM 123 C VAL A 3 -25.802 -63.545 12.682 1.00 40.33 C +ATOM 124 O VAL A 3 -26.155 -64.017 11.593 1.00 44.12 O +ATOM 125 CB VAL A 3 -24.295 -65.269 13.753 1.00 42.69 C +ATOM 126 CG1 VAL A 3 -23.200 -64.454 13.077 1.00 46.48 C +ATOM 127 CG2 VAL A 3 -23.835 -65.764 15.122 1.00 43.17 C +ATOM 128 H VAL A 3 -26.606 -66.305 14.015 1.00 20.00 H +ATOM 129 HA VAL A 3 -25.480 -63.799 14.781 1.00 20.00 H +ATOM 130 HB VAL A 3 -24.516 -66.144 13.124 1.00 20.00 H +ATOM 131 HG11 VAL A 3 -22.290 -65.065 12.987 1.00 20.00 H +ATOM 132 HG12 VAL A 3 -23.536 -64.148 12.075 1.00 20.00 H +ATOM 133 HG13 VAL A 3 -22.983 -63.560 13.680 1.00 20.00 H +ATOM 134 HG21 VAL A 3 -22.915 -66.356 15.008 1.00 20.00 H +ATOM 135 HG22 VAL A 3 -23.638 -64.902 15.776 1.00 20.00 H +ATOM 136 HG23 VAL A 3 -24.621 -66.391 15.568 1.00 20.00 H +ATOM 137 N ASP A 4 -25.629 -62.235 12.886 1.00 40.78 N +ATOM 138 CA ASP A 4 -25.671 -61.233 11.822 1.00 47.34 C +ATOM 139 C ASP A 4 -27.075 -61.053 11.245 1.00 49.19 C +ATOM 140 O ASP A 4 -27.229 -60.766 10.058 1.00 50.30 O +ATOM 141 CB ASP A 4 -24.666 -61.565 10.710 1.00 49.64 C +ATOM 142 CG ASP A 4 -24.356 -60.372 9.835 1.00 53.90 C +ATOM 143 OD1 ASP A 4 -24.051 -59.305 10.401 1.00 56.94 O +ATOM 144 OD2 ASP A 4 -24.426 -60.493 8.594 1.00 58.91 O +ATOM 145 H ASP A 4 -25.461 -61.922 13.821 1.00 20.00 H +ATOM 146 HA ASP A 4 -25.370 -60.267 12.253 1.00 20.00 H +ATOM 147 HB2 ASP A 4 -23.732 -61.916 11.172 1.00 20.00 H +ATOM 148 HB3 ASP A 4 -25.087 -62.364 10.081 1.00 20.00 H +ATOM 149 N ASN A 5 -28.112 -61.194 12.072 1.00 50.26 N +ATOM 150 CA ASN A 5 -29.479 -61.028 11.590 1.00 48.50 C +ATOM 151 C ASN A 5 -30.011 -59.606 11.736 1.00 45.51 C +ATOM 152 O ASN A 5 -31.161 -59.355 11.367 1.00 40.30 O +ATOM 153 CB ASN A 5 -30.431 -62.011 12.298 1.00 39.89 C +ATOM 154 CG ASN A 5 -30.514 -61.789 13.801 1.00 41.70 C +ATOM 155 OD1 ASN A 5 -29.875 -60.893 14.348 1.00 47.34 O +ATOM 156 ND2 ASN A 5 -31.316 -62.609 14.474 1.00 33.76 N +ATOM 157 H ASN A 5 -27.951 -61.416 13.034 1.00 20.00 H +ATOM 158 HA ASN A 5 -29.496 -61.275 10.518 1.00 20.00 H +ATOM 159 HB2 ASN A 5 -31.438 -61.891 11.871 1.00 20.00 H +ATOM 160 HB3 ASN A 5 -30.075 -63.035 12.115 1.00 20.00 H +ATOM 161 HD21 ASN A 5 -31.417 -62.509 15.464 1.00 20.00 H +ATOM 162 HD22 ASN A 5 -31.818 -63.326 13.990 1.00 20.00 H +ATOM 163 N LEU A 6 -29.222 -58.669 12.250 1.00 35.87 N +ATOM 164 CA LEU A 6 -29.687 -57.298 12.414 1.00 39.39 C +ATOM 165 C LEU A 6 -29.063 -56.380 11.369 1.00 47.96 C +ATOM 166 O LEU A 6 -27.891 -56.517 11.013 1.00 51.47 O +ATOM 167 CB LEU A 6 -29.375 -56.758 13.814 1.00 39.00 C +ATOM 168 CG LEU A 6 -29.989 -57.456 15.023 1.00 40.52 C +ATOM 169 CD1 LEU A 6 -29.711 -56.665 16.297 1.00 36.04 C +ATOM 170 CD2 LEU A 6 -31.482 -57.690 14.857 1.00 42.24 C +ATOM 171 H LEU A 6 -28.292 -58.909 12.529 1.00 20.00 H +ATOM 172 HA LEU A 6 -30.778 -57.274 12.278 1.00 20.00 H +ATOM 173 HB2 LEU A 6 -28.283 -56.795 13.939 1.00 20.00 H +ATOM 174 HB3 LEU A 6 -29.712 -55.711 13.839 1.00 20.00 H +ATOM 175 HG LEU A 6 -29.504 -58.438 15.125 1.00 20.00 H +ATOM 176 HD11 LEU A 6 -30.161 -57.183 17.157 1.00 20.00 H +ATOM 177 HD12 LEU A 6 -28.625 -56.582 16.447 1.00 20.00 H +ATOM 178 HD13 LEU A 6 -30.147 -55.659 16.206 1.00 20.00 H +ATOM 179 HD21 LEU A 6 -31.876 -58.194 15.752 1.00 20.00 H +ATOM 180 HD22 LEU A 6 -31.992 -56.724 14.726 1.00 20.00 H +ATOM 181 HD23 LEU A 6 -31.658 -58.321 13.973 1.00 20.00 H +ATOM 182 N ARG A 7 -29.864 -55.433 10.882 1.00 44.44 N +ATOM 183 CA ARG A 7 -29.381 -54.404 9.970 1.00 46.12 C +ATOM 184 C ARG A 7 -29.895 -53.051 10.430 1.00 45.74 C +ATOM 185 O ARG A 7 -30.754 -52.956 11.309 1.00 51.83 O +ATOM 186 CB ARG A 7 -29.818 -54.672 8.522 1.00 49.94 C +ATOM 187 CG ARG A 7 -29.081 -55.816 7.847 1.00 48.18 C +ATOM 188 CD ARG A 7 -27.655 -55.418 7.506 1.00 56.99 C +ATOM 189 NE ARG A 7 -26.883 -56.546 6.989 1.00 64.39 N +ATOM 190 CZ ARG A 7 -26.286 -57.457 7.754 1.00 62.67 C +ATOM 191 NH1 ARG A 7 -25.601 -58.450 7.201 1.00 60.26 N +ATOM 192 NH2 ARG A 7 -26.373 -57.379 9.076 1.00 56.97 N +ATOM 193 H ARG A 7 -30.827 -55.428 11.151 1.00 20.00 H +ATOM 194 HA ARG A 7 -28.281 -54.384 9.998 1.00 20.00 H +ATOM 195 HB2 ARG A 7 -30.892 -54.909 8.525 1.00 20.00 H +ATOM 196 HB3 ARG A 7 -29.645 -53.758 7.936 1.00 20.00 H +ATOM 197 HG2 ARG A 7 -29.061 -56.681 8.526 1.00 20.00 H +ATOM 198 HG3 ARG A 7 -29.610 -56.088 6.922 1.00 20.00 H +ATOM 199 HD2 ARG A 7 -27.680 -54.625 6.744 1.00 20.00 H +ATOM 200 HD3 ARG A 7 -27.165 -55.038 8.415 1.00 20.00 H +ATOM 201 HE ARG A 7 -26.798 -56.639 5.997 1.00 20.00 H +ATOM 202 HH11 ARG A 7 -25.155 -59.133 7.780 1.00 20.00 H +ATOM 203 HH12 ARG A 7 -25.531 -58.515 6.206 1.00 20.00 H +ATOM 204 HH21 ARG A 7 -25.924 -58.066 9.648 1.00 20.00 H +ATOM 205 HH22 ARG A 7 -26.887 -56.634 9.500 1.00 20.00 H +ATOM 206 N GLY A 8 -29.363 -51.995 9.826 1.00 48.16 N +ATOM 207 CA GLY A 8 -29.873 -50.666 10.090 1.00 49.22 C +ATOM 208 C GLY A 8 -29.128 -49.621 9.296 1.00 54.13 C +ATOM 209 O GLY A 8 -28.031 -49.863 8.785 1.00 60.54 O +ATOM 210 H GLY A 8 -28.605 -52.118 9.185 1.00 20.00 H +ATOM 211 HA2 GLY A 8 -30.938 -50.631 9.817 1.00 20.00 H +ATOM 212 HA3 GLY A 8 -29.762 -50.447 11.162 1.00 20.00 H +ATOM 213 N LYS A 9 -29.757 -48.454 9.189 1.00 51.26 N +ATOM 214 CA LYS A 9 -29.100 -47.266 8.674 1.00 55.97 C +ATOM 215 C LYS A 9 -28.494 -46.504 9.843 1.00 58.25 C +ATOM 216 O LYS A 9 -29.074 -46.456 10.933 1.00 61.53 O +ATOM 217 CB LYS A 9 -30.087 -46.377 7.919 1.00 61.77 C +ATOM 218 CG LYS A 9 -30.929 -47.118 6.897 1.00 63.82 C +ATOM 219 CD LYS A 9 -30.115 -47.509 5.675 1.00 66.99 C +ATOM 220 CE LYS A 9 -30.983 -48.224 4.645 1.00 66.46 C +ATOM 221 NZ LYS A 9 -31.496 -49.528 5.154 0.00 63.64 N +ATOM 222 H LYS A 9 -30.714 -48.393 9.473 1.00 20.00 H +ATOM 223 HA LYS A 9 -28.293 -47.558 7.986 1.00 20.00 H +ATOM 224 HB2 LYS A 9 -30.763 -45.911 8.651 1.00 20.00 H +ATOM 225 HB3 LYS A 9 -29.517 -45.595 7.396 1.00 20.00 H +ATOM 226 HG2 LYS A 9 -31.334 -48.029 7.362 1.00 20.00 H +ATOM 227 HG3 LYS A 9 -31.758 -46.468 6.580 1.00 20.00 H +ATOM 228 HD2 LYS A 9 -29.691 -46.602 5.220 1.00 20.00 H +ATOM 229 HD3 LYS A 9 -29.300 -48.179 5.985 1.00 20.00 H +ATOM 230 HE2 LYS A 9 -31.838 -47.580 4.393 1.00 20.00 H +ATOM 231 HE3 LYS A 9 -30.383 -48.407 3.741 1.00 20.00 H +ATOM 232 HZ1 LYS A 9 -31.955 -50.018 4.413 0.00 20.00 H +ATOM 233 HZ2 LYS A 9 -30.732 -50.077 5.494 0.00 20.00 H +ATOM 234 HZ3 LYS A 9 -32.145 -49.364 5.897 0.00 20.00 H +ATOM 235 N SER A 10 -27.315 -45.926 9.615 1.00 61.00 N +ATOM 236 CA SER A 10 -26.605 -45.217 10.672 1.00 62.58 C +ATOM 237 C SER A 10 -27.482 -44.140 11.297 1.00 62.43 C +ATOM 238 O SER A 10 -27.815 -43.143 10.648 1.00 66.54 O +ATOM 239 CB SER A 10 -25.315 -44.601 10.131 1.00 62.08 C +ATOM 240 OG SER A 10 -24.566 -43.992 11.169 0.00 58.48 O +ATOM 241 H SER A 10 -26.910 -45.980 8.702 1.00 20.00 H +ATOM 242 HA SER A 10 -26.333 -45.934 11.460 1.00 20.00 H +ATOM 243 HB2 SER A 10 -24.707 -45.391 9.665 1.00 20.00 H +ATOM 244 HB3 SER A 10 -25.568 -43.841 9.377 1.00 20.00 H +ATOM 245 HG SER A 10 -24.726 -43.056 11.168 0.00 20.00 H +ATOM 246 N GLY A 11 -27.886 -44.355 12.546 1.00 60.61 N +ATOM 247 CA GLY A 11 -28.618 -43.359 13.301 1.00 58.32 C +ATOM 248 C GLY A 11 -30.128 -43.475 13.269 1.00 58.45 C +ATOM 249 O GLY A 11 -30.810 -42.558 13.743 1.00 60.87 O +ATOM 250 H GLY A 11 -27.678 -45.233 12.978 1.00 20.00 H +ATOM 251 HA2 GLY A 11 -28.298 -43.431 14.351 1.00 20.00 H +ATOM 252 HA3 GLY A 11 -28.348 -42.370 12.902 1.00 20.00 H +ATOM 253 N GLN A 12 -30.681 -44.571 12.744 1.00 58.88 N +ATOM 254 CA GLN A 12 -32.121 -44.676 12.565 1.00 55.22 C +ATOM 255 C GLN A 12 -32.744 -45.940 13.141 1.00 57.32 C +ATOM 256 O GLN A 12 -33.975 -46.042 13.152 1.00 64.11 O +ATOM 257 CB GLN A 12 -32.475 -44.562 11.074 1.00 58.43 C +ATOM 258 CG GLN A 12 -32.361 -43.131 10.545 1.00 65.11 C +ATOM 259 CD GLN A 12 -32.628 -43.022 9.061 1.00 75.53 C +ATOM 260 OE1 GLN A 12 -32.649 -44.024 8.350 1.00 80.19 O +ATOM 261 NE2 GLN A 12 -32.837 -41.798 8.582 1.00 76.70 N +ATOM 262 H GLN A 12 -30.095 -45.333 12.469 1.00 20.00 H +ATOM 263 HA GLN A 12 -32.590 -43.821 13.074 1.00 20.00 H +ATOM 264 HB2 GLN A 12 -31.791 -45.204 10.500 1.00 20.00 H +ATOM 265 HB3 GLN A 12 -33.509 -44.908 10.931 1.00 20.00 H +ATOM 266 HG2 GLN A 12 -33.089 -42.502 11.078 1.00 20.00 H +ATOM 267 HG3 GLN A 12 -31.343 -42.764 10.745 1.00 20.00 H +ATOM 268 HE21 GLN A 12 -33.020 -41.667 7.608 1.00 20.00 H +ATOM 269 HE22 GLN A 12 -32.811 -41.009 9.196 1.00 20.00 H +ATOM 270 N GLY A 13 -31.952 -46.889 13.632 1.00 45.93 N +ATOM 271 CA GLY A 13 -32.508 -48.035 14.324 1.00 42.54 C +ATOM 272 C GLY A 13 -32.056 -49.391 13.821 1.00 44.75 C +ATOM 273 O GLY A 13 -31.856 -49.584 12.619 1.00 45.90 O +ATOM 274 H GLY A 13 -30.961 -46.811 13.523 1.00 20.00 H +ATOM 275 HA2 GLY A 13 -32.228 -47.958 15.385 1.00 20.00 H +ATOM 276 HA3 GLY A 13 -33.603 -47.988 14.230 1.00 20.00 H +ATOM 277 N TYR A 14 -31.887 -50.339 14.742 1.00 41.58 N +ATOM 278 CA TYR A 14 -31.529 -51.710 14.404 1.00 41.93 C +ATOM 279 C TYR A 14 -32.797 -52.537 14.239 1.00 39.95 C +ATOM 280 O TYR A 14 -33.649 -52.558 15.130 1.00 43.63 O +ATOM 281 CB TYR A 14 -30.648 -52.326 15.491 1.00 42.83 C +ATOM 282 CG TYR A 14 -29.245 -51.758 15.588 1.00 45.11 C +ATOM 283 CD1 TYR A 14 -28.971 -50.664 16.398 1.00 44.78 C +ATOM 284 CD2 TYR A 14 -28.189 -52.335 14.890 1.00 47.46 C +ATOM 285 CE1 TYR A 14 -27.691 -50.153 16.500 1.00 46.09 C +ATOM 286 CE2 TYR A 14 -26.902 -51.826 14.984 1.00 46.25 C +ATOM 287 CZ TYR A 14 -26.661 -50.734 15.792 1.00 47.24 C +ATOM 288 OH TYR A 14 -25.390 -50.219 15.897 1.00 49.70 O +ATOM 289 H TYR A 14 -32.011 -50.099 15.705 1.00 20.00 H +ATOM 290 HA TYR A 14 -30.974 -51.722 13.454 1.00 20.00 H +ATOM 291 HB2 TYR A 14 -31.145 -52.171 16.460 1.00 20.00 H +ATOM 292 HB3 TYR A 14 -30.565 -53.404 15.290 1.00 20.00 H +ATOM 293 HD1 TYR A 14 -29.772 -50.204 16.958 1.00 20.00 H +ATOM 294 HD2 TYR A 14 -28.375 -53.195 14.264 1.00 20.00 H +ATOM 295 HE1 TYR A 14 -27.498 -49.300 17.133 1.00 20.00 H +ATOM 296 HE2 TYR A 14 -26.095 -52.281 14.429 1.00 20.00 H +ATOM 297 HH TYR A 14 -25.397 -49.475 16.488 1.00 20.00 H +ATOM 298 N TYR A 15 -32.918 -53.228 13.111 1.00 34.45 N +ATOM 299 CA TYR A 15 -34.131 -53.975 12.814 1.00 43.63 C +ATOM 300 C TYR A 15 -33.830 -55.415 12.428 1.00 47.15 C +ATOM 301 O TYR A 15 -32.769 -55.729 11.880 1.00 47.11 O +ATOM 302 CB TYR A 15 -34.956 -53.301 11.705 1.00 39.16 C +ATOM 303 CG TYR A 15 -34.247 -53.062 10.390 1.00 37.22 C +ATOM 304 CD1 TYR A 15 -34.170 -54.060 9.426 1.00 38.79 C +ATOM 305 CD2 TYR A 15 -33.697 -51.822 10.090 1.00 39.69 C +ATOM 306 CE1 TYR A 15 -33.542 -53.835 8.207 1.00 40.59 C +ATOM 307 CE2 TYR A 15 -33.071 -51.590 8.879 1.00 41.48 C +ATOM 308 CZ TYR A 15 -32.996 -52.596 7.942 1.00 43.59 C +ATOM 309 OH TYR A 15 -32.371 -52.362 6.739 1.00 51.63 O +ATOM 310 H TYR A 15 -32.163 -53.235 12.455 1.00 20.00 H +ATOM 311 HA TYR A 15 -34.755 -53.998 13.720 1.00 20.00 H +ATOM 312 HB2 TYR A 15 -35.829 -53.938 11.503 1.00 20.00 H +ATOM 313 HB3 TYR A 15 -35.294 -52.326 12.085 1.00 20.00 H +ATOM 314 HD1 TYR A 15 -34.606 -55.027 9.628 1.00 20.00 H +ATOM 315 HD2 TYR A 15 -33.759 -51.025 10.816 1.00 20.00 H +ATOM 316 HE1 TYR A 15 -33.482 -54.624 7.472 1.00 20.00 H +ATOM 317 HE2 TYR A 15 -32.642 -50.622 8.669 1.00 20.00 H +ATOM 318 HH TYR A 15 -32.869 -52.767 6.039 1.00 20.00 H +ATOM 319 N VAL A 16 -34.796 -56.279 12.720 1.00 45.50 N +ATOM 320 CA VAL A 16 -34.743 -57.694 12.391 1.00 36.27 C +ATOM 321 C VAL A 16 -35.870 -57.994 11.414 1.00 45.56 C +ATOM 322 O VAL A 16 -36.937 -57.373 11.470 1.00 42.95 O +ATOM 323 CB VAL A 16 -34.857 -58.572 13.655 1.00 41.85 C +ATOM 324 CG1 VAL A 16 -36.231 -58.415 14.301 1.00 42.39 C +ATOM 325 CG2 VAL A 16 -34.572 -60.027 13.329 1.00 43.83 C +ATOM 326 H VAL A 16 -35.607 -55.936 13.194 1.00 20.00 H +ATOM 327 HA VAL A 16 -33.785 -57.920 11.900 1.00 20.00 H +ATOM 328 HB VAL A 16 -34.100 -58.227 14.375 1.00 20.00 H +ATOM 329 HG11 VAL A 16 -36.289 -59.049 15.198 1.00 20.00 H +ATOM 330 HG12 VAL A 16 -36.385 -57.363 14.584 1.00 20.00 H +ATOM 331 HG13 VAL A 16 -37.009 -58.720 13.586 1.00 20.00 H +ATOM 332 HG21 VAL A 16 -34.659 -60.632 14.243 1.00 20.00 H +ATOM 333 HG22 VAL A 16 -35.297 -60.384 12.583 1.00 20.00 H +ATOM 334 HG23 VAL A 16 -33.553 -60.119 12.924 1.00 20.00 H +ATOM 335 N GLU A 17 -35.624 -58.929 10.506 1.00 46.71 N +ATOM 336 CA GLU A 17 -36.665 -59.346 9.582 1.00 47.25 C +ATOM 337 C GLU A 17 -37.617 -60.310 10.275 1.00 44.32 C +ATOM 338 O GLU A 17 -37.184 -61.226 10.981 1.00 37.21 O +ATOM 339 CB GLU A 17 -36.052 -59.992 8.339 1.00 46.81 C +ATOM 340 CG GLU A 17 -37.089 -60.483 7.335 1.00 51.91 C +ATOM 341 CD GLU A 17 -36.475 -60.980 6.040 1.00 59.76 C +ATOM 342 OE1 GLU A 17 -36.038 -60.142 5.220 1.00 58.11 O +ATOM 343 OE2 GLU A 17 -36.422 -62.213 5.845 1.00 60.64 O +ATOM 344 H GLU A 17 -34.718 -59.349 10.457 1.00 20.00 H +ATOM 345 HA GLU A 17 -37.239 -58.464 9.263 1.00 20.00 H +ATOM 346 HB2 GLU A 17 -35.410 -59.250 7.842 1.00 20.00 H +ATOM 347 HB3 GLU A 17 -35.442 -60.850 8.658 1.00 20.00 H +ATOM 348 HG2 GLU A 17 -37.656 -61.307 7.792 1.00 20.00 H +ATOM 349 HG3 GLU A 17 -37.772 -59.653 7.103 1.00 20.00 H +ATOM 350 N MET A 18 -38.915 -60.090 10.086 1.00 42.05 N +ATOM 351 CA MET A 18 -39.944 -60.963 10.628 1.00 38.08 C +ATOM 352 C MET A 18 -41.027 -61.156 9.574 1.00 42.70 C +ATOM 353 O MET A 18 -41.151 -60.371 8.632 1.00 43.61 O +ATOM 354 CB MET A 18 -40.567 -60.396 11.922 1.00 38.77 C +ATOM 355 CG MET A 18 -39.574 -59.931 12.988 1.00 39.81 C +ATOM 356 SD MET A 18 -40.371 -59.212 14.441 1.00 44.70 S +ATOM 357 CE MET A 18 -41.076 -60.663 15.226 1.00 43.49 C +ATOM 358 H MET A 18 -39.194 -59.293 9.550 1.00 20.00 H +ATOM 359 HA MET A 18 -39.505 -61.944 10.860 1.00 20.00 H +ATOM 360 HB2 MET A 18 -41.194 -59.535 11.646 1.00 20.00 H +ATOM 361 HB3 MET A 18 -41.196 -61.181 12.366 1.00 20.00 H +ATOM 362 HG2 MET A 18 -38.976 -60.797 13.310 1.00 20.00 H +ATOM 363 HG3 MET A 18 -38.912 -59.174 12.542 1.00 20.00 H +ATOM 364 HE1 MET A 18 -42.060 -60.410 15.649 1.00 20.00 H +ATOM 365 HE2 MET A 18 -41.192 -61.463 14.480 1.00 20.00 H +ATOM 366 HE3 MET A 18 -40.408 -61.006 16.030 1.00 20.00 H +ATOM 367 N THR A 19 -41.798 -62.227 9.727 1.00 43.90 N +ATOM 368 CA THR A 19 -42.965 -62.478 8.893 1.00 46.71 C +ATOM 369 C THR A 19 -44.206 -62.555 9.768 1.00 46.06 C +ATOM 370 O THR A 19 -44.158 -63.084 10.883 1.00 47.91 O +ATOM 371 CB THR A 19 -42.840 -63.778 8.086 1.00 47.17 C +ATOM 372 OG1 THR A 19 -42.938 -64.901 8.969 1.00 48.71 O +ATOM 373 CG2 THR A 19 -41.518 -63.831 7.344 1.00 51.93 C +ATOM 374 H THR A 19 -41.568 -62.886 10.443 1.00 20.00 H +ATOM 375 HA THR A 19 -43.090 -61.645 8.186 1.00 20.00 H +ATOM 376 HB THR A 19 -43.657 -63.810 7.351 1.00 20.00 H +ATOM 377 HG1 THR A 19 -43.763 -64.864 9.439 1.00 20.00 H +ATOM 378 HG21 THR A 19 -41.454 -64.770 6.775 1.00 20.00 H +ATOM 379 HG22 THR A 19 -41.451 -62.978 6.653 1.00 20.00 H +ATOM 380 HG23 THR A 19 -40.690 -63.783 8.066 1.00 20.00 H +ATOM 381 N VAL A 20 -45.309 -62.014 9.257 1.00 46.73 N +ATOM 382 CA VAL A 20 -46.601 -62.061 9.926 1.00 41.74 C +ATOM 383 C VAL A 20 -47.627 -62.617 8.947 1.00 41.09 C +ATOM 384 O VAL A 20 -47.606 -62.290 7.755 1.00 40.35 O +ATOM 385 CB VAL A 20 -47.029 -60.670 10.447 1.00 42.85 C +ATOM 386 CG1 VAL A 20 -45.992 -60.113 11.408 1.00 44.45 C +ATOM 387 CG2 VAL A 20 -47.241 -59.703 9.293 1.00 46.65 C +ATOM 388 H VAL A 20 -45.248 -61.553 8.372 1.00 20.00 H +ATOM 389 HA VAL A 20 -46.539 -62.743 10.787 1.00 20.00 H +ATOM 390 HB VAL A 20 -47.981 -60.783 10.987 1.00 20.00 H +ATOM 391 HG11 VAL A 20 -46.316 -59.125 11.766 1.00 20.00 H +ATOM 392 HG12 VAL A 20 -45.882 -60.795 12.264 1.00 20.00 H +ATOM 393 HG13 VAL A 20 -45.027 -60.017 10.890 1.00 20.00 H +ATOM 394 HG21 VAL A 20 -47.544 -58.722 9.687 1.00 20.00 H +ATOM 395 HG22 VAL A 20 -46.304 -59.597 8.727 1.00 20.00 H +ATOM 396 HG23 VAL A 20 -48.028 -60.091 8.630 1.00 20.00 H +ATOM 397 N GLY A 21 -48.506 -63.482 9.446 1.00 43.40 N +ATOM 398 CA GLY A 21 -49.646 -63.919 8.667 1.00 47.41 C +ATOM 399 C GLY A 21 -49.400 -65.179 7.856 1.00 50.37 C +ATOM 400 O GLY A 21 -48.311 -65.754 7.824 1.00 49.69 O +ATOM 401 H GLY A 21 -48.378 -63.836 10.373 1.00 20.00 H +ATOM 402 HA2 GLY A 21 -50.482 -64.110 9.356 1.00 20.00 H +ATOM 403 HA3 GLY A 21 -49.920 -63.110 7.973 1.00 20.00 H +ATOM 404 N SER A 22 -50.463 -65.602 7.173 1.00 48.77 N +ATOM 405 CA SER A 22 -50.455 -66.803 6.340 1.00 48.89 C +ATOM 406 C SER A 22 -51.149 -66.478 5.028 1.00 51.12 C +ATOM 407 O SER A 22 -52.359 -66.165 5.030 1.00 45.38 O +ATOM 408 CB SER A 22 -51.151 -67.967 7.049 1.00 47.17 C +ATOM 409 OG SER A 22 -50.579 -68.211 8.319 1.00 43.41 O +ATOM 410 H SER A 22 -51.308 -65.071 7.233 1.00 20.00 H +ATOM 411 HA SER A 22 -49.416 -67.094 6.127 1.00 20.00 H +ATOM 412 HB2 SER A 22 -52.216 -67.724 7.176 1.00 20.00 H +ATOM 413 HB3 SER A 22 -51.053 -68.872 6.432 1.00 20.00 H +ATOM 414 HG SER A 22 -51.067 -67.738 8.983 1.00 20.00 H +ATOM 415 N PRO A 23 -50.448 -66.520 3.880 1.00 51.38 N +ATOM 416 CA PRO A 23 -49.014 -66.806 3.737 1.00 42.05 C +ATOM 417 C PRO A 23 -48.153 -65.677 4.330 1.00 47.05 C +ATOM 418 O PRO A 23 -48.698 -64.599 4.577 1.00 51.11 O +ATOM 419 CB PRO A 23 -48.839 -66.932 2.219 1.00 43.56 C +ATOM 420 CG PRO A 23 -49.945 -66.121 1.641 1.00 51.98 C +ATOM 421 CD PRO A 23 -51.100 -66.305 2.577 1.00 52.00 C +ATOM 422 HA PRO A 23 -48.758 -67.760 4.221 1.00 20.00 H +ATOM 423 HB2 PRO A 23 -47.862 -66.534 1.907 1.00 20.00 H +ATOM 424 HB3 PRO A 23 -48.924 -67.983 1.905 1.00 20.00 H +ATOM 425 HG2 PRO A 23 -49.658 -65.061 1.587 1.00 20.00 H +ATOM 426 HG3 PRO A 23 -50.203 -66.483 0.635 1.00 20.00 H +ATOM 427 HD2 PRO A 23 -51.705 -67.178 2.290 1.00 20.00 H +ATOM 428 HD3 PRO A 23 -51.737 -65.409 2.598 1.00 20.00 H +ATOM 429 N PRO A 24 -46.859 -65.913 4.568 1.00 45.47 N +ATOM 430 CA PRO A 24 -46.092 -64.976 5.404 1.00 42.67 C +ATOM 431 C PRO A 24 -45.835 -63.661 4.683 1.00 41.98 C +ATOM 432 O PRO A 24 -45.469 -63.641 3.505 1.00 47.05 O +ATOM 433 CB PRO A 24 -44.781 -65.726 5.682 1.00 43.26 C +ATOM 434 CG PRO A 24 -44.914 -67.078 5.030 1.00 46.20 C +ATOM 435 CD PRO A 24 -45.991 -66.958 4.003 1.00 47.13 C +ATOM 436 HA PRO A 24 -46.617 -64.786 6.352 1.00 20.00 H +ATOM 437 HB2 PRO A 24 -43.931 -65.178 5.250 1.00 20.00 H +ATOM 438 HB3 PRO A 24 -44.631 -65.840 6.766 1.00 20.00 H +ATOM 439 HG2 PRO A 24 -43.965 -67.363 4.552 1.00 20.00 H +ATOM 440 HG3 PRO A 24 -45.188 -67.835 5.780 1.00 20.00 H +ATOM 441 HD2 PRO A 24 -45.580 -66.649 3.031 1.00 20.00 H +ATOM 442 HD3 PRO A 24 -46.536 -67.907 3.886 1.00 20.00 H +ATOM 443 N GLN A 25 -46.034 -62.561 5.403 1.00 43.39 N +ATOM 444 CA GLN A 25 -45.751 -61.219 4.910 1.00 39.88 C +ATOM 445 C GLN A 25 -44.488 -60.709 5.594 1.00 40.48 C +ATOM 446 O GLN A 25 -44.453 -60.577 6.822 1.00 43.60 O +ATOM 447 CB GLN A 25 -46.929 -60.280 5.171 1.00 39.86 C +ATOM 448 CG GLN A 25 -48.212 -60.695 4.466 1.00 37.10 C +ATOM 449 CD GLN A 25 -49.377 -59.777 4.787 1.00 44.95 C +ATOM 450 OE1 GLN A 25 -49.205 -58.569 4.953 1.00 46.99 O +ATOM 451 NE2 GLN A 25 -50.571 -60.349 4.882 1.00 47.32 N +ATOM 452 H GLN A 25 -46.396 -62.660 6.330 1.00 20.00 H +ATOM 453 HA GLN A 25 -45.570 -61.258 3.826 1.00 20.00 H +ATOM 454 HB2 GLN A 25 -47.120 -60.256 6.254 1.00 20.00 H +ATOM 455 HB3 GLN A 25 -46.653 -59.273 4.825 1.00 20.00 H +ATOM 456 HG2 GLN A 25 -48.039 -60.678 3.380 1.00 20.00 H +ATOM 457 HG3 GLN A 25 -48.472 -61.717 4.780 1.00 20.00 H +ATOM 458 HE21 GLN A 25 -51.375 -59.795 5.096 1.00 20.00 H +ATOM 459 HE22 GLN A 25 -50.666 -61.334 4.740 1.00 20.00 H +ATOM 460 N THR A 26 -43.463 -60.416 4.798 1.00 41.48 N +ATOM 461 CA THR A 26 -42.169 -60.004 5.329 1.00 46.76 C +ATOM 462 C THR A 26 -42.179 -58.533 5.724 1.00 47.40 C +ATOM 463 O THR A 26 -42.702 -57.682 4.998 1.00 51.05 O +ATOM 464 CB THR A 26 -41.071 -60.253 4.295 1.00 50.57 C +ATOM 465 OG1 THR A 26 -41.081 -61.633 3.913 1.00 51.99 O +ATOM 466 CG2 THR A 26 -39.702 -59.905 4.862 1.00 47.01 C +ATOM 467 H THR A 26 -43.583 -60.480 3.807 1.00 20.00 H +ATOM 468 HA THR A 26 -41.940 -60.600 6.224 1.00 20.00 H +ATOM 469 HB THR A 26 -41.263 -59.618 3.417 1.00 20.00 H +ATOM 470 HG1 THR A 26 -40.428 -62.106 4.415 1.00 20.00 H +ATOM 471 HG21 THR A 26 -38.931 -60.092 4.100 1.00 20.00 H +ATOM 472 HG22 THR A 26 -39.683 -58.843 5.149 1.00 20.00 H +ATOM 473 HG23 THR A 26 -39.503 -60.528 5.747 1.00 20.00 H +ATOM 474 N LEU A 27 -41.594 -58.238 6.885 1.00 47.39 N +ATOM 475 CA LEU A 27 -41.463 -56.870 7.368 1.00 40.92 C +ATOM 476 C LEU A 27 -40.158 -56.726 8.142 1.00 37.40 C +ATOM 477 O LEU A 27 -39.686 -57.679 8.764 1.00 41.54 O +ATOM 478 CB LEU A 27 -42.636 -56.473 8.272 1.00 39.21 C +ATOM 479 CG LEU A 27 -44.049 -56.434 7.687 1.00 44.81 C +ATOM 480 CD1 LEU A 27 -45.073 -56.271 8.798 1.00 46.77 C +ATOM 481 CD2 LEU A 27 -44.159 -55.308 6.677 1.00 42.46 C +ATOM 482 H LEU A 27 -41.232 -58.983 7.445 1.00 20.00 H +ATOM 483 HA LEU A 27 -41.438 -56.181 6.511 1.00 20.00 H +ATOM 484 HB2 LEU A 27 -42.654 -57.188 9.108 1.00 20.00 H +ATOM 485 HB3 LEU A 27 -42.419 -55.465 8.656 1.00 20.00 H +ATOM 486 HG LEU A 27 -44.239 -57.387 7.172 1.00 20.00 H +ATOM 487 HD11 LEU A 27 -46.084 -56.244 8.365 1.00 20.00 H +ATOM 488 HD12 LEU A 27 -44.995 -57.118 9.495 1.00 20.00 H +ATOM 489 HD13 LEU A 27 -44.881 -55.332 9.339 1.00 20.00 H +ATOM 490 HD21 LEU A 27 -45.177 -55.286 6.261 1.00 20.00 H +ATOM 491 HD22 LEU A 27 -43.945 -54.349 7.172 1.00 20.00 H +ATOM 492 HD23 LEU A 27 -43.435 -55.472 5.865 1.00 20.00 H +ATOM 493 N ASN A 28 -39.584 -55.524 8.103 1.00 40.54 N +ATOM 494 CA ASN A 28 -38.448 -55.157 8.943 1.00 43.60 C +ATOM 495 C ASN A 28 -38.974 -54.498 10.212 1.00 42.61 C +ATOM 496 O ASN A 28 -39.796 -53.576 10.139 1.00 48.29 O +ATOM 497 CB ASN A 28 -37.507 -54.205 8.209 1.00 49.34 C +ATOM 498 CG ASN A 28 -36.673 -54.901 7.155 1.00 48.45 C +ATOM 499 OD1 ASN A 28 -36.405 -56.099 7.245 1.00 40.50 O +ATOM 500 ND2 ASN A 28 -36.245 -54.148 6.155 1.00 54.64 N +ATOM 501 H ASN A 28 -39.948 -54.842 7.469 1.00 20.00 H +ATOM 502 HA ASN A 28 -37.888 -56.062 9.221 1.00 20.00 H +ATOM 503 HB2 ASN A 28 -38.108 -53.423 7.722 1.00 20.00 H +ATOM 504 HB3 ASN A 28 -36.831 -53.743 8.944 1.00 20.00 H +ATOM 505 HD21 ASN A 28 -35.680 -54.549 5.434 1.00 20.00 H +ATOM 506 HD22 ASN A 28 -36.486 -53.178 6.121 1.00 20.00 H +ATOM 507 N ILE A 29 -38.502 -54.963 11.369 1.00 35.38 N +ATOM 508 CA ILE A 29 -39.090 -54.608 12.660 1.00 37.71 C +ATOM 509 C ILE A 29 -37.993 -54.120 13.600 1.00 41.61 C +ATOM 510 O ILE A 29 -37.008 -54.831 13.827 1.00 42.29 O +ATOM 511 CB ILE A 29 -39.836 -55.796 13.288 1.00 35.59 C +ATOM 512 CG1 ILE A 29 -40.949 -56.280 12.361 1.00 39.27 C +ATOM 513 CG2 ILE A 29 -40.448 -55.406 14.598 1.00 35.60 C +ATOM 514 CD1 ILE A 29 -42.011 -55.235 12.129 1.00 31.95 C +ATOM 515 H ILE A 29 -37.715 -55.579 11.353 1.00 20.00 H +ATOM 516 HA ILE A 29 -39.810 -53.789 12.515 1.00 20.00 H +ATOM 517 HB ILE A 29 -39.123 -56.618 13.449 1.00 20.00 H +ATOM 518 HG12 ILE A 29 -40.506 -56.552 11.392 1.00 20.00 H +ATOM 519 HG13 ILE A 29 -41.420 -57.167 12.811 1.00 20.00 H +ATOM 520 HG21 ILE A 29 -40.976 -56.270 15.028 1.00 20.00 H +ATOM 521 HG22 ILE A 29 -39.657 -55.078 15.289 1.00 20.00 H +ATOM 522 HG23 ILE A 29 -41.161 -54.583 14.439 1.00 20.00 H +ATOM 523 HD11 ILE A 29 -42.783 -55.639 11.457 1.00 20.00 H +ATOM 524 HD12 ILE A 29 -42.470 -54.959 13.090 1.00 20.00 H +ATOM 525 HD13 ILE A 29 -41.555 -54.345 11.671 1.00 20.00 H +ATOM 526 N LEU A 30 -38.186 -52.933 14.176 1.00 43.02 N +ATOM 527 CA LEU A 30 -37.185 -52.340 15.056 1.00 42.94 C +ATOM 528 C LEU A 30 -37.052 -53.135 16.352 1.00 48.28 C +ATOM 529 O LEU A 30 -38.050 -53.460 17.002 1.00 48.78 O +ATOM 530 CB LEU A 30 -37.563 -50.890 15.359 1.00 46.19 C +ATOM 531 CG LEU A 30 -36.706 -50.099 16.352 1.00 45.64 C +ATOM 532 CD1 LEU A 30 -35.364 -49.732 15.749 1.00 49.06 C +ATOM 533 CD2 LEU A 30 -37.430 -48.851 16.838 1.00 48.19 C +ATOM 534 H LEU A 30 -39.037 -52.438 14.001 1.00 20.00 H +ATOM 535 HA LEU A 30 -36.210 -52.343 14.547 1.00 20.00 H +ATOM 536 HB2 LEU A 30 -37.541 -50.343 14.405 1.00 20.00 H +ATOM 537 HB3 LEU A 30 -38.590 -50.899 15.753 1.00 20.00 H +ATOM 538 HG LEU A 30 -36.521 -50.744 17.224 1.00 20.00 H +ATOM 539 HD11 LEU A 30 -34.773 -49.166 16.485 1.00 20.00 H +ATOM 540 HD12 LEU A 30 -34.823 -50.649 15.472 1.00 20.00 H +ATOM 541 HD13 LEU A 30 -35.522 -49.114 14.852 1.00 20.00 H +ATOM 542 HD21 LEU A 30 -36.789 -48.307 17.548 1.00 20.00 H +ATOM 543 HD22 LEU A 30 -37.659 -48.202 15.980 1.00 20.00 H +ATOM 544 HD23 LEU A 30 -38.366 -49.141 17.338 1.00 20.00 H +ATOM 545 N VAL A 31 -35.812 -53.438 16.728 1.00 47.83 N +ATOM 546 CA VAL A 31 -35.537 -54.157 17.968 1.00 47.41 C +ATOM 547 C VAL A 31 -35.432 -53.140 19.099 1.00 50.62 C +ATOM 548 O VAL A 31 -34.558 -52.267 19.087 1.00 47.10 O +ATOM 549 CB VAL A 31 -34.258 -54.997 17.852 1.00 52.46 C +ATOM 550 CG1 VAL A 31 -33.956 -55.691 19.178 1.00 50.43 C +ATOM 551 CG2 VAL A 31 -34.399 -56.022 16.732 1.00 48.96 C +ATOM 552 H VAL A 31 -35.047 -53.165 16.145 1.00 20.00 H +ATOM 553 HA VAL A 31 -36.375 -54.834 18.188 1.00 20.00 H +ATOM 554 HB VAL A 31 -33.421 -54.326 17.610 1.00 20.00 H +ATOM 555 HG11 VAL A 31 -33.038 -56.288 19.079 1.00 20.00 H +ATOM 556 HG12 VAL A 31 -33.818 -54.935 19.965 1.00 20.00 H +ATOM 557 HG13 VAL A 31 -34.795 -56.350 19.446 1.00 20.00 H +ATOM 558 HG21 VAL A 31 -33.476 -56.617 16.660 1.00 20.00 H +ATOM 559 HG22 VAL A 31 -35.248 -56.687 16.949 1.00 20.00 H +ATOM 560 HG23 VAL A 31 -34.575 -55.502 15.779 1.00 20.00 H +ATOM 561 N ASP A 32 -36.312 -53.265 20.090 1.00 41.43 N +ATOM 562 CA ASP A 32 -36.560 -52.177 21.033 1.00 43.78 C +ATOM 563 C ASP A 32 -36.770 -52.745 22.434 1.00 41.56 C +ATOM 564 O ASP A 32 -37.857 -53.236 22.752 1.00 41.48 O +ATOM 565 CB ASP A 32 -37.766 -51.366 20.576 1.00 41.62 C +ATOM 566 CG ASP A 32 -38.013 -50.148 21.437 1.00 43.73 C +ATOM 567 OD1 ASP A 32 -39.138 -49.600 21.385 1.00 39.77 O +ATOM 568 OD2 ASP A 32 -37.086 -49.736 22.161 1.00 42.88 O +ATOM 569 H ASP A 32 -36.815 -54.123 20.191 1.00 20.00 H +ATOM 570 HA ASP A 32 -35.684 -51.512 21.057 1.00 20.00 H +ATOM 571 HB2 ASP A 32 -37.596 -51.036 19.541 1.00 20.00 H +ATOM 572 HB3 ASP A 32 -38.657 -52.010 20.614 1.00 20.00 H +ATOM 573 N THR A 33 -35.738 -52.652 23.276 1.00 40.38 N +ATOM 574 CA THR A 33 -35.851 -53.101 24.657 1.00 37.44 C +ATOM 575 C THR A 33 -36.516 -52.076 25.560 1.00 35.86 C +ATOM 576 O THR A 33 -36.688 -52.348 26.752 1.00 42.13 O +ATOM 577 CB THR A 33 -34.475 -53.449 25.226 1.00 41.31 C +ATOM 578 OG1 THR A 33 -33.651 -52.278 25.256 1.00 43.03 O +ATOM 579 CG2 THR A 33 -33.808 -54.521 24.379 1.00 45.17 C +ATOM 580 H THR A 33 -34.873 -52.268 22.953 1.00 20.00 H +ATOM 581 HA THR A 33 -36.462 -54.015 24.679 1.00 20.00 H +ATOM 582 HB THR A 33 -34.607 -53.839 26.246 1.00 20.00 H +ATOM 583 HG1 THR A 33 -33.506 -52.015 26.157 1.00 20.00 H +ATOM 584 HG21 THR A 33 -32.820 -54.760 24.800 1.00 20.00 H +ATOM 585 HG22 THR A 33 -34.433 -55.426 24.374 1.00 20.00 H +ATOM 586 HG23 THR A 33 -33.688 -54.153 23.350 1.00 20.00 H +ATOM 587 N GLY A 34 -36.896 -50.918 25.030 1.00 39.53 N +ATOM 588 CA GLY A 34 -37.516 -49.891 25.841 1.00 39.42 C +ATOM 589 C GLY A 34 -39.019 -49.783 25.682 1.00 43.53 C +ATOM 590 O GLY A 34 -39.620 -48.792 26.103 1.00 42.99 O +ATOM 591 H GLY A 34 -36.751 -50.753 24.054 1.00 20.00 H +ATOM 592 HA2 GLY A 34 -37.298 -50.109 26.897 1.00 20.00 H +ATOM 593 HA3 GLY A 34 -37.072 -48.923 25.567 1.00 20.00 H +ATOM 594 N SER A 35 -39.641 -50.788 25.073 1.00 49.58 N +ATOM 595 CA SER A 35 -41.090 -50.805 24.924 1.00 47.91 C +ATOM 596 C SER A 35 -41.556 -52.250 24.924 1.00 45.10 C +ATOM 597 O SER A 35 -40.748 -53.177 24.971 1.00 38.15 O +ATOM 598 CB SER A 35 -41.531 -50.074 23.652 1.00 46.02 C +ATOM 599 OG SER A 35 -41.161 -50.794 22.490 1.00 45.29 O +ATOM 600 H SER A 35 -39.103 -51.548 24.709 1.00 20.00 H +ATOM 601 HA SER A 35 -41.546 -50.296 25.786 1.00 20.00 H +ATOM 602 HB2 SER A 35 -42.625 -49.956 23.667 1.00 20.00 H +ATOM 603 HB3 SER A 35 -41.056 -49.082 23.626 1.00 20.00 H +ATOM 604 HG SER A 35 -40.467 -50.330 22.037 1.00 20.00 H +ATOM 605 N SER A 36 -42.878 -52.440 24.848 1.00 44.22 N +ATOM 606 CA SER A 36 -43.429 -53.774 25.049 1.00 44.43 C +ATOM 607 C SER A 36 -44.540 -54.156 24.076 1.00 39.36 C +ATOM 608 O SER A 36 -45.210 -55.169 24.302 1.00 39.95 O +ATOM 609 CB SER A 36 -43.953 -53.905 26.478 1.00 53.70 C +ATOM 610 OG SER A 36 -42.914 -53.684 27.413 1.00 64.91 O +ATOM 611 H SER A 36 -43.486 -51.670 24.654 1.00 20.00 H +ATOM 612 HA SER A 36 -42.617 -54.506 24.927 1.00 20.00 H +ATOM 613 HB2 SER A 36 -44.749 -53.163 26.640 1.00 20.00 H +ATOM 614 HB3 SER A 36 -44.360 -54.917 26.622 1.00 20.00 H +ATOM 615 HG SER A 36 -43.159 -54.054 28.253 1.00 20.00 H +ATOM 616 N ASN A 37 -44.768 -53.393 23.016 1.00 43.70 N +ATOM 617 CA ASN A 37 -45.759 -53.752 22.014 1.00 53.01 C +ATOM 618 C ASN A 37 -45.085 -54.243 20.741 1.00 52.18 C +ATOM 619 O ASN A 37 -44.004 -53.779 20.369 1.00 47.18 O +ATOM 620 CB ASN A 37 -46.676 -52.569 21.683 1.00 51.12 C +ATOM 621 CG ASN A 37 -47.680 -52.281 22.787 1.00 53.13 C +ATOM 622 OD1 ASN A 37 -47.477 -51.391 23.610 1.00 46.34 O +ATOM 623 ND2 ASN A 37 -48.777 -53.034 22.803 1.00 55.04 N +ATOM 624 H ASN A 37 -44.245 -52.548 22.903 1.00 20.00 H +ATOM 625 HA ASN A 37 -46.385 -54.567 22.406 1.00 20.00 H +ATOM 626 HB2 ASN A 37 -46.055 -51.674 21.529 1.00 20.00 H +ATOM 627 HB3 ASN A 37 -47.225 -52.797 20.758 1.00 20.00 H +ATOM 628 HD21 ASN A 37 -49.475 -52.886 23.503 1.00 20.00 H +ATOM 629 HD22 ASN A 37 -48.903 -53.748 22.115 1.00 20.00 H +ATOM 630 N PHE A 38 -45.727 -55.212 20.093 1.00 44.94 N +ATOM 631 CA PHE A 38 -45.399 -55.597 18.724 1.00 39.68 C +ATOM 632 C PHE A 38 -46.354 -54.805 17.842 1.00 45.82 C +ATOM 633 O PHE A 38 -47.532 -55.145 17.716 1.00 46.07 O +ATOM 634 CB PHE A 38 -45.529 -57.102 18.511 1.00 36.37 C +ATOM 635 CG PHE A 38 -45.125 -57.568 17.133 1.00 40.65 C +ATOM 636 CD1 PHE A 38 -44.059 -56.984 16.464 1.00 43.60 C +ATOM 637 CD2 PHE A 38 -45.799 -58.615 16.522 1.00 45.44 C +ATOM 638 CE1 PHE A 38 -43.687 -57.422 15.202 1.00 41.27 C +ATOM 639 CE2 PHE A 38 -45.429 -59.057 15.263 1.00 44.06 C +ATOM 640 CZ PHE A 38 -44.375 -58.461 14.603 1.00 45.20 C +ATOM 641 H PHE A 38 -46.465 -55.696 20.563 1.00 20.00 H +ATOM 642 HA PHE A 38 -44.367 -55.294 18.491 1.00 20.00 H +ATOM 643 HB2 PHE A 38 -44.891 -57.611 19.248 1.00 20.00 H +ATOM 644 HB3 PHE A 38 -46.579 -57.385 18.677 1.00 20.00 H +ATOM 645 HD1 PHE A 38 -43.512 -56.179 16.932 1.00 20.00 H +ATOM 646 HD2 PHE A 38 -46.622 -59.091 17.034 1.00 20.00 H +ATOM 647 HE1 PHE A 38 -42.861 -56.952 14.688 1.00 20.00 H +ATOM 648 HE2 PHE A 38 -45.967 -59.870 14.797 1.00 20.00 H +ATOM 649 HZ PHE A 38 -44.088 -58.805 13.620 1.00 20.00 H +ATOM 650 N ALA A 39 -45.856 -53.714 17.276 1.00 49.04 N +ATOM 651 CA ALA A 39 -46.662 -52.804 16.478 1.00 46.44 C +ATOM 652 C ALA A 39 -46.094 -52.758 15.070 1.00 45.99 C +ATOM 653 O ALA A 39 -44.885 -52.577 14.892 1.00 40.11 O +ATOM 654 CB ALA A 39 -46.692 -51.404 17.094 1.00 48.93 C +ATOM 655 H ALA A 39 -44.886 -53.508 17.403 1.00 20.00 H +ATOM 656 HA ALA A 39 -47.694 -53.181 16.426 1.00 20.00 H +ATOM 657 HB1 ALA A 39 -47.308 -50.741 16.469 1.00 20.00 H +ATOM 658 HB2 ALA A 39 -47.121 -51.458 18.105 1.00 20.00 H +ATOM 659 HB3 ALA A 39 -45.668 -51.007 17.151 1.00 20.00 H +ATOM 660 N VAL A 40 -46.960 -52.945 14.078 1.00 41.76 N +ATOM 661 CA VAL A 40 -46.550 -53.001 12.682 1.00 42.25 C +ATOM 662 C VAL A 40 -47.444 -52.074 11.870 1.00 48.15 C +ATOM 663 O VAL A 40 -48.653 -51.990 12.120 1.00 44.86 O +ATOM 664 CB VAL A 40 -46.601 -54.442 12.127 1.00 39.27 C +ATOM 665 CG1 VAL A 40 -45.778 -55.385 12.996 1.00 38.07 C +ATOM 666 CG2 VAL A 40 -48.034 -54.945 12.011 1.00 43.77 C +ATOM 667 H VAL A 40 -47.929 -53.051 14.299 1.00 20.00 H +ATOM 668 HA VAL A 40 -45.514 -52.641 12.597 1.00 20.00 H +ATOM 669 HB VAL A 40 -46.159 -54.432 11.120 1.00 20.00 H +ATOM 670 HG11 VAL A 40 -45.829 -56.403 12.583 1.00 20.00 H +ATOM 671 HG12 VAL A 40 -44.731 -55.048 13.013 1.00 20.00 H +ATOM 672 HG13 VAL A 40 -46.180 -55.384 14.020 1.00 20.00 H +ATOM 673 HG21 VAL A 40 -48.032 -55.971 11.614 1.00 20.00 H +ATOM 674 HG22 VAL A 40 -48.507 -54.937 13.004 1.00 20.00 H +ATOM 675 HG23 VAL A 40 -48.599 -54.290 11.331 1.00 20.00 H +ATOM 676 N GLY A 41 -46.847 -51.367 10.912 1.00 48.56 N +ATOM 677 CA GLY A 41 -47.617 -50.570 9.981 1.00 48.14 C +ATOM 678 C GLY A 41 -48.602 -51.445 9.234 1.00 44.20 C +ATOM 679 O GLY A 41 -48.236 -52.518 8.743 1.00 42.66 O +ATOM 680 H GLY A 41 -45.850 -51.387 10.835 1.00 20.00 H +ATOM 681 HA2 GLY A 41 -48.167 -49.795 10.535 1.00 20.00 H +ATOM 682 HA3 GLY A 41 -46.936 -50.093 9.261 1.00 20.00 H +ATOM 683 N ALA A 42 -49.864 -51.015 9.158 1.00 46.37 N +ATOM 684 CA ALA A 42 -50.880 -51.849 8.528 1.00 43.25 C +ATOM 685 C ALA A 42 -51.815 -51.032 7.643 1.00 47.30 C +ATOM 686 O ALA A 42 -52.943 -51.464 7.373 1.00 47.38 O +ATOM 687 CB ALA A 42 -51.676 -52.618 9.581 1.00 41.40 C +ATOM 688 H ALA A 42 -50.112 -50.122 9.533 1.00 20.00 H +ATOM 689 HA ALA A 42 -50.376 -52.588 7.887 1.00 20.00 H +ATOM 690 HB1 ALA A 42 -52.436 -53.240 9.085 1.00 20.00 H +ATOM 691 HB2 ALA A 42 -50.995 -53.261 10.158 1.00 20.00 H +ATOM 692 HB3 ALA A 42 -52.170 -51.906 10.259 1.00 20.00 H +ATOM 693 N ALA A 43 -51.371 -49.864 7.203 1.00 49.99 N +ATOM 694 CA ALA A 43 -52.081 -49.028 6.247 1.00 51.17 C +ATOM 695 C ALA A 43 -51.038 -48.187 5.528 1.00 53.39 C +ATOM 696 O ALA A 43 -49.929 -48.009 6.037 1.00 54.15 O +ATOM 697 CB ALA A 43 -53.119 -48.139 6.941 1.00 52.02 C +ATOM 698 H ALA A 43 -50.492 -49.536 7.550 1.00 20.00 H +ATOM 699 HA ALA A 43 -52.596 -49.662 5.510 1.00 20.00 H +ATOM 700 HB1 ALA A 43 -53.635 -47.522 6.190 1.00 20.00 H +ATOM 701 HB2 ALA A 43 -53.852 -48.771 7.463 1.00 20.00 H +ATOM 702 HB3 ALA A 43 -52.614 -47.486 7.668 1.00 20.00 H +ATOM 703 N PRO A 44 -51.350 -47.690 4.330 1.00 52.34 N +ATOM 704 CA PRO A 44 -50.343 -46.928 3.580 1.00 51.35 C +ATOM 705 C PRO A 44 -49.851 -45.709 4.347 1.00 51.77 C +ATOM 706 O PRO A 44 -50.550 -45.146 5.192 1.00 50.75 O +ATOM 707 CB PRO A 44 -51.086 -46.526 2.301 1.00 50.36 C +ATOM 708 CG PRO A 44 -52.127 -47.584 2.133 1.00 49.06 C +ATOM 709 CD PRO A 44 -52.553 -47.953 3.524 1.00 52.37 C +ATOM 710 HA PRO A 44 -49.489 -47.572 3.322 1.00 20.00 H +ATOM 711 HB2 PRO A 44 -51.551 -45.536 2.415 1.00 20.00 H +ATOM 712 HB3 PRO A 44 -50.401 -46.512 1.440 1.00 20.00 H +ATOM 713 HG2 PRO A 44 -52.981 -47.195 1.560 1.00 20.00 H +ATOM 714 HG3 PRO A 44 -51.706 -48.458 1.615 1.00 20.00 H +ATOM 715 HD2 PRO A 44 -53.394 -47.327 3.857 1.00 20.00 H +ATOM 716 HD3 PRO A 44 -52.840 -49.014 3.579 1.00 20.00 H +ATOM 717 N HIS A 45 -48.611 -45.316 4.042 1.00 54.81 N +ATOM 718 CA HIS A 45 -47.939 -44.185 4.662 1.00 52.12 C +ATOM 719 C HIS A 45 -46.787 -43.824 3.742 1.00 53.83 C +ATOM 720 O HIS A 45 -46.141 -44.734 3.205 1.00 57.40 O +ATOM 721 CB HIS A 45 -47.423 -44.522 6.068 1.00 51.35 C +ATOM 722 CG HIS A 45 -46.993 -43.327 6.863 1.00 55.62 C +ATOM 723 ND1 HIS A 45 -45.739 -42.765 6.747 1.00 56.03 N +ATOM 724 CD2 HIS A 45 -47.648 -42.594 7.794 1.00 55.97 C +ATOM 725 CE1 HIS A 45 -45.644 -41.734 7.568 1.00 56.26 C +ATOM 726 NE2 HIS A 45 -46.788 -41.610 8.216 1.00 56.64 N +ATOM 727 H HIS A 45 -48.114 -45.832 3.344 1.00 20.00 H +ATOM 728 HA HIS A 45 -48.627 -43.330 4.730 1.00 20.00 H +ATOM 729 HB2 HIS A 45 -48.227 -45.032 6.618 1.00 20.00 H +ATOM 730 HB3 HIS A 45 -46.561 -45.198 5.967 1.00 20.00 H +ATOM 731 HD2 HIS A 45 -48.659 -42.753 8.140 1.00 20.00 H +ATOM 732 HE1 HIS A 45 -44.778 -41.100 7.689 1.00 20.00 H +ATOM 733 HE2 HIS A 45 -46.994 -40.913 8.903 1.00 20.00 H +ATOM 734 N PRO A 46 -46.511 -42.538 3.525 1.00 56.03 N +ATOM 735 CA PRO A 46 -45.452 -42.169 2.567 1.00 55.60 C +ATOM 736 C PRO A 46 -44.086 -42.747 2.896 1.00 51.95 C +ATOM 737 O PRO A 46 -43.277 -42.944 1.981 1.00 54.91 O +ATOM 738 CB PRO A 46 -45.444 -40.633 2.627 1.00 58.61 C +ATOM 739 CG PRO A 46 -46.203 -40.272 3.877 1.00 58.30 C +ATOM 740 CD PRO A 46 -47.204 -41.361 4.069 1.00 55.22 C +ATOM 741 HA PRO A 46 -45.742 -42.484 1.554 1.00 20.00 H +ATOM 742 HB2 PRO A 46 -44.412 -40.256 2.682 1.00 20.00 H +ATOM 743 HB3 PRO A 46 -45.941 -40.212 1.741 1.00 20.00 H +ATOM 744 HG2 PRO A 46 -45.521 -40.221 4.739 1.00 20.00 H +ATOM 745 HG3 PRO A 46 -46.709 -39.303 3.752 1.00 20.00 H +ATOM 746 HD2 PRO A 46 -47.442 -41.498 5.134 1.00 20.00 H +ATOM 747 HD3 PRO A 46 -48.129 -41.152 3.511 1.00 20.00 H +ATOM 748 N PHE A 47 -43.800 -43.035 4.162 1.00 48.71 N +ATOM 749 CA PHE A 47 -42.495 -43.574 4.525 1.00 56.18 C +ATOM 750 C PHE A 47 -42.455 -45.097 4.542 1.00 56.99 C +ATOM 751 O PHE A 47 -41.368 -45.670 4.682 1.00 56.30 O +ATOM 752 CB PHE A 47 -42.061 -43.046 5.894 1.00 54.65 C +ATOM 753 CG PHE A 47 -42.007 -41.546 5.983 1.00 53.81 C +ATOM 754 CD1 PHE A 47 -41.821 -40.763 4.851 1.00 49.17 C +ATOM 755 CD2 PHE A 47 -42.145 -40.918 7.209 1.00 57.50 C +ATOM 756 CE1 PHE A 47 -41.776 -39.382 4.945 1.00 48.24 C +ATOM 757 CE2 PHE A 47 -42.100 -39.539 7.307 1.00 57.74 C +ATOM 758 CZ PHE A 47 -41.914 -38.772 6.177 1.00 53.95 C +ATOM 759 H PHE A 47 -44.487 -42.880 4.872 1.00 20.00 H +ATOM 760 HA PHE A 47 -41.757 -43.229 3.786 1.00 20.00 H +ATOM 761 HB2 PHE A 47 -42.774 -43.412 6.648 1.00 20.00 H +ATOM 762 HB3 PHE A 47 -41.059 -43.442 6.115 1.00 20.00 H +ATOM 763 HD1 PHE A 47 -41.710 -41.236 3.887 1.00 20.00 H +ATOM 764 HD2 PHE A 47 -42.290 -41.512 8.099 1.00 20.00 H +ATOM 765 HE1 PHE A 47 -41.633 -38.783 4.057 1.00 20.00 H +ATOM 766 HE2 PHE A 47 -42.211 -39.063 8.270 1.00 20.00 H +ATOM 767 HZ PHE A 47 -41.876 -37.695 6.254 1.00 20.00 H +ATOM 768 N LEU A 48 -43.601 -45.762 4.410 1.00 50.30 N +ATOM 769 CA LEU A 48 -43.674 -47.219 4.401 1.00 50.90 C +ATOM 770 C LEU A 48 -43.800 -47.707 2.963 1.00 56.48 C +ATOM 771 O LEU A 48 -44.709 -47.286 2.239 1.00 60.84 O +ATOM 772 CB LEU A 48 -44.863 -47.721 5.221 1.00 47.26 C +ATOM 773 CG LEU A 48 -44.996 -47.413 6.711 1.00 51.19 C +ATOM 774 CD1 LEU A 48 -46.285 -48.024 7.241 1.00 50.94 C +ATOM 775 CD2 LEU A 48 -43.799 -47.933 7.490 1.00 49.26 C +ATOM 776 H LEU A 48 -44.448 -45.240 4.313 1.00 20.00 H +ATOM 777 HA LEU A 48 -42.751 -47.634 4.833 1.00 20.00 H +ATOM 778 HB2 LEU A 48 -45.765 -47.315 4.739 1.00 20.00 H +ATOM 779 HB3 LEU A 48 -44.861 -48.817 5.130 1.00 20.00 H +ATOM 780 HG LEU A 48 -45.049 -46.322 6.838 1.00 20.00 H +ATOM 781 HD11 LEU A 48 -46.382 -47.803 8.314 1.00 20.00 H +ATOM 782 HD12 LEU A 48 -47.142 -47.597 6.700 1.00 20.00 H +ATOM 783 HD13 LEU A 48 -46.263 -49.114 7.092 1.00 20.00 H +ATOM 784 HD21 LEU A 48 -43.924 -47.696 8.557 1.00 20.00 H +ATOM 785 HD22 LEU A 48 -43.724 -49.023 7.363 1.00 20.00 H +ATOM 786 HD23 LEU A 48 -42.882 -47.456 7.114 1.00 20.00 H +ATOM 787 N HIS A 49 -42.899 -48.600 2.553 1.00 50.95 N +ATOM 788 CA HIS A 49 -42.996 -49.219 1.238 1.00 55.68 C +ATOM 789 C HIS A 49 -43.656 -50.592 1.276 1.00 56.10 C +ATOM 790 O HIS A 49 -43.866 -51.193 0.216 1.00 55.15 O +ATOM 791 CB HIS A 49 -41.610 -49.316 0.594 1.00 63.36 C +ATOM 792 CG HIS A 49 -41.079 -47.998 0.121 1.00 65.93 C +ATOM 793 ND1 HIS A 49 -39.844 -47.514 0.495 1.00 66.16 N +ATOM 794 CD2 HIS A 49 -41.620 -47.060 -0.693 1.00 65.98 C +ATOM 795 CE1 HIS A 49 -39.647 -46.335 -0.068 1.00 65.95 C +ATOM 796 NE2 HIS A 49 -40.709 -46.037 -0.794 1.00 67.72 N +ATOM 797 H HIS A 49 -42.143 -48.849 3.159 1.00 20.00 H +ATOM 798 HA HIS A 49 -43.613 -48.573 0.596 1.00 20.00 H +ATOM 799 HB2 HIS A 49 -40.910 -49.728 1.335 1.00 20.00 H +ATOM 800 HB3 HIS A 49 -41.673 -49.996 -0.268 1.00 20.00 H +ATOM 801 HD1 HIS A 49 -39.198 -47.982 1.098 1.00 20.00 H +ATOM 802 HD2 HIS A 49 -42.586 -47.108 -1.173 1.00 20.00 H +ATOM 803 HE1 HIS A 49 -38.767 -45.720 0.046 1.00 20.00 H +ATOM 804 N ARG A 50 -43.984 -51.092 2.465 1.00 55.45 N +ATOM 805 CA ARG A 50 -44.830 -52.264 2.624 1.00 51.05 C +ATOM 806 C ARG A 50 -45.474 -52.190 3.999 1.00 45.98 C +ATOM 807 O ARG A 50 -45.005 -51.470 4.884 1.00 46.89 O +ATOM 808 CB ARG A 50 -44.042 -53.569 2.442 1.00 50.97 C +ATOM 809 CG ARG A 50 -42.815 -53.690 3.326 1.00 49.37 C +ATOM 810 CD ARG A 50 -41.992 -54.919 2.967 1.00 49.29 C +ATOM 811 NE ARG A 50 -40.767 -54.999 3.759 1.00 51.05 N +ATOM 812 CZ ARG A 50 -39.822 -55.920 3.590 1.00 50.98 C +ATOM 813 NH1 ARG A 50 -39.958 -56.848 2.651 1.00 46.60 N +ATOM 814 NH2 ARG A 50 -38.740 -55.911 4.359 1.00 50.20 N +ATOM 815 H ARG A 50 -43.633 -50.641 3.286 1.00 20.00 H +ATOM 816 HA ARG A 50 -45.628 -52.238 1.867 1.00 20.00 H +ATOM 817 HB2 ARG A 50 -44.713 -54.410 2.669 1.00 20.00 H +ATOM 818 HB3 ARG A 50 -43.717 -53.631 1.393 1.00 20.00 H +ATOM 819 HG2 ARG A 50 -42.192 -52.792 3.199 1.00 20.00 H +ATOM 820 HG3 ARG A 50 -43.136 -53.768 4.375 1.00 20.00 H +ATOM 821 HD2 ARG A 50 -42.596 -55.819 3.153 1.00 20.00 H +ATOM 822 HD3 ARG A 50 -41.725 -54.870 1.901 1.00 20.00 H +ATOM 823 HE ARG A 50 -40.630 -54.316 4.476 1.00 20.00 H +ATOM 824 HH11 ARG A 50 -39.246 -57.539 2.524 1.00 20.00 H +ATOM 825 HH12 ARG A 50 -40.772 -56.856 2.071 1.00 20.00 H +ATOM 826 HH21 ARG A 50 -38.029 -56.603 4.230 1.00 20.00 H +ATOM 827 HH22 ARG A 50 -38.636 -55.213 5.067 1.00 20.00 H +ATOM 828 N TYR A 51 -46.567 -52.928 4.168 1.00 43.33 N +ATOM 829 CA TYR A 51 -47.274 -52.913 5.441 1.00 44.71 C +ATOM 830 C TYR A 51 -48.071 -54.200 5.600 1.00 44.00 C +ATOM 831 O TYR A 51 -48.228 -54.981 4.658 1.00 44.98 O +ATOM 832 CB TYR A 51 -48.178 -51.677 5.572 1.00 50.00 C +ATOM 833 CG TYR A 51 -49.232 -51.535 4.496 1.00 50.47 C +ATOM 834 CD1 TYR A 51 -50.497 -52.079 4.663 1.00 53.72 C +ATOM 835 CD2 TYR A 51 -48.970 -50.841 3.322 1.00 50.88 C +ATOM 836 CE1 TYR A 51 -51.467 -51.949 3.688 1.00 52.55 C +ATOM 837 CE2 TYR A 51 -49.938 -50.704 2.339 1.00 52.11 C +ATOM 838 CZ TYR A 51 -51.184 -51.262 2.529 1.00 55.97 C +ATOM 839 OH TYR A 51 -52.151 -51.131 1.557 1.00 63.72 O +ATOM 840 H TYR A 51 -46.905 -53.496 3.418 1.00 20.00 H +ATOM 841 HA TYR A 51 -46.534 -52.873 6.254 1.00 20.00 H +ATOM 842 HB2 TYR A 51 -48.689 -51.730 6.545 1.00 20.00 H +ATOM 843 HB3 TYR A 51 -47.538 -50.783 5.543 1.00 20.00 H +ATOM 844 HD1 TYR A 51 -50.728 -52.614 5.572 1.00 20.00 H +ATOM 845 HD2 TYR A 51 -47.995 -50.400 3.172 1.00 20.00 H +ATOM 846 HE1 TYR A 51 -52.444 -52.385 3.835 1.00 20.00 H +ATOM 847 HE2 TYR A 51 -49.717 -50.164 1.430 1.00 20.00 H +ATOM 848 HH TYR A 51 -51.738 -51.085 0.703 1.00 20.00 H +ATOM 849 N TYR A 52 -48.563 -54.406 6.818 1.00 41.58 N +ATOM 850 CA TYR A 52 -49.293 -55.615 7.177 1.00 40.77 C +ATOM 851 C TYR A 52 -50.707 -55.545 6.615 1.00 44.10 C +ATOM 852 O TYR A 52 -51.491 -54.666 6.992 1.00 44.30 O +ATOM 853 CB TYR A 52 -49.305 -55.752 8.698 1.00 40.87 C +ATOM 854 CG TYR A 52 -50.098 -56.899 9.291 1.00 38.16 C +ATOM 855 CD1 TYR A 52 -50.202 -58.122 8.648 1.00 38.35 C +ATOM 856 CD2 TYR A 52 -50.723 -56.754 10.522 1.00 40.71 C +ATOM 857 CE1 TYR A 52 -50.920 -59.167 9.214 1.00 43.05 C +ATOM 858 CE2 TYR A 52 -51.437 -57.787 11.091 1.00 41.57 C +ATOM 859 CZ TYR A 52 -51.537 -58.991 10.434 1.00 43.42 C +ATOM 860 OH TYR A 52 -52.253 -60.017 11.004 1.00 48.10 O +ATOM 861 H TYR A 52 -48.426 -53.703 7.516 1.00 20.00 H +ATOM 862 HA TYR A 52 -48.786 -56.492 6.749 1.00 20.00 H +ATOM 863 HB2 TYR A 52 -48.262 -55.868 9.027 1.00 20.00 H +ATOM 864 HB3 TYR A 52 -49.717 -54.819 9.110 1.00 20.00 H +ATOM 865 HD1 TYR A 52 -49.718 -58.264 7.693 1.00 20.00 H +ATOM 866 HD2 TYR A 52 -50.648 -55.812 11.045 1.00 20.00 H +ATOM 867 HE1 TYR A 52 -50.995 -60.114 8.700 1.00 20.00 H +ATOM 868 HE2 TYR A 52 -51.916 -57.651 12.049 1.00 20.00 H +ATOM 869 HH TYR A 52 -52.229 -60.776 10.433 1.00 20.00 H +ATOM 870 N GLN A 53 -51.035 -56.458 5.709 1.00 44.13 N +ATOM 871 CA GLN A 53 -52.357 -56.496 5.083 1.00 44.18 C +ATOM 872 C GLN A 53 -53.148 -57.634 5.718 1.00 44.00 C +ATOM 873 O GLN A 53 -52.996 -58.799 5.342 1.00 44.25 O +ATOM 874 CB GLN A 53 -52.241 -56.661 3.573 1.00 45.25 C +ATOM 875 CG GLN A 53 -51.624 -55.467 2.860 1.00 47.48 C +ATOM 876 CD GLN A 53 -51.635 -55.635 1.357 1.00 54.28 C +ATOM 877 OE1 GLN A 53 -52.494 -55.089 0.666 1.00 63.76 O +ATOM 878 NE2 GLN A 53 -50.686 -56.405 0.842 1.00 54.67 N +ATOM 879 H GLN A 53 -50.356 -57.143 5.445 1.00 20.00 H +ATOM 880 HA GLN A 53 -52.882 -55.551 5.290 1.00 20.00 H +ATOM 881 HB2 GLN A 53 -51.618 -57.544 3.369 1.00 20.00 H +ATOM 882 HB3 GLN A 53 -53.250 -56.823 3.165 1.00 20.00 H +ATOM 883 HG2 GLN A 53 -52.196 -54.564 3.120 1.00 20.00 H +ATOM 884 HG3 GLN A 53 -50.583 -55.352 3.197 1.00 20.00 H +ATOM 885 HE21 GLN A 53 -50.649 -56.561 -0.145 1.00 20.00 H +ATOM 886 HE22 GLN A 53 -50.007 -56.830 1.441 1.00 20.00 H +ATOM 887 N ARG A 54 -53.997 -57.289 6.688 1.00 44.18 N +ATOM 888 CA ARG A 54 -54.701 -58.310 7.455 1.00 43.28 C +ATOM 889 C ARG A 54 -55.684 -59.096 6.600 1.00 43.22 C +ATOM 890 O ARG A 54 -55.939 -60.272 6.879 1.00 40.41 O +ATOM 891 CB ARG A 54 -55.422 -57.665 8.635 1.00 46.36 C +ATOM 892 CG ARG A 54 -54.485 -57.095 9.685 1.00 51.02 C +ATOM 893 CD ARG A 54 -55.194 -56.096 10.582 1.00 46.57 C +ATOM 894 NE ARG A 54 -55.442 -54.828 9.903 1.00 47.95 N +ATOM 895 CZ ARG A 54 -56.206 -53.856 10.391 1.00 49.01 C +ATOM 896 NH1 ARG A 54 -56.805 -54.006 11.564 1.00 44.30 N +ATOM 897 NH2 ARG A 54 -56.376 -52.735 9.703 1.00 48.89 N +ATOM 898 H ARG A 54 -54.152 -56.322 6.891 1.00 20.00 H +ATOM 899 HA ARG A 54 -53.963 -59.019 7.858 1.00 20.00 H +ATOM 900 HB2 ARG A 54 -56.053 -56.849 8.253 1.00 20.00 H +ATOM 901 HB3 ARG A 54 -56.057 -58.426 9.112 1.00 20.00 H +ATOM 902 HG2 ARG A 54 -54.098 -57.918 10.303 1.00 20.00 H +ATOM 903 HG3 ARG A 54 -53.648 -56.591 9.181 1.00 20.00 H +ATOM 904 HD2 ARG A 54 -56.157 -56.524 10.898 1.00 20.00 H +ATOM 905 HD3 ARG A 54 -54.569 -55.908 11.467 1.00 20.00 H +ATOM 906 HE ARG A 54 -55.009 -54.681 9.014 1.00 20.00 H +ATOM 907 HH11 ARG A 54 -57.383 -53.275 11.927 1.00 20.00 H +ATOM 908 HH12 ARG A 54 -56.679 -54.850 12.085 1.00 20.00 H +ATOM 909 HH21 ARG A 54 -56.954 -52.006 10.069 1.00 20.00 H +ATOM 910 HH22 ARG A 54 -55.926 -52.618 8.818 1.00 20.00 H +ATOM 911 N GLN A 55 -56.234 -58.483 5.551 1.00 41.42 N +ATOM 912 CA GLN A 55 -57.235 -59.185 4.757 1.00 47.46 C +ATOM 913 C GLN A 55 -56.630 -60.294 3.904 1.00 49.21 C +ATOM 914 O GLN A 55 -57.374 -61.137 3.393 1.00 42.64 O +ATOM 915 CB GLN A 55 -58.001 -58.201 3.869 1.00 47.87 C +ATOM 916 CG GLN A 55 -57.247 -57.750 2.633 1.00 52.01 C +ATOM 917 CD GLN A 55 -56.247 -56.649 2.918 1.00 55.22 C +ATOM 918 OE1 GLN A 55 -55.920 -56.365 4.073 1.00 55.85 O +ATOM 919 NE2 GLN A 55 -55.755 -56.019 1.861 1.00 52.26 N +ATOM 920 H GLN A 55 -55.962 -57.551 5.311 1.00 20.00 H +ATOM 921 HA GLN A 55 -57.960 -59.649 5.441 1.00 20.00 H +ATOM 922 HB2 GLN A 55 -58.934 -58.686 3.545 1.00 20.00 H +ATOM 923 HB3 GLN A 55 -58.240 -57.311 4.469 1.00 20.00 H +ATOM 924 HG2 GLN A 55 -56.708 -58.614 2.217 1.00 20.00 H +ATOM 925 HG3 GLN A 55 -57.974 -57.381 1.895 1.00 20.00 H +ATOM 926 HE21 GLN A 55 -55.091 -55.281 1.983 1.00 20.00 H +ATOM 927 HE22 GLN A 55 -56.048 -56.281 0.942 1.00 20.00 H +ATOM 928 N LEU A 56 -55.310 -60.316 3.740 1.00 47.97 N +ATOM 929 CA LEU A 56 -54.642 -61.370 2.988 1.00 47.08 C +ATOM 930 C LEU A 56 -54.132 -62.503 3.868 1.00 50.69 C +ATOM 931 O LEU A 56 -53.494 -63.426 3.353 1.00 52.73 O +ATOM 932 CB LEU A 56 -53.468 -60.799 2.185 1.00 45.72 C +ATOM 933 CG LEU A 56 -53.724 -59.713 1.141 1.00 47.51 C +ATOM 934 CD1 LEU A 56 -52.466 -59.480 0.317 1.00 49.76 C +ATOM 935 CD2 LEU A 56 -54.896 -60.084 0.248 1.00 51.97 C +ATOM 936 H LEU A 56 -54.759 -59.586 4.146 1.00 20.00 H +ATOM 937 HA LEU A 56 -55.359 -61.798 2.272 1.00 20.00 H +ATOM 938 HB2 LEU A 56 -52.757 -60.381 2.913 1.00 20.00 H +ATOM 939 HB3 LEU A 56 -53.000 -61.644 1.659 1.00 20.00 H +ATOM 940 HG LEU A 56 -53.971 -58.779 1.668 1.00 20.00 H +ATOM 941 HD11 LEU A 56 -52.657 -58.697 -0.432 1.00 20.00 H +ATOM 942 HD12 LEU A 56 -51.648 -59.161 0.979 1.00 20.00 H +ATOM 943 HD13 LEU A 56 -52.183 -60.413 -0.192 1.00 20.00 H +ATOM 944 HD21 LEU A 56 -55.059 -59.288 -0.493 1.00 20.00 H +ATOM 945 HD22 LEU A 56 -54.677 -61.029 -0.271 1.00 20.00 H +ATOM 946 HD23 LEU A 56 -55.801 -60.204 0.862 1.00 20.00 H +ATOM 947 N SER A 57 -54.391 -62.464 5.169 1.00 48.18 N +ATOM 948 CA SER A 57 -53.883 -63.471 6.091 1.00 49.81 C +ATOM 949 C SER A 57 -55.026 -64.351 6.574 1.00 50.11 C +ATOM 950 O SER A 57 -55.944 -63.870 7.245 1.00 52.19 O +ATOM 951 CB SER A 57 -53.175 -62.826 7.280 1.00 46.28 C +ATOM 952 OG SER A 57 -52.932 -63.797 8.279 1.00 43.05 O +ATOM 953 H SER A 57 -54.953 -61.719 5.528 1.00 20.00 H +ATOM 954 HA SER A 57 -53.157 -64.108 5.564 1.00 20.00 H +ATOM 955 HB2 SER A 57 -52.218 -62.398 6.947 1.00 20.00 H +ATOM 956 HB3 SER A 57 -53.809 -62.028 7.693 1.00 20.00 H +ATOM 957 HG SER A 57 -52.833 -63.368 9.121 1.00 20.00 H +ATOM 958 N SER A 58 -54.950 -65.642 6.251 1.00 49.32 N +ATOM 959 CA SER A 58 -55.974 -66.585 6.677 1.00 50.61 C +ATOM 960 C SER A 58 -55.940 -66.852 8.176 1.00 49.34 C +ATOM 961 O SER A 58 -56.924 -67.366 8.718 1.00 47.67 O +ATOM 962 CB SER A 58 -55.816 -67.899 5.914 1.00 54.70 C +ATOM 963 OG SER A 58 -54.546 -68.480 6.168 1.00 54.54 O +ATOM 964 H SER A 58 -54.177 -65.968 5.707 1.00 20.00 H +ATOM 965 HA SER A 58 -56.962 -66.169 6.430 1.00 20.00 H +ATOM 966 HB2 SER A 58 -56.603 -68.598 6.233 1.00 20.00 H +ATOM 967 HB3 SER A 58 -55.914 -67.704 4.836 1.00 20.00 H +ATOM 968 HG SER A 58 -54.539 -68.858 7.040 1.00 20.00 H +ATOM 969 N THR A 59 -54.841 -66.525 8.855 1.00 42.81 N +ATOM 970 CA THR A 59 -54.704 -66.775 10.284 1.00 43.97 C +ATOM 971 C THR A 59 -54.945 -65.538 11.140 1.00 46.59 C +ATOM 972 O THR A 59 -54.773 -65.602 12.361 1.00 49.69 O +ATOM 973 CB THR A 59 -53.315 -67.354 10.589 1.00 47.71 C +ATOM 974 OG1 THR A 59 -52.325 -66.652 9.827 1.00 47.50 O +ATOM 975 CG2 THR A 59 -53.273 -68.834 10.237 1.00 46.56 C +ATOM 976 H THR A 59 -54.083 -66.093 8.366 1.00 20.00 H +ATOM 977 HA THR A 59 -55.447 -67.531 10.577 1.00 20.00 H +ATOM 978 HB THR A 59 -53.114 -67.239 11.664 1.00 20.00 H +ATOM 979 HG1 THR A 59 -52.075 -65.859 10.286 1.00 20.00 H +ATOM 980 HG21 THR A 59 -52.274 -69.236 10.460 1.00 20.00 H +ATOM 981 HG22 THR A 59 -54.026 -69.373 10.830 1.00 20.00 H +ATOM 982 HG23 THR A 59 -53.489 -68.962 9.166 1.00 20.00 H +ATOM 983 N TYR A 60 -55.345 -64.425 10.536 1.00 48.16 N +ATOM 984 CA TYR A 60 -55.605 -63.210 11.295 1.00 45.92 C +ATOM 985 C TYR A 60 -56.870 -63.355 12.131 1.00 50.50 C +ATOM 986 O TYR A 60 -57.869 -63.924 11.682 1.00 44.31 O +ATOM 987 CB TYR A 60 -55.733 -62.016 10.347 1.00 46.73 C +ATOM 988 CG TYR A 60 -56.384 -60.794 10.958 1.00 48.55 C +ATOM 989 CD1 TYR A 60 -55.680 -59.970 11.825 1.00 50.27 C +ATOM 990 CD2 TYR A 60 -57.696 -60.451 10.649 1.00 51.36 C +ATOM 991 CE1 TYR A 60 -56.266 -58.851 12.381 1.00 48.37 C +ATOM 992 CE2 TYR A 60 -58.292 -59.330 11.201 1.00 50.35 C +ATOM 993 CZ TYR A 60 -57.570 -58.532 12.065 1.00 48.39 C +ATOM 994 OH TYR A 60 -58.141 -57.411 12.624 1.00 46.13 O +ATOM 995 H TYR A 60 -55.470 -64.421 9.544 1.00 20.00 H +ATOM 996 HA TYR A 60 -54.761 -63.021 11.975 1.00 20.00 H +ATOM 997 HB2 TYR A 60 -54.724 -61.735 10.010 1.00 20.00 H +ATOM 998 HB3 TYR A 60 -56.335 -62.328 9.481 1.00 20.00 H +ATOM 999 HD1 TYR A 60 -54.655 -60.209 12.069 1.00 20.00 H +ATOM 1000 HD2 TYR A 60 -58.260 -61.070 9.967 1.00 20.00 H +ATOM 1001 HE1 TYR A 60 -55.705 -58.227 13.061 1.00 20.00 H +ATOM 1002 HE2 TYR A 60 -59.314 -59.082 10.957 1.00 20.00 H +ATOM 1003 HH TYR A 60 -59.009 -57.282 12.259 1.00 20.00 H +ATOM 1004 N ARG A 61 -56.824 -62.837 13.358 1.00 48.57 N +ATOM 1005 CA ARG A 61 -57.989 -62.798 14.235 1.00 50.59 C +ATOM 1006 C ARG A 61 -58.112 -61.405 14.832 1.00 48.23 C +ATOM 1007 O ARG A 61 -57.197 -60.933 15.515 1.00 40.49 O +ATOM 1008 CB ARG A 61 -57.900 -63.857 15.336 1.00 49.19 C +ATOM 1009 CG ARG A 61 -57.932 -65.286 14.804 1.00 51.18 C +ATOM 1010 CD ARG A 61 -58.039 -66.307 15.924 1.00 56.84 C +ATOM 1011 NE ARG A 61 -57.634 -67.640 15.484 1.00 57.99 N +ATOM 1012 CZ ARG A 61 -58.410 -68.717 15.523 1.00 54.97 C +ATOM 1013 NH1 ARG A 61 -59.646 -68.633 15.991 1.00 59.10 N +ATOM 1014 NH2 ARG A 61 -57.942 -69.884 15.103 1.00 51.16 N +ATOM 1015 H ARG A 61 -55.959 -62.461 13.690 1.00 20.00 H +ATOM 1016 HA ARG A 61 -58.892 -62.998 13.640 1.00 20.00 H +ATOM 1017 HB2 ARG A 61 -56.959 -63.710 15.886 1.00 20.00 H +ATOM 1018 HB3 ARG A 61 -58.750 -63.721 16.021 1.00 20.00 H +ATOM 1019 HG2 ARG A 61 -58.800 -65.398 14.137 1.00 20.00 H +ATOM 1020 HG3 ARG A 61 -57.008 -65.475 14.238 1.00 20.00 H +ATOM 1021 HD2 ARG A 61 -57.389 -65.994 16.755 1.00 20.00 H +ATOM 1022 HD3 ARG A 61 -59.082 -66.348 16.270 1.00 20.00 H +ATOM 1023 HE ARG A 61 -56.706 -67.749 15.128 1.00 20.00 H +ATOM 1024 HH11 ARG A 61 -60.224 -69.449 16.027 1.00 20.00 H +ATOM 1025 HH12 ARG A 61 -60.002 -67.754 16.309 1.00 20.00 H +ATOM 1026 HH21 ARG A 61 -58.522 -70.698 15.140 1.00 20.00 H +ATOM 1027 HH22 ARG A 61 -57.009 -69.951 14.749 1.00 20.00 H +ATOM 1028 N ASP A 62 -59.241 -60.753 14.562 1.00 43.61 N +ATOM 1029 CA ASP A 62 -59.491 -59.396 15.031 1.00 46.07 C +ATOM 1030 C ASP A 62 -59.889 -59.424 16.501 1.00 47.34 C +ATOM 1031 O ASP A 62 -60.880 -60.064 16.865 1.00 47.68 O +ATOM 1032 CB ASP A 62 -60.590 -58.763 14.176 1.00 47.49 C +ATOM 1033 CG ASP A 62 -60.807 -57.287 14.471 1.00 50.90 C +ATOM 1034 OD1 ASP A 62 -60.238 -56.756 15.450 1.00 52.49 O +ATOM 1035 OD2 ASP A 62 -61.556 -56.648 13.703 1.00 54.13 O +ATOM 1036 H ASP A 62 -59.943 -61.211 14.017 1.00 20.00 H +ATOM 1037 HA ASP A 62 -58.575 -58.796 14.926 1.00 20.00 H +ATOM 1038 HB2 ASP A 62 -60.313 -58.870 13.117 1.00 20.00 H +ATOM 1039 HB3 ASP A 62 -61.532 -59.299 14.365 1.00 20.00 H +ATOM 1040 N LEU A 63 -59.120 -58.732 17.349 1.00 46.48 N +ATOM 1041 CA LEU A 63 -59.461 -58.639 18.764 1.00 42.35 C +ATOM 1042 C LEU A 63 -60.504 -57.566 19.052 1.00 49.92 C +ATOM 1043 O LEU A 63 -60.984 -57.482 20.189 1.00 48.68 O +ATOM 1044 CB LEU A 63 -58.198 -58.388 19.596 1.00 44.90 C +ATOM 1045 CG LEU A 63 -57.362 -59.618 19.961 1.00 42.51 C +ATOM 1046 CD1 LEU A 63 -55.950 -59.214 20.383 1.00 45.54 C +ATOM 1047 CD2 LEU A 63 -58.045 -60.407 21.066 1.00 41.04 C +ATOM 1048 H LEU A 63 -58.300 -58.272 17.008 1.00 20.00 H +ATOM 1049 HA LEU A 63 -59.881 -59.604 19.084 1.00 20.00 H +ATOM 1050 HB2 LEU A 63 -57.553 -57.703 19.025 1.00 20.00 H +ATOM 1051 HB3 LEU A 63 -58.507 -57.904 20.534 1.00 20.00 H +ATOM 1052 HG LEU A 63 -57.286 -60.260 19.071 1.00 20.00 H +ATOM 1053 HD11 LEU A 63 -55.372 -60.114 20.639 1.00 20.00 H +ATOM 1054 HD12 LEU A 63 -55.457 -58.685 19.554 1.00 20.00 H +ATOM 1055 HD13 LEU A 63 -56.005 -58.552 21.260 1.00 20.00 H +ATOM 1056 HD21 LEU A 63 -57.436 -61.287 21.319 1.00 20.00 H +ATOM 1057 HD22 LEU A 63 -58.157 -59.770 21.956 1.00 20.00 H +ATOM 1058 HD23 LEU A 63 -59.037 -60.735 20.723 1.00 20.00 H +ATOM 1059 N ARG A 64 -60.859 -56.752 18.053 1.00 62.75 N +ATOM 1060 CA ARG A 64 -61.970 -55.801 18.137 1.00 54.71 C +ATOM 1061 C ARG A 64 -61.781 -54.816 19.293 1.00 56.88 C +ATOM 1062 O ARG A 64 -62.630 -54.674 20.176 1.00 55.70 O +ATOM 1063 CB ARG A 64 -63.312 -56.537 18.247 1.00 53.58 C +ATOM 1064 CG ARG A 64 -63.645 -57.342 17.008 1.00 50.65 C +ATOM 1065 CD ARG A 64 -64.951 -58.104 17.141 1.00 59.28 C +ATOM 1066 NE ARG A 64 -65.015 -58.929 18.344 1.00 63.13 N +ATOM 1067 CZ ARG A 64 -65.992 -58.853 19.242 1.00 66.84 C +ATOM 1068 NH1 ARG A 64 -65.975 -59.637 20.311 1.00 70.70 N +ATOM 1069 NH2 ARG A 64 -66.995 -58.003 19.061 1.00 64.88 N +ATOM 1070 H ARG A 64 -60.337 -56.795 17.201 1.00 20.00 H +ATOM 1071 HA ARG A 64 -61.992 -55.215 17.206 1.00 20.00 H +ATOM 1072 HB2 ARG A 64 -63.268 -57.220 19.108 1.00 20.00 H +ATOM 1073 HB3 ARG A 64 -64.108 -55.794 18.408 1.00 20.00 H +ATOM 1074 HG2 ARG A 64 -63.723 -56.655 16.152 1.00 20.00 H +ATOM 1075 HG3 ARG A 64 -62.834 -58.062 16.827 1.00 20.00 H +ATOM 1076 HD2 ARG A 64 -65.778 -57.379 17.170 1.00 20.00 H +ATOM 1077 HD3 ARG A 64 -65.066 -58.757 16.263 1.00 20.00 H +ATOM 1078 HE ARG A 64 -64.281 -59.590 18.501 1.00 20.00 H +ATOM 1079 HH11 ARG A 64 -66.717 -59.587 20.979 1.00 20.00 H +ATOM 1080 HH12 ARG A 64 -65.220 -60.278 20.449 1.00 20.00 H +ATOM 1081 HH21 ARG A 64 -67.736 -57.955 19.730 1.00 20.00 H +ATOM 1082 HH22 ARG A 64 -67.009 -57.411 18.255 1.00 20.00 H +ATOM 1083 N LYS A 65 -60.642 -54.126 19.264 1.00 55.67 N +ATOM 1084 CA LYS A 65 -60.322 -53.133 20.281 1.00 55.39 C +ATOM 1085 C LYS A 65 -59.197 -52.254 19.761 1.00 51.35 C +ATOM 1086 O LYS A 65 -58.177 -52.766 19.292 1.00 52.21 O +ATOM 1087 CB LYS A 65 -59.920 -53.803 21.600 1.00 62.54 C +ATOM 1088 CG LYS A 65 -59.433 -52.841 22.679 1.00 62.65 C +ATOM 1089 CD LYS A 65 -59.489 -53.491 24.051 1.00 62.63 C +ATOM 1090 CE LYS A 65 -60.903 -53.472 24.612 0.00 64.22 C +ATOM 1091 NZ LYS A 65 -61.330 -52.083 24.941 0.00 65.57 N +ATOM 1092 H LYS A 65 -59.990 -54.294 18.525 1.00 20.00 H +ATOM 1093 HA LYS A 65 -61.204 -52.502 20.466 1.00 20.00 H +ATOM 1094 HB2 LYS A 65 -60.795 -54.343 21.991 1.00 20.00 H +ATOM 1095 HB3 LYS A 65 -59.112 -54.519 21.389 1.00 20.00 H +ATOM 1096 HG2 LYS A 65 -58.395 -52.550 22.460 1.00 20.00 H +ATOM 1097 HG3 LYS A 65 -60.072 -51.946 22.678 1.00 20.00 H +ATOM 1098 HD2 LYS A 65 -59.150 -54.534 23.968 1.00 20.00 H +ATOM 1099 HD3 LYS A 65 -58.824 -52.943 24.735 1.00 20.00 H +ATOM 1100 HE2 LYS A 65 -61.592 -53.892 23.865 0.00 20.00 H +ATOM 1101 HE3 LYS A 65 -60.936 -54.084 25.525 0.00 20.00 H +ATOM 1102 HZ1 LYS A 65 -61.976 -52.104 25.704 0.00 20.00 H +ATOM 1103 HZ2 LYS A 65 -60.530 -51.540 25.197 0.00 20.00 H +ATOM 1104 HZ3 LYS A 65 -61.770 -51.672 24.143 0.00 20.00 H +ATOM 1105 N GLY A 66 -59.390 -50.939 19.836 1.00 49.30 N +ATOM 1106 CA GLY A 66 -58.365 -50.017 19.407 1.00 53.80 C +ATOM 1107 C GLY A 66 -57.312 -49.789 20.473 1.00 55.90 C +ATOM 1108 O GLY A 66 -57.447 -50.194 21.627 1.00 53.04 O +ATOM 1109 H GLY A 66 -60.255 -50.586 20.194 1.00 20.00 H +ATOM 1110 HA2 GLY A 66 -57.877 -50.424 18.509 1.00 20.00 H +ATOM 1111 HA3 GLY A 66 -58.836 -49.053 19.163 1.00 20.00 H +ATOM 1112 N VAL A 67 -56.229 -49.137 20.066 1.00 55.85 N +ATOM 1113 CA VAL A 67 -55.183 -48.737 21.000 1.00 53.38 C +ATOM 1114 C VAL A 67 -54.548 -47.455 20.482 1.00 54.17 C +ATOM 1115 O VAL A 67 -54.338 -47.288 19.277 1.00 54.36 O +ATOM 1116 CB VAL A 67 -54.142 -49.860 21.211 1.00 54.01 C +ATOM 1117 CG1 VAL A 67 -53.456 -50.226 19.904 1.00 53.71 C +ATOM 1118 CG2 VAL A 67 -53.120 -49.455 22.274 1.00 54.93 C +ATOM 1119 H VAL A 67 -56.128 -48.915 19.096 1.00 20.00 H +ATOM 1120 HA VAL A 67 -55.643 -48.519 21.975 1.00 20.00 H +ATOM 1121 HB VAL A 67 -54.677 -50.749 21.576 1.00 20.00 H +ATOM 1122 HG11 VAL A 67 -52.723 -51.026 20.086 1.00 20.00 H +ATOM 1123 HG12 VAL A 67 -54.208 -50.575 19.181 1.00 20.00 H +ATOM 1124 HG13 VAL A 67 -52.942 -49.342 19.500 1.00 20.00 H +ATOM 1125 HG21 VAL A 67 -52.389 -50.266 22.409 1.00 20.00 H +ATOM 1126 HG22 VAL A 67 -52.598 -48.542 21.952 1.00 20.00 H +ATOM 1127 HG23 VAL A 67 -53.637 -49.265 23.226 1.00 20.00 H +ATOM 1128 N TYR A 68 -54.273 -46.537 21.403 1.00 56.01 N +ATOM 1129 CA TYR A 68 -53.693 -45.240 21.085 1.00 59.40 C +ATOM 1130 C TYR A 68 -52.448 -45.060 21.939 1.00 57.63 C +ATOM 1131 O TYR A 68 -52.528 -45.138 23.170 1.00 55.68 O +ATOM 1132 CB TYR A 68 -54.709 -44.119 21.331 1.00 63.89 C +ATOM 1133 CG TYR A 68 -54.131 -42.723 21.336 1.00 69.11 C +ATOM 1134 CD1 TYR A 68 -53.418 -42.239 20.249 1.00 70.01 C +ATOM 1135 CD2 TYR A 68 -54.321 -41.879 22.422 1.00 66.23 C +ATOM 1136 CE1 TYR A 68 -52.895 -40.958 20.250 1.00 68.70 C +ATOM 1137 CE2 TYR A 68 -53.805 -40.597 22.430 1.00 68.45 C +ATOM 1138 CZ TYR A 68 -53.091 -40.141 21.341 1.00 70.91 C +ATOM 1139 OH TYR A 68 -52.571 -38.864 21.344 1.00 75.76 O +ATOM 1140 H TYR A 68 -54.474 -46.747 22.360 1.00 20.00 H +ATOM 1141 HA TYR A 68 -53.399 -45.219 20.025 1.00 20.00 H +ATOM 1142 HB2 TYR A 68 -55.471 -44.170 20.540 1.00 20.00 H +ATOM 1143 HB3 TYR A 68 -55.182 -44.296 22.308 1.00 20.00 H +ATOM 1144 HD1 TYR A 68 -53.269 -42.873 19.387 1.00 20.00 H +ATOM 1145 HD2 TYR A 68 -54.882 -42.230 23.275 1.00 20.00 H +ATOM 1146 HE1 TYR A 68 -52.335 -40.600 19.399 1.00 20.00 H +ATOM 1147 HE2 TYR A 68 -53.960 -39.955 23.285 1.00 20.00 H +ATOM 1148 HH TYR A 68 -52.792 -38.434 22.162 1.00 20.00 H +ATOM 1149 N VAL A 69 -51.312 -44.841 21.296 1.00 59.68 N +ATOM 1150 CA VAL A 69 -50.017 -44.784 21.960 1.00 58.49 C +ATOM 1151 C VAL A 69 -49.352 -43.458 21.616 1.00 55.65 C +ATOM 1152 O VAL A 69 -48.801 -43.292 20.526 1.00 53.85 O +ATOM 1153 CB VAL A 69 -49.125 -45.970 21.562 1.00 59.87 C +ATOM 1154 CG1 VAL A 69 -47.764 -45.855 22.238 1.00 59.38 C +ATOM 1155 CG2 VAL A 69 -49.793 -47.284 21.923 1.00 57.05 C +ATOM 1156 H VAL A 69 -51.345 -44.708 20.305 1.00 20.00 H +ATOM 1157 HA VAL A 69 -50.169 -44.821 23.049 1.00 20.00 H +ATOM 1158 HB VAL A 69 -48.977 -45.941 20.472 1.00 20.00 H +ATOM 1159 HG11 VAL A 69 -47.135 -46.709 21.945 1.00 20.00 H +ATOM 1160 HG12 VAL A 69 -47.278 -44.918 21.927 1.00 20.00 H +ATOM 1161 HG13 VAL A 69 -47.896 -45.854 23.330 1.00 20.00 H +ATOM 1162 HG21 VAL A 69 -49.140 -48.120 21.631 1.00 20.00 H +ATOM 1163 HG22 VAL A 69 -49.970 -47.319 23.008 1.00 20.00 H +ATOM 1164 HG23 VAL A 69 -50.753 -47.365 21.392 1.00 20.00 H +ATOM 1165 N PRO A 70 -49.388 -42.484 22.521 1.00 55.26 N +ATOM 1166 CA PRO A 70 -48.608 -41.260 22.327 1.00 58.22 C +ATOM 1167 C PRO A 70 -47.233 -41.359 22.968 1.00 60.31 C +ATOM 1168 O PRO A 70 -47.047 -41.956 24.031 1.00 59.37 O +ATOM 1169 CB PRO A 70 -49.463 -40.197 23.029 1.00 55.29 C +ATOM 1170 CG PRO A 70 -50.101 -40.949 24.148 1.00 57.14 C +ATOM 1171 CD PRO A 70 -50.335 -42.357 23.641 1.00 59.94 C +ATOM 1172 HA PRO A 70 -48.512 -41.019 21.258 1.00 20.00 H +ATOM 1173 HB2 PRO A 70 -48.836 -39.378 23.412 1.00 20.00 H +ATOM 1174 HB3 PRO A 70 -50.222 -39.789 22.346 1.00 20.00 H +ATOM 1175 HG2 PRO A 70 -49.435 -40.966 25.023 1.00 20.00 H +ATOM 1176 HG3 PRO A 70 -51.057 -40.481 24.424 1.00 20.00 H +ATOM 1177 HD2 PRO A 70 -50.118 -43.098 24.425 1.00 20.00 H +ATOM 1178 HD3 PRO A 70 -51.372 -42.482 23.295 1.00 20.00 H +ATOM 1179 N TYR A 71 -46.249 -40.785 22.290 1.00 59.80 N +ATOM 1180 CA TYR A 71 -44.916 -40.611 22.842 1.00 54.35 C +ATOM 1181 C TYR A 71 -44.649 -39.119 23.002 1.00 57.97 C +ATOM 1182 O TYR A 71 -45.493 -38.276 22.681 1.00 55.27 O +ATOM 1183 CB TYR A 71 -43.855 -41.266 21.954 1.00 51.43 C +ATOM 1184 CG TYR A 71 -44.101 -42.724 21.634 1.00 57.47 C +ATOM 1185 CD1 TYR A 71 -43.969 -43.706 22.606 1.00 61.04 C +ATOM 1186 CD2 TYR A 71 -44.438 -43.120 20.348 1.00 60.74 C +ATOM 1187 CE1 TYR A 71 -44.184 -45.045 22.306 1.00 62.63 C +ATOM 1188 CE2 TYR A 71 -44.654 -44.451 20.039 1.00 64.72 C +ATOM 1189 CZ TYR A 71 -44.526 -45.410 21.020 1.00 68.48 C +ATOM 1190 OH TYR A 71 -44.741 -46.735 20.710 1.00 72.90 O +ATOM 1191 H TYR A 71 -46.431 -40.459 21.362 1.00 20.00 H +ATOM 1192 HA TYR A 71 -44.871 -41.079 23.836 1.00 20.00 H +ATOM 1193 HB2 TYR A 71 -43.814 -40.711 21.005 1.00 20.00 H +ATOM 1194 HB3 TYR A 71 -42.885 -41.188 22.467 1.00 20.00 H +ATOM 1195 HD1 TYR A 71 -43.695 -43.424 23.612 1.00 20.00 H +ATOM 1196 HD2 TYR A 71 -44.534 -42.374 19.573 1.00 20.00 H +ATOM 1197 HE1 TYR A 71 -44.084 -45.797 23.075 1.00 20.00 H +ATOM 1198 HE2 TYR A 71 -44.922 -44.737 19.033 1.00 20.00 H +ATOM 1199 HH TYR A 71 -44.615 -47.267 21.487 1.00 20.00 H +ATOM 1200 N THR A 72 -43.456 -38.792 23.501 1.00 57.59 N +ATOM 1201 CA THR A 72 -43.103 -37.387 23.669 1.00 57.71 C +ATOM 1202 C THR A 72 -43.055 -36.679 22.321 1.00 57.24 C +ATOM 1203 O THR A 72 -43.607 -35.585 22.159 1.00 60.44 O +ATOM 1204 CB THR A 72 -41.765 -37.267 24.398 1.00 58.08 C +ATOM 1205 OG1 THR A 72 -41.807 -38.033 25.608 0.00 57.32 O +ATOM 1206 CG2 THR A 72 -41.490 -35.815 24.748 0.00 57.42 C +ATOM 1207 H THR A 72 -42.806 -39.507 23.759 1.00 20.00 H +ATOM 1208 HA THR A 72 -43.871 -36.897 24.285 1.00 20.00 H +ATOM 1209 HB THR A 72 -40.965 -37.637 23.740 1.00 20.00 H +ATOM 1210 HG1 THR A 72 -42.711 -38.171 25.865 0.00 20.00 H +ATOM 1211 HG21 THR A 72 -40.526 -35.740 25.272 0.00 20.00 H +ATOM 1212 HG22 THR A 72 -41.454 -35.216 23.826 0.00 20.00 H +ATOM 1213 HG23 THR A 72 -42.292 -35.437 25.400 0.00 20.00 H +ATOM 1214 N GLN A 73 -42.406 -37.297 21.338 1.00 58.43 N +ATOM 1215 CA GLN A 73 -42.353 -36.784 19.970 1.00 62.80 C +ATOM 1216 C GLN A 73 -42.828 -37.908 19.052 1.00 66.08 C +ATOM 1217 O GLN A 73 -42.047 -38.792 18.686 1.00 73.18 O +ATOM 1218 CB GLN A 73 -40.948 -36.311 19.610 1.00 66.64 C +ATOM 1219 CG GLN A 73 -40.838 -35.663 18.241 0.00 64.59 C +ATOM 1220 CD GLN A 73 -39.479 -35.035 17.996 0.00 64.71 C +ATOM 1221 OE1 GLN A 73 -39.345 -34.090 17.215 0.00 65.05 O +ATOM 1222 NE2 GLN A 73 -38.460 -35.563 18.662 0.00 65.06 N +ATOM 1223 H GLN A 73 -41.932 -38.153 21.545 1.00 20.00 H +ATOM 1224 HA GLN A 73 -43.045 -35.935 19.871 1.00 20.00 H +ATOM 1225 HB2 GLN A 73 -40.627 -35.578 20.365 1.00 20.00 H +ATOM 1226 HB3 GLN A 73 -40.275 -37.181 19.635 1.00 20.00 H +ATOM 1227 HG2 GLN A 73 -41.014 -36.431 17.473 0.00 20.00 H +ATOM 1228 HG3 GLN A 73 -41.607 -34.880 18.160 0.00 20.00 H +ATOM 1229 HE21 GLN A 73 -37.538 -35.195 18.539 0.00 20.00 H +ATOM 1230 HE22 GLN A 73 -38.614 -36.330 19.285 0.00 20.00 H +ATOM 1231 N GLY A 74 -44.111 -37.884 18.700 1.00 61.82 N +ATOM 1232 CA GLY A 74 -44.687 -38.923 17.869 1.00 60.75 C +ATOM 1233 C GLY A 74 -45.830 -39.663 18.536 1.00 59.80 C +ATOM 1234 O GLY A 74 -45.951 -39.659 19.765 1.00 57.38 O +ATOM 1235 H GLY A 74 -44.691 -37.133 19.016 1.00 20.00 H +ATOM 1236 HA2 GLY A 74 -45.063 -38.461 16.944 1.00 20.00 H +ATOM 1237 HA3 GLY A 74 -43.898 -39.649 17.622 1.00 20.00 H +ATOM 1238 N LYS A 75 -46.675 -40.305 17.733 1.00 62.25 N +ATOM 1239 CA LYS A 75 -47.818 -41.045 18.252 1.00 56.32 C +ATOM 1240 C LYS A 75 -48.345 -41.958 17.157 1.00 53.10 C +ATOM 1241 O LYS A 75 -48.112 -41.728 15.969 1.00 48.60 O +ATOM 1242 CB LYS A 75 -48.924 -40.103 18.745 1.00 57.79 C +ATOM 1243 CG LYS A 75 -49.549 -39.241 17.657 1.00 60.71 C +ATOM 1244 CD LYS A 75 -50.616 -38.315 18.224 1.00 61.84 C +ATOM 1245 CE LYS A 75 -51.231 -37.440 17.142 0.00 63.18 C +ATOM 1246 NZ LYS A 75 -50.238 -36.514 16.528 0.00 64.61 N +ATOM 1247 H LYS A 75 -46.521 -40.279 16.745 1.00 20.00 H +ATOM 1248 HA LYS A 75 -47.493 -41.668 19.098 1.00 20.00 H +ATOM 1249 HB2 LYS A 75 -49.719 -40.714 19.199 1.00 20.00 H +ATOM 1250 HB3 LYS A 75 -48.493 -39.436 19.507 1.00 20.00 H +ATOM 1251 HG2 LYS A 75 -48.762 -38.634 17.186 1.00 20.00 H +ATOM 1252 HG3 LYS A 75 -50.008 -39.896 16.902 1.00 20.00 H +ATOM 1253 HD2 LYS A 75 -51.409 -38.923 18.684 1.00 20.00 H +ATOM 1254 HD3 LYS A 75 -50.159 -37.669 18.988 1.00 20.00 H +ATOM 1255 HE2 LYS A 75 -51.643 -38.089 16.355 0.00 20.00 H +ATOM 1256 HE3 LYS A 75 -52.041 -36.844 17.588 0.00 20.00 H +ATOM 1257 HZ1 LYS A 75 -50.532 -35.569 16.668 0.00 20.00 H +ATOM 1258 HZ2 LYS A 75 -49.345 -36.652 16.956 0.00 20.00 H +ATOM 1259 HZ3 LYS A 75 -50.171 -36.700 15.548 0.00 20.00 H +ATOM 1260 N TRP A 76 -49.048 -43.009 17.573 1.00 54.21 N +ATOM 1261 CA TRP A 76 -49.737 -43.858 16.611 1.00 54.11 C +ATOM 1262 C TRP A 76 -50.996 -44.438 17.235 1.00 54.45 C +ATOM 1263 O TRP A 76 -51.157 -44.475 18.458 1.00 54.40 O +ATOM 1264 CB TRP A 76 -48.838 -44.983 16.068 1.00 56.22 C +ATOM 1265 CG TRP A 76 -48.243 -45.902 17.097 1.00 52.16 C +ATOM 1266 CD1 TRP A 76 -47.017 -45.788 17.677 1.00 53.45 C +ATOM 1267 CD2 TRP A 76 -48.830 -47.097 17.636 1.00 53.70 C +ATOM 1268 NE1 TRP A 76 -46.807 -46.822 18.554 1.00 56.59 N +ATOM 1269 CE2 TRP A 76 -47.905 -47.640 18.548 1.00 53.56 C +ATOM 1270 CE3 TRP A 76 -50.052 -47.754 17.443 1.00 54.98 C +ATOM 1271 CZ2 TRP A 76 -48.159 -48.810 19.265 1.00 52.67 C +ATOM 1272 CZ3 TRP A 76 -50.304 -48.915 18.159 1.00 53.45 C +ATOM 1273 CH2 TRP A 76 -49.361 -49.431 19.057 1.00 55.79 C +ATOM 1274 H TRP A 76 -49.103 -43.216 18.550 1.00 20.00 H +ATOM 1275 HA TRP A 76 -50.043 -43.238 15.755 1.00 20.00 H +ATOM 1276 HB2 TRP A 76 -49.441 -45.593 15.379 1.00 20.00 H +ATOM 1277 HB3 TRP A 76 -48.010 -44.515 15.515 1.00 20.00 H +ATOM 1278 HD1 TRP A 76 -46.310 -44.996 17.476 1.00 20.00 H +ATOM 1279 HE1 TRP A 76 -45.985 -46.957 19.108 1.00 20.00 H +ATOM 1280 HE3 TRP A 76 -50.783 -47.364 16.750 1.00 20.00 H +ATOM 1281 HZ2 TRP A 76 -47.434 -49.211 19.958 1.00 20.00 H +ATOM 1282 HZ3 TRP A 76 -51.243 -49.430 18.022 1.00 20.00 H +ATOM 1283 HH2 TRP A 76 -49.587 -50.339 19.597 1.00 20.00 H +ATOM 1284 N GLU A 77 -51.887 -44.891 16.360 1.00 57.41 N +ATOM 1285 CA GLU A 77 -53.164 -45.471 16.732 1.00 54.38 C +ATOM 1286 C GLU A 77 -53.363 -46.728 15.901 1.00 50.83 C +ATOM 1287 O GLU A 77 -52.928 -46.797 14.748 1.00 49.16 O +ATOM 1288 CB GLU A 77 -54.310 -44.470 16.499 1.00 62.74 C +ATOM 1289 CG GLU A 77 -55.611 -44.775 17.229 1.00 72.39 C +ATOM 1290 CD GLU A 77 -56.536 -43.572 17.248 1.00 74.92 C +ATOM 1291 OE1 GLU A 77 -56.386 -42.693 16.373 1.00 76.65 O +ATOM 1292 OE2 GLU A 77 -57.403 -43.494 18.143 1.00 76.67 O +ATOM 1293 H GLU A 77 -51.664 -44.829 15.387 1.00 20.00 H +ATOM 1294 HA GLU A 77 -53.151 -45.748 17.797 1.00 20.00 H +ATOM 1295 HB2 GLU A 77 -53.964 -43.478 16.825 1.00 20.00 H +ATOM 1296 HB3 GLU A 77 -54.525 -44.447 15.420 1.00 20.00 H +ATOM 1297 HG2 GLU A 77 -56.119 -45.608 16.721 1.00 20.00 H +ATOM 1298 HG3 GLU A 77 -55.380 -45.064 18.265 1.00 20.00 H +ATOM 1299 N GLY A 78 -54.001 -47.733 16.490 1.00 50.61 N +ATOM 1300 CA GLY A 78 -54.098 -48.990 15.778 1.00 53.94 C +ATOM 1301 C GLY A 78 -55.207 -49.875 16.301 1.00 52.75 C +ATOM 1302 O GLY A 78 -55.943 -49.519 17.222 1.00 48.52 O +ATOM 1303 H GLY A 78 -54.403 -47.625 17.399 1.00 20.00 H +ATOM 1304 HA2 GLY A 78 -54.289 -48.778 14.715 1.00 20.00 H +ATOM 1305 HA3 GLY A 78 -53.143 -49.526 15.880 1.00 20.00 H +ATOM 1306 N GLU A 79 -55.301 -51.053 15.691 1.00 50.75 N +ATOM 1307 CA GLU A 79 -56.344 -52.026 15.983 1.00 50.95 C +ATOM 1308 C GLU A 79 -55.702 -53.330 16.435 1.00 49.07 C +ATOM 1309 O GLU A 79 -54.820 -53.865 15.751 1.00 42.62 O +ATOM 1310 CB GLU A 79 -57.226 -52.252 14.752 1.00 53.75 C +ATOM 1311 CG GLU A 79 -57.609 -50.956 14.045 1.00 59.42 C +ATOM 1312 CD GLU A 79 -58.586 -51.154 12.899 1.00 63.52 C +ATOM 1313 OE1 GLU A 79 -58.751 -52.303 12.435 1.00 61.87 O +ATOM 1314 OE2 GLU A 79 -59.195 -50.152 12.470 1.00 63.10 O +ATOM 1315 H GLU A 79 -54.620 -51.282 14.996 1.00 20.00 H +ATOM 1316 HA GLU A 79 -56.978 -51.648 16.799 1.00 20.00 H +ATOM 1317 HB2 GLU A 79 -56.679 -52.890 14.042 1.00 20.00 H +ATOM 1318 HB3 GLU A 79 -58.147 -52.763 15.070 1.00 20.00 H +ATOM 1319 HG2 GLU A 79 -58.069 -50.281 14.782 1.00 20.00 H +ATOM 1320 HG3 GLU A 79 -56.694 -50.494 13.646 1.00 20.00 H +ATOM 1321 N LEU A 80 -56.149 -53.835 17.582 1.00 48.94 N +ATOM 1322 CA LEU A 80 -55.545 -55.012 18.193 1.00 55.43 C +ATOM 1323 C LEU A 80 -56.069 -56.298 17.565 1.00 70.15 C +ATOM 1324 O LEU A 80 -57.247 -56.408 17.220 1.00 54.57 O +ATOM 1325 CB LEU A 80 -55.813 -55.019 19.698 1.00 48.26 C +ATOM 1326 CG LEU A 80 -55.111 -53.925 20.503 1.00 50.43 C +ATOM 1327 CD1 LEU A 80 -55.540 -53.980 21.959 1.00 53.49 C +ATOM 1328 CD2 LEU A 80 -53.603 -54.071 20.379 1.00 44.67 C +ATOM 1329 H LEU A 80 -56.922 -53.394 18.038 1.00 20.00 H +ATOM 1330 HA LEU A 80 -54.456 -54.976 18.041 1.00 20.00 H +ATOM 1331 HB2 LEU A 80 -56.897 -54.906 19.848 1.00 20.00 H +ATOM 1332 HB3 LEU A 80 -55.487 -55.992 20.094 1.00 20.00 H +ATOM 1333 HG LEU A 80 -55.403 -52.948 20.089 1.00 20.00 H +ATOM 1334 HD11 LEU A 80 -55.027 -53.188 22.523 1.00 20.00 H +ATOM 1335 HD12 LEU A 80 -56.628 -53.832 22.026 1.00 20.00 H +ATOM 1336 HD13 LEU A 80 -55.277 -54.961 22.382 1.00 20.00 H +ATOM 1337 HD21 LEU A 80 -53.108 -53.280 20.961 1.00 20.00 H +ATOM 1338 HD22 LEU A 80 -53.297 -55.055 20.764 1.00 20.00 H +ATOM 1339 HD23 LEU A 80 -53.312 -53.984 19.322 1.00 20.00 H +ATOM 1340 N GLY A 81 -55.180 -57.273 17.428 1.00 47.45 N +ATOM 1341 CA GLY A 81 -55.502 -58.556 16.851 1.00 46.61 C +ATOM 1342 C GLY A 81 -54.357 -59.510 17.102 1.00 49.67 C +ATOM 1343 O GLY A 81 -53.417 -59.196 17.833 1.00 48.97 O +ATOM 1344 H GLY A 81 -54.243 -57.111 17.739 1.00 20.00 H +ATOM 1345 HA2 GLY A 81 -56.418 -58.950 17.315 1.00 20.00 H +ATOM 1346 HA3 GLY A 81 -55.658 -58.444 15.768 1.00 20.00 H +ATOM 1347 N THR A 82 -54.444 -60.694 16.498 1.00 48.31 N +ATOM 1348 CA THR A 82 -53.372 -61.677 16.590 1.00 47.72 C +ATOM 1349 C THR A 82 -53.083 -62.239 15.200 1.00 47.73 C +ATOM 1350 O THR A 82 -53.929 -62.200 14.303 1.00 43.01 O +ATOM 1351 CB THR A 82 -53.722 -62.811 17.581 1.00 47.43 C +ATOM 1352 OG1 THR A 82 -54.783 -63.606 17.038 1.00 49.01 O +ATOM 1353 CG2 THR A 82 -54.146 -62.246 18.944 1.00 49.20 C +ATOM 1354 H THR A 82 -55.264 -60.914 15.969 1.00 20.00 H +ATOM 1355 HA THR A 82 -52.461 -61.180 16.954 1.00 20.00 H +ATOM 1356 HB THR A 82 -52.826 -63.433 17.725 1.00 20.00 H +ATOM 1357 HG1 THR A 82 -55.118 -63.193 16.251 1.00 20.00 H +ATOM 1358 HG21 THR A 82 -54.388 -63.075 19.626 1.00 20.00 H +ATOM 1359 HG22 THR A 82 -53.322 -61.652 19.367 1.00 20.00 H +ATOM 1360 HG23 THR A 82 -55.031 -61.606 18.816 1.00 20.00 H +ATOM 1361 N ASP A 83 -51.851 -62.708 15.011 1.00 44.63 N +ATOM 1362 CA ASP A 83 -51.503 -63.502 13.837 1.00 49.64 C +ATOM 1363 C ASP A 83 -50.328 -64.406 14.185 1.00 48.61 C +ATOM 1364 O ASP A 83 -49.692 -64.256 15.230 1.00 54.04 O +ATOM 1365 CB ASP A 83 -51.165 -62.630 12.622 1.00 50.46 C +ATOM 1366 CG ASP A 83 -51.703 -63.221 11.325 1.00 47.00 C +ATOM 1367 OD1 ASP A 83 -51.713 -64.466 11.208 1.00 40.75 O +ATOM 1368 OD2 ASP A 83 -52.123 -62.457 10.429 1.00 44.83 O +ATOM 1369 H ASP A 83 -51.146 -62.511 15.692 1.00 20.00 H +ATOM 1370 HA ASP A 83 -52.359 -64.140 13.571 1.00 20.00 H +ATOM 1371 HB2 ASP A 83 -51.606 -61.633 12.767 1.00 20.00 H +ATOM 1372 HB3 ASP A 83 -50.071 -62.539 12.544 1.00 20.00 H +ATOM 1373 N LEU A 84 -50.046 -65.349 13.287 1.00 49.00 N +ATOM 1374 CA LEU A 84 -48.837 -66.154 13.412 1.00 48.48 C +ATOM 1375 C LEU A 84 -47.622 -65.322 13.018 1.00 52.24 C +ATOM 1376 O LEU A 84 -47.670 -64.538 12.068 1.00 53.33 O +ATOM 1377 CB LEU A 84 -48.917 -67.410 12.542 1.00 47.65 C +ATOM 1378 CG LEU A 84 -50.007 -68.432 12.880 1.00 46.25 C +ATOM 1379 CD1 LEU A 84 -49.907 -69.663 11.987 1.00 49.09 C +ATOM 1380 CD2 LEU A 84 -49.946 -68.821 14.346 1.00 50.28 C +ATOM 1381 H LEU A 84 -50.669 -65.506 12.521 1.00 20.00 H +ATOM 1382 HA LEU A 84 -48.717 -66.467 14.460 1.00 20.00 H +ATOM 1383 HB2 LEU A 84 -49.081 -67.083 11.505 1.00 20.00 H +ATOM 1384 HB3 LEU A 84 -47.948 -67.925 12.615 1.00 20.00 H +ATOM 1385 HG LEU A 84 -50.982 -67.958 12.695 1.00 20.00 H +ATOM 1386 HD11 LEU A 84 -50.701 -70.376 12.254 1.00 20.00 H +ATOM 1387 HD12 LEU A 84 -50.022 -69.363 10.935 1.00 20.00 H +ATOM 1388 HD13 LEU A 84 -48.925 -70.139 12.127 1.00 20.00 H +ATOM 1389 HD21 LEU A 84 -50.736 -69.554 14.565 1.00 20.00 H +ATOM 1390 HD22 LEU A 84 -48.964 -69.264 14.567 1.00 20.00 H +ATOM 1391 HD23 LEU A 84 -50.093 -67.926 14.969 1.00 20.00 H +ATOM 1392 N VAL A 85 -46.531 -65.479 13.763 1.00 50.81 N +ATOM 1393 CA VAL A 85 -45.359 -64.622 13.610 1.00 52.01 C +ATOM 1394 C VAL A 85 -44.106 -65.486 13.606 1.00 50.81 C +ATOM 1395 O VAL A 85 -43.981 -66.408 14.419 1.00 47.47 O +ATOM 1396 CB VAL A 85 -45.270 -63.566 14.731 1.00 51.48 C +ATOM 1397 CG1 VAL A 85 -44.043 -62.687 14.534 1.00 48.92 C +ATOM 1398 CG2 VAL A 85 -46.528 -62.719 14.786 1.00 45.79 C +ATOM 1399 H VAL A 85 -46.513 -66.206 14.449 1.00 20.00 H +ATOM 1400 HA VAL A 85 -45.420 -64.094 12.647 1.00 20.00 H +ATOM 1401 HB VAL A 85 -45.166 -64.095 15.690 1.00 20.00 H +ATOM 1402 HG11 VAL A 85 -43.993 -61.940 15.340 1.00 20.00 H +ATOM 1403 HG12 VAL A 85 -43.138 -63.311 14.556 1.00 20.00 H +ATOM 1404 HG13 VAL A 85 -44.111 -62.175 13.563 1.00 20.00 H +ATOM 1405 HG21 VAL A 85 -46.436 -61.977 15.593 1.00 20.00 H +ATOM 1406 HG22 VAL A 85 -46.664 -62.201 13.825 1.00 20.00 H +ATOM 1407 HG23 VAL A 85 -47.397 -63.365 14.980 1.00 20.00 H +ATOM 1408 N SER A 86 -43.175 -65.183 12.703 1.00 50.88 N +ATOM 1409 CA SER A 86 -41.903 -65.881 12.631 1.00 52.84 C +ATOM 1410 C SER A 86 -40.760 -64.884 12.503 1.00 49.88 C +ATOM 1411 O SER A 86 -40.956 -63.713 12.166 1.00 49.61 O +ATOM 1412 CB SER A 86 -41.862 -66.861 11.451 1.00 57.33 C +ATOM 1413 OG SER A 86 -42.825 -67.885 11.613 1.00 64.66 O +ATOM 1414 H SER A 86 -43.358 -64.448 12.050 1.00 20.00 H +ATOM 1415 HA SER A 86 -41.755 -66.456 13.557 1.00 20.00 H +ATOM 1416 HB2 SER A 86 -42.071 -66.313 10.520 1.00 20.00 H +ATOM 1417 HB3 SER A 86 -40.861 -67.313 11.393 1.00 20.00 H +ATOM 1418 HG SER A 86 -43.684 -67.497 11.732 1.00 20.00 H +ATOM 1419 N ILE A 87 -39.564 -65.373 12.788 1.00 49.19 N +ATOM 1420 CA ILE A 87 -38.324 -64.657 12.523 1.00 48.18 C +ATOM 1421 C ILE A 87 -37.461 -65.535 11.626 1.00 48.09 C +ATOM 1422 O ILE A 87 -36.825 -66.480 12.092 1.00 48.84 O +ATOM 1423 CB ILE A 87 -37.589 -64.295 13.825 1.00 52.02 C +ATOM 1424 CG1 ILE A 87 -38.537 -63.594 14.794 1.00 51.32 C +ATOM 1425 CG2 ILE A 87 -36.392 -63.408 13.523 1.00 46.65 C +ATOM 1426 CD1 ILE A 87 -37.915 -63.306 16.136 1.00 56.91 C +ATOM 1427 H ILE A 87 -39.509 -66.280 13.206 1.00 20.00 H +ATOM 1428 HA ILE A 87 -38.550 -63.725 11.984 1.00 20.00 H +ATOM 1429 HB ILE A 87 -37.231 -65.224 14.293 1.00 20.00 H +ATOM 1430 HG12 ILE A 87 -38.853 -62.641 14.344 1.00 20.00 H +ATOM 1431 HG13 ILE A 87 -39.416 -64.237 14.948 1.00 20.00 H +ATOM 1432 HG21 ILE A 87 -35.875 -63.156 14.461 1.00 20.00 H +ATOM 1433 HG22 ILE A 87 -35.700 -63.942 12.855 1.00 20.00 H +ATOM 1434 HG23 ILE A 87 -36.735 -62.484 13.034 1.00 20.00 H +ATOM 1435 HD11 ILE A 87 -38.650 -62.803 16.781 1.00 20.00 H +ATOM 1436 HD12 ILE A 87 -37.602 -64.250 16.605 1.00 20.00 H +ATOM 1437 HD13 ILE A 87 -37.039 -62.655 16.002 1.00 20.00 H +ATOM 1438 N PRO A 88 -37.424 -65.252 10.322 1.00 47.04 N +ATOM 1439 CA PRO A 88 -36.715 -66.146 9.387 1.00 47.57 C +ATOM 1440 C PRO A 88 -35.282 -66.454 9.788 1.00 47.84 C +ATOM 1441 O PRO A 88 -34.867 -67.617 9.712 1.00 46.55 O +ATOM 1442 CB PRO A 88 -36.788 -65.375 8.064 1.00 49.15 C +ATOM 1443 CG PRO A 88 -38.032 -64.542 8.189 1.00 50.97 C +ATOM 1444 CD PRO A 88 -38.102 -64.141 9.634 1.00 49.91 C +ATOM 1445 HA PRO A 88 -37.271 -67.090 9.282 1.00 20.00 H +ATOM 1446 HB2 PRO A 88 -35.902 -64.736 7.936 1.00 20.00 H +ATOM 1447 HB3 PRO A 88 -36.867 -66.068 7.213 1.00 20.00 H +ATOM 1448 HG2 PRO A 88 -37.965 -63.652 7.546 1.00 20.00 H +ATOM 1449 HG3 PRO A 88 -38.918 -65.130 7.910 1.00 20.00 H +ATOM 1450 HD2 PRO A 88 -37.576 -63.190 9.806 1.00 20.00 H +ATOM 1451 HD3 PRO A 88 -39.146 -64.048 9.968 1.00 20.00 H +ATOM 1452 N HIS A 89 -34.514 -65.458 10.219 1.00 46.36 N +ATOM 1453 CA HIS A 89 -33.174 -65.702 10.747 1.00 47.49 C +ATOM 1454 C HIS A 89 -33.242 -65.721 12.274 1.00 47.69 C +ATOM 1455 O HIS A 89 -32.675 -64.880 12.973 1.00 49.13 O +ATOM 1456 CB HIS A 89 -32.200 -64.650 10.223 1.00 48.45 C +ATOM 1457 CG HIS A 89 -32.201 -64.518 8.730 1.00 57.64 C +ATOM 1458 ND1 HIS A 89 -31.466 -65.347 7.909 1.00 60.63 N +ATOM 1459 CD2 HIS A 89 -32.845 -63.655 7.908 1.00 57.77 C +ATOM 1460 CE1 HIS A 89 -31.659 -65.003 6.649 1.00 59.51 C +ATOM 1461 NE2 HIS A 89 -32.491 -63.977 6.620 1.00 56.20 N +ATOM 1462 H HIS A 89 -34.861 -64.521 10.181 1.00 20.00 H +ATOM 1463 HA HIS A 89 -32.829 -66.689 10.407 1.00 20.00 H +ATOM 1464 HB2 HIS A 89 -32.473 -63.677 10.658 1.00 20.00 H +ATOM 1465 HB3 HIS A 89 -31.185 -64.925 10.547 1.00 20.00 H +ATOM 1466 HD1 HIS A 89 -30.878 -66.093 8.220 1.00 20.00 H +ATOM 1467 HD2 HIS A 89 -33.513 -62.861 8.209 1.00 20.00 H +ATOM 1468 HE1 HIS A 89 -31.213 -65.479 5.788 1.00 20.00 H +ATOM 1469 HE2 HIS A 89 -32.811 -63.511 5.795 1.00 20.00 H +ATOM 1470 N GLY A 90 -33.968 -66.715 12.789 1.00 47.53 N +ATOM 1471 CA GLY A 90 -34.288 -66.768 14.196 1.00 47.12 C +ATOM 1472 C GLY A 90 -34.302 -68.164 14.787 1.00 47.33 C +ATOM 1473 O GLY A 90 -33.548 -69.053 14.379 1.00 51.59 O +ATOM 1474 H GLY A 90 -34.299 -67.441 12.186 1.00 20.00 H +ATOM 1475 HA2 GLY A 90 -33.541 -66.172 14.741 1.00 20.00 H +ATOM 1476 HA3 GLY A 90 -35.285 -66.325 14.338 1.00 20.00 H +ATOM 1477 N PRO A 91 -35.174 -68.372 15.775 1.00 51.31 N +ATOM 1478 CA PRO A 91 -35.184 -69.637 16.525 1.00 55.28 C +ATOM 1479 C PRO A 91 -35.983 -70.758 15.889 1.00 60.00 C +ATOM 1480 O PRO A 91 -36.198 -71.781 16.552 1.00 58.67 O +ATOM 1481 CB PRO A 91 -35.813 -69.215 17.861 1.00 55.77 C +ATOM 1482 CG PRO A 91 -36.754 -68.124 17.483 1.00 54.14 C +ATOM 1483 CD PRO A 91 -36.124 -67.392 16.327 1.00 51.89 C +ATOM 1484 HA PRO A 91 -34.153 -69.978 16.703 1.00 20.00 H +ATOM 1485 HB2 PRO A 91 -36.353 -70.055 18.323 1.00 20.00 H +ATOM 1486 HB3 PRO A 91 -35.045 -68.846 18.556 1.00 20.00 H +ATOM 1487 HG2 PRO A 91 -37.723 -68.547 17.181 1.00 20.00 H +ATOM 1488 HG3 PRO A 91 -36.901 -67.439 18.331 1.00 20.00 H +ATOM 1489 HD2 PRO A 91 -36.881 -67.114 15.579 1.00 20.00 H +ATOM 1490 HD3 PRO A 91 -35.600 -66.489 16.673 1.00 20.00 H +ATOM 1491 N ASN A 92 -36.445 -70.594 14.648 1.00 61.15 N +ATOM 1492 CA ASN A 92 -37.055 -71.679 13.876 1.00 61.73 C +ATOM 1493 C ASN A 92 -38.385 -72.135 14.479 1.00 61.85 C +ATOM 1494 O ASN A 92 -38.723 -73.321 14.463 1.00 63.84 O +ATOM 1495 CB ASN A 92 -36.084 -72.857 13.735 1.00 59.14 C +ATOM 1496 CG ASN A 92 -36.504 -73.838 12.659 1.00 60.80 C +ATOM 1497 OD1 ASN A 92 -37.183 -73.473 11.701 1.00 64.53 O +ATOM 1498 ND2 ASN A 92 -36.107 -75.095 12.819 1.00 60.19 N +ATOM 1499 H ASN A 92 -36.371 -69.690 14.226 1.00 20.00 H +ATOM 1500 HA ASN A 92 -37.265 -71.304 12.863 1.00 20.00 H +ATOM 1501 HB2 ASN A 92 -35.088 -72.464 13.483 1.00 20.00 H +ATOM 1502 HB3 ASN A 92 -36.035 -73.389 14.696 1.00 20.00 H +ATOM 1503 HD21 ASN A 92 -36.360 -75.789 12.145 1.00 20.00 H +ATOM 1504 HD22 ASN A 92 -35.556 -75.348 13.614 1.00 20.00 H +ATOM 1505 N VAL A 93 -39.155 -71.191 15.015 1.00 57.66 N +ATOM 1506 CA VAL A 93 -40.483 -71.489 15.536 1.00 57.22 C +ATOM 1507 C VAL A 93 -41.448 -70.394 15.107 1.00 57.88 C +ATOM 1508 O VAL A 93 -41.059 -69.244 14.883 1.00 59.12 O +ATOM 1509 CB VAL A 93 -40.494 -71.647 17.074 1.00 57.12 C +ATOM 1510 CG1 VAL A 93 -39.731 -72.899 17.494 1.00 59.34 C +ATOM 1511 CG2 VAL A 93 -39.924 -70.410 17.741 1.00 53.07 C +ATOM 1512 H VAL A 93 -38.813 -70.252 15.061 1.00 20.00 H +ATOM 1513 HA VAL A 93 -40.830 -72.437 15.100 1.00 20.00 H +ATOM 1514 HB VAL A 93 -41.540 -71.760 17.395 1.00 20.00 H +ATOM 1515 HG11 VAL A 93 -39.752 -72.991 18.590 1.00 20.00 H +ATOM 1516 HG12 VAL A 93 -40.203 -73.784 17.043 1.00 20.00 H +ATOM 1517 HG13 VAL A 93 -38.688 -72.825 17.152 1.00 20.00 H +ATOM 1518 HG21 VAL A 93 -39.940 -70.541 18.833 1.00 20.00 H +ATOM 1519 HG22 VAL A 93 -38.888 -70.257 17.406 1.00 20.00 H +ATOM 1520 HG23 VAL A 93 -40.531 -69.534 17.468 1.00 20.00 H +ATOM 1521 N THR A 94 -42.718 -70.767 14.980 1.00 53.92 N +ATOM 1522 CA THR A 94 -43.790 -69.844 14.640 1.00 53.81 C +ATOM 1523 C THR A 94 -44.773 -69.797 15.798 1.00 55.55 C +ATOM 1524 O THR A 94 -45.239 -70.844 16.260 1.00 65.74 O +ATOM 1525 CB THR A 94 -44.503 -70.271 13.355 1.00 54.57 C +ATOM 1526 OG1 THR A 94 -43.564 -70.299 12.272 1.00 53.78 O +ATOM 1527 CG2 THR A 94 -45.632 -69.307 13.025 1.00 53.42 C +ATOM 1528 H THR A 94 -42.948 -71.729 15.125 1.00 20.00 H +ATOM 1529 HA THR A 94 -43.374 -68.837 14.491 1.00 20.00 H +ATOM 1530 HB THR A 94 -44.929 -71.274 13.507 1.00 20.00 H +ATOM 1531 HG1 THR A 94 -43.175 -69.439 12.167 1.00 20.00 H +ATOM 1532 HG21 THR A 94 -46.132 -69.630 12.100 1.00 20.00 H +ATOM 1533 HG22 THR A 94 -46.359 -69.298 13.850 1.00 20.00 H +ATOM 1534 HG23 THR A 94 -45.222 -68.296 12.886 1.00 20.00 H +ATOM 1535 N VAL A 95 -45.086 -68.589 16.264 1.00 51.78 N +ATOM 1536 CA VAL A 95 -45.950 -68.400 17.420 1.00 52.60 C +ATOM 1537 C VAL A 95 -47.070 -67.432 17.081 1.00 51.80 C +ATOM 1538 O VAL A 95 -46.917 -66.530 16.251 1.00 52.38 O +ATOM 1539 CB VAL A 95 -45.165 -67.885 18.648 1.00 58.59 C +ATOM 1540 CG1 VAL A 95 -44.073 -68.871 19.037 1.00 59.54 C +ATOM 1541 CG2 VAL A 95 -44.577 -66.513 18.370 1.00 59.24 C +ATOM 1542 H VAL A 95 -44.714 -67.783 15.803 1.00 20.00 H +ATOM 1543 HA VAL A 95 -46.402 -69.366 17.690 1.00 20.00 H +ATOM 1544 HB VAL A 95 -45.868 -67.797 19.490 1.00 20.00 H +ATOM 1545 HG11 VAL A 95 -43.527 -68.488 19.911 1.00 20.00 H +ATOM 1546 HG12 VAL A 95 -44.527 -69.842 19.285 1.00 20.00 H +ATOM 1547 HG13 VAL A 95 -43.376 -68.997 18.195 1.00 20.00 H +ATOM 1548 HG21 VAL A 95 -44.023 -66.165 19.254 1.00 20.00 H +ATOM 1549 HG22 VAL A 95 -43.894 -66.575 17.510 1.00 20.00 H +ATOM 1550 HG23 VAL A 95 -45.388 -65.806 18.143 1.00 20.00 H +ATOM 1551 N ARG A 96 -48.217 -67.633 17.725 0.50 52.06 N +ATOM 1552 CA ARG A 96 -49.302 -66.669 17.643 0.50 53.83 C +ATOM 1553 C ARG A 96 -49.073 -65.576 18.679 0.50 53.82 C +ATOM 1554 O ARG A 96 -48.817 -65.867 19.851 0.50 54.19 O +ATOM 1555 CB ARG A 96 -50.649 -67.349 17.865 0.50 53.29 C +ATOM 1556 CG ARG A 96 -51.819 -66.397 17.737 0.50 53.47 C +ATOM 1557 CD ARG A 96 -53.128 -67.187 17.567 0.50 52.64 C +ATOM 1558 NE ARG A 96 -53.158 -67.953 16.299 0.50 51.61 N +ATOM 1559 CZ ARG A 96 -54.039 -67.781 15.305 0.50 50.91 C +ATOM 1560 NH1 ARG A 96 -54.932 -66.831 15.448 0.50 53.73 N +ATOM 1561 NH2 ARG A 96 -54.003 -68.479 14.170 0.50 49.22 N +ATOM 1562 H ARG A 96 -48.334 -68.460 18.274 0.50 20.00 H +ATOM 1563 HA ARG A 96 -49.306 -66.207 16.645 0.50 20.00 H +ATOM 1564 HB2 ARG A 96 -50.765 -68.149 17.119 0.50 20.00 H +ATOM 1565 HB3 ARG A 96 -50.660 -67.784 18.875 0.50 20.00 H +ATOM 1566 HG2 ARG A 96 -51.884 -65.776 18.643 0.50 20.00 H +ATOM 1567 HG3 ARG A 96 -51.668 -65.751 16.860 0.50 20.00 H +ATOM 1568 HD2 ARG A 96 -53.230 -67.889 18.408 0.50 20.00 H +ATOM 1569 HD3 ARG A 96 -53.972 -66.481 17.575 0.50 20.00 H +ATOM 1570 HE ARG A 96 -52.461 -68.659 16.175 0.50 20.00 H +ATOM 1571 HH11 ARG A 96 -55.577 -66.636 14.710 0.50 20.00 H +ATOM 1572 HH12 ARG A 96 -54.967 -66.301 16.296 0.50 20.00 H +ATOM 1573 HH21 ARG A 96 -54.653 -68.276 13.438 0.50 20.00 H +ATOM 1574 HH22 ARG A 96 -53.326 -69.205 14.051 0.50 20.00 H +ATOM 1575 N ALA A 97 -49.123 -64.320 18.238 1.00 51.19 N +ATOM 1576 CA ALA A 97 -48.777 -63.191 19.089 1.00 51.89 C +ATOM 1577 C ALA A 97 -49.760 -62.052 18.869 1.00 50.30 C +ATOM 1578 O ALA A 97 -50.397 -61.946 17.819 1.00 51.91 O +ATOM 1579 CB ALA A 97 -47.344 -62.706 18.824 1.00 52.21 C +ATOM 1580 H ALA A 97 -49.407 -64.148 17.295 1.00 20.00 H +ATOM 1581 HA ALA A 97 -48.842 -63.502 20.142 1.00 20.00 H +ATOM 1582 HB1 ALA A 97 -47.117 -61.855 19.482 1.00 20.00 H +ATOM 1583 HB2 ALA A 97 -46.637 -63.524 19.026 1.00 20.00 H +ATOM 1584 HB3 ALA A 97 -47.252 -62.392 17.774 1.00 20.00 H +ATOM 1585 N ASN A 98 -49.879 -61.203 19.887 1.00 52.59 N +ATOM 1586 CA ASN A 98 -50.652 -59.979 19.753 1.00 51.30 C +ATOM 1587 C ASN A 98 -49.956 -59.030 18.787 1.00 51.04 C +ATOM 1588 O ASN A 98 -48.726 -58.929 18.769 1.00 46.85 O +ATOM 1589 CB ASN A 98 -50.831 -59.312 21.117 1.00 47.30 C +ATOM 1590 CG ASN A 98 -51.750 -60.092 22.029 1.00 50.72 C +ATOM 1591 OD1 ASN A 98 -52.812 -60.555 21.611 1.00 52.03 O +ATOM 1592 ND2 ASN A 98 -51.344 -60.249 23.283 1.00 44.03 N +ATOM 1593 H ASN A 98 -49.430 -61.410 20.756 1.00 20.00 H +ATOM 1594 HA ASN A 98 -51.647 -60.218 19.350 1.00 20.00 H +ATOM 1595 HB2 ASN A 98 -49.846 -59.226 21.599 1.00 20.00 H +ATOM 1596 HB3 ASN A 98 -51.254 -58.308 20.965 1.00 20.00 H +ATOM 1597 HD21 ASN A 98 -51.908 -60.761 23.931 1.00 20.00 H +ATOM 1598 HD22 ASN A 98 -50.474 -59.856 23.580 1.00 20.00 H +ATOM 1599 N ILE A 99 -50.747 -58.342 17.968 1.00 48.97 N +ATOM 1600 CA ILE A 99 -50.219 -57.417 16.970 1.00 48.52 C +ATOM 1601 C ILE A 99 -51.068 -56.153 16.979 1.00 52.79 C +ATOM 1602 O ILE A 99 -52.292 -56.222 16.825 1.00 51.36 O +ATOM 1603 CB ILE A 99 -50.196 -58.037 15.556 1.00 48.49 C +ATOM 1604 CG1 ILE A 99 -49.307 -59.279 15.508 1.00 52.52 C +ATOM 1605 CG2 ILE A 99 -49.708 -57.031 14.539 1.00 50.98 C +ATOM 1606 CD1 ILE A 99 -49.230 -59.916 14.142 1.00 53.58 C +ATOM 1607 H ILE A 99 -51.737 -58.463 18.038 1.00 20.00 H +ATOM 1608 HA ILE A 99 -49.188 -57.144 17.240 1.00 20.00 H +ATOM 1609 HB ILE A 99 -51.222 -58.333 15.293 1.00 20.00 H +ATOM 1610 HG12 ILE A 99 -48.291 -58.991 15.815 1.00 20.00 H +ATOM 1611 HG13 ILE A 99 -49.707 -60.020 16.215 1.00 20.00 H +ATOM 1612 HG21 ILE A 99 -49.700 -57.493 13.541 1.00 20.00 H +ATOM 1613 HG22 ILE A 99 -50.379 -56.160 14.534 1.00 20.00 H +ATOM 1614 HG23 ILE A 99 -48.690 -56.708 14.802 1.00 20.00 H +ATOM 1615 HD11 ILE A 99 -48.576 -60.799 14.185 1.00 20.00 H +ATOM 1616 HD12 ILE A 99 -50.237 -60.221 13.823 1.00 20.00 H +ATOM 1617 HD13 ILE A 99 -48.821 -59.192 13.422 1.00 20.00 H +ATOM 1618 N ALA A 100 -50.427 -55.000 17.170 1.00 48.43 N +ATOM 1619 CA ALA A 100 -51.094 -53.708 17.018 1.00 48.59 C +ATOM 1620 C ALA A 100 -50.899 -53.262 15.575 1.00 51.58 C +ATOM 1621 O ALA A 100 -49.813 -52.823 15.188 1.00 49.76 O +ATOM 1622 CB ALA A 100 -50.550 -52.686 18.010 1.00 46.85 C +ATOM 1623 H ALA A 100 -49.460 -55.019 17.425 1.00 20.00 H +ATOM 1624 HA ALA A 100 -52.171 -53.832 17.202 1.00 20.00 H +ATOM 1625 HB1 ALA A 100 -51.070 -51.727 17.871 1.00 20.00 H +ATOM 1626 HB2 ALA A 100 -50.715 -53.047 19.036 1.00 20.00 H +ATOM 1627 HB3 ALA A 100 -49.472 -52.547 17.839 1.00 20.00 H +ATOM 1628 N ALA A 101 -51.958 -53.390 14.777 1.00 48.06 N +ATOM 1629 CA ALA A 101 -51.941 -52.999 13.373 1.00 49.12 C +ATOM 1630 C ALA A 101 -52.112 -51.489 13.281 1.00 48.99 C +ATOM 1631 O ALA A 101 -53.210 -50.971 13.505 1.00 47.08 O +ATOM 1632 CB ALA A 101 -53.045 -53.729 12.613 1.00 48.87 C +ATOM 1633 H ALA A 101 -52.801 -53.771 15.158 1.00 20.00 H +ATOM 1634 HA ALA A 101 -50.972 -53.270 12.929 1.00 20.00 H +ATOM 1635 HB1 ALA A 101 -53.024 -53.427 11.555 1.00 20.00 H +ATOM 1636 HB2 ALA A 101 -52.885 -54.815 12.688 1.00 20.00 H +ATOM 1637 HB3 ALA A 101 -54.022 -53.471 13.048 1.00 20.00 H +ATOM 1638 N ILE A 102 -51.037 -50.783 12.942 1.00 47.89 N +ATOM 1639 CA ILE A 102 -51.032 -49.324 12.983 1.00 48.56 C +ATOM 1640 C ILE A 102 -51.760 -48.785 11.761 1.00 47.77 C +ATOM 1641 O ILE A 102 -51.323 -48.986 10.623 1.00 47.90 O +ATOM 1642 CB ILE A 102 -49.602 -48.774 13.054 1.00 48.11 C +ATOM 1643 CG1 ILE A 102 -48.941 -49.214 14.357 1.00 47.60 C +ATOM 1644 CG2 ILE A 102 -49.612 -47.261 12.924 1.00 48.44 C +ATOM 1645 CD1 ILE A 102 -47.443 -49.068 14.346 1.00 45.61 C +ATOM 1646 H ILE A 102 -50.210 -51.265 12.651 1.00 20.00 H +ATOM 1647 HA ILE A 102 -51.572 -48.989 13.881 1.00 20.00 H +ATOM 1648 HB ILE A 102 -49.028 -49.193 12.214 1.00 20.00 H +ATOM 1649 HG12 ILE A 102 -49.345 -48.602 15.177 1.00 20.00 H +ATOM 1650 HG13 ILE A 102 -49.187 -50.272 14.533 1.00 20.00 H +ATOM 1651 HG21 ILE A 102 -48.581 -46.881 12.977 1.00 20.00 H +ATOM 1652 HG22 ILE A 102 -50.058 -46.979 11.959 1.00 20.00 H +ATOM 1653 HG23 ILE A 102 -50.205 -46.827 13.743 1.00 20.00 H +ATOM 1654 HD11 ILE A 102 -47.035 -49.402 15.311 1.00 20.00 H +ATOM 1655 HD12 ILE A 102 -47.021 -49.682 13.537 1.00 20.00 H +ATOM 1656 HD13 ILE A 102 -47.179 -48.013 14.181 1.00 20.00 H +ATOM 1657 N THR A 103 -52.857 -48.068 12.000 1.00 48.31 N +ATOM 1658 CA THR A 103 -53.682 -47.520 10.934 1.00 51.95 C +ATOM 1659 C THR A 103 -53.528 -46.017 10.764 1.00 53.86 C +ATOM 1660 O THR A 103 -53.912 -45.489 9.714 1.00 53.40 O +ATOM 1661 CB THR A 103 -55.158 -47.844 11.194 1.00 49.73 C +ATOM 1662 OG1 THR A 103 -55.517 -47.427 12.520 1.00 48.78 O +ATOM 1663 CG2 THR A 103 -55.396 -49.341 11.055 1.00 46.81 C +ATOM 1664 H THR A 103 -53.124 -47.900 12.949 1.00 20.00 H +ATOM 1665 HA THR A 103 -53.396 -47.998 9.986 1.00 20.00 H +ATOM 1666 HB THR A 103 -55.773 -47.314 10.451 1.00 20.00 H +ATOM 1667 HG1 THR A 103 -55.497 -46.479 12.570 1.00 20.00 H +ATOM 1668 HG21 THR A 103 -56.457 -49.563 11.243 1.00 20.00 H +ATOM 1669 HG22 THR A 103 -55.129 -49.662 10.037 1.00 20.00 H +ATOM 1670 HG23 THR A 103 -54.774 -49.880 11.784 1.00 20.00 H +ATOM 1671 N GLU A 104 -52.977 -45.323 11.758 1.00 59.84 N +ATOM 1672 CA GLU A 104 -52.821 -43.877 11.706 1.00 59.08 C +ATOM 1673 C GLU A 104 -51.667 -43.493 12.619 1.00 53.17 C +ATOM 1674 O GLU A 104 -51.497 -44.088 13.686 1.00 51.94 O +ATOM 1675 CB GLU A 104 -54.112 -43.169 12.133 1.00 63.98 C +ATOM 1676 CG GLU A 104 -54.168 -41.678 11.818 1.00 71.25 C +ATOM 1677 CD GLU A 104 -55.501 -41.057 12.204 1.00 78.44 C +ATOM 1678 OE1 GLU A 104 -56.523 -41.775 12.179 1.00 78.55 O +ATOM 1679 OE2 GLU A 104 -55.526 -39.855 12.540 1.00 81.12 O +ATOM 1680 H GLU A 104 -52.659 -45.813 12.569 1.00 20.00 H +ATOM 1681 HA GLU A 104 -52.576 -43.569 10.679 1.00 20.00 H +ATOM 1682 HB2 GLU A 104 -54.954 -43.657 11.620 1.00 20.00 H +ATOM 1683 HB3 GLU A 104 -54.224 -43.292 13.220 1.00 20.00 H +ATOM 1684 HG2 GLU A 104 -53.366 -41.169 12.373 1.00 20.00 H +ATOM 1685 HG3 GLU A 104 -54.012 -41.538 10.738 1.00 20.00 H +ATOM 1686 N SER A 105 -50.880 -42.505 12.198 1.00 52.36 N +ATOM 1687 CA SER A 105 -49.701 -42.130 12.967 1.00 52.90 C +ATOM 1688 C SER A 105 -49.227 -40.747 12.547 1.00 56.02 C +ATOM 1689 O SER A 105 -49.611 -40.228 11.496 1.00 55.09 O +ATOM 1690 CB SER A 105 -48.575 -43.155 12.795 1.00 52.18 C +ATOM 1691 OG SER A 105 -48.157 -43.223 11.443 1.00 51.43 O +ATOM 1692 H SER A 105 -51.099 -42.019 11.352 1.00 20.00 H +ATOM 1693 HA SER A 105 -49.967 -42.092 14.034 1.00 20.00 H +ATOM 1694 HB2 SER A 105 -47.721 -42.860 13.422 1.00 20.00 H +ATOM 1695 HB3 SER A 105 -48.937 -44.145 13.110 1.00 20.00 H +ATOM 1696 HG SER A 105 -48.871 -42.957 10.876 1.00 20.00 H +ATOM 1697 N ASP A 106 -48.383 -40.160 13.395 1.00 57.25 N +ATOM 1698 CA ASP A 106 -47.789 -38.855 13.138 1.00 57.62 C +ATOM 1699 C ASP A 106 -46.415 -38.818 13.787 1.00 53.49 C +ATOM 1700 O ASP A 106 -46.292 -39.064 14.990 1.00 49.94 O +ATOM 1701 CB ASP A 106 -48.673 -37.725 13.682 1.00 63.67 C +ATOM 1702 CG ASP A 106 -48.215 -36.350 13.223 1.00 68.07 C +ATOM 1703 OD1 ASP A 106 -48.079 -36.148 11.997 1.00 64.38 O +ATOM 1704 OD2 ASP A 106 -47.996 -35.470 14.084 1.00 71.36 O +ATOM 1705 H ASP A 106 -48.148 -40.635 14.243 1.00 20.00 H +ATOM 1706 HA ASP A 106 -47.670 -38.713 12.054 1.00 20.00 H +ATOM 1707 HB2 ASP A 106 -49.704 -37.887 13.335 1.00 20.00 H +ATOM 1708 HB3 ASP A 106 -48.647 -37.756 14.781 1.00 20.00 H +ATOM 1709 N LYS A 107 -45.391 -38.532 12.982 1.00 54.98 N +ATOM 1710 CA LYS A 107 -44.016 -38.385 13.466 1.00 62.64 C +ATOM 1711 C LYS A 107 -43.542 -39.637 14.203 1.00 62.64 C +ATOM 1712 O LYS A 107 -42.810 -39.565 15.192 1.00 60.56 O +ATOM 1713 CB LYS A 107 -43.872 -37.146 14.355 1.00 65.95 C +ATOM 1714 CG LYS A 107 -44.214 -35.833 13.668 1.00 68.82 C +ATOM 1715 CD LYS A 107 -43.988 -34.650 14.602 1.00 69.60 C +ATOM 1716 CE LYS A 107 -44.422 -33.341 13.958 0.00 70.37 C +ATOM 1717 NZ LYS A 107 -44.210 -32.174 14.861 0.00 71.91 N +ATOM 1718 H LYS A 107 -45.569 -38.413 12.005 1.00 20.00 H +ATOM 1719 HA LYS A 107 -43.358 -38.245 12.596 1.00 20.00 H +ATOM 1720 HB2 LYS A 107 -44.540 -37.265 15.221 1.00 20.00 H +ATOM 1721 HB3 LYS A 107 -42.829 -37.091 14.701 1.00 20.00 H +ATOM 1722 HG2 LYS A 107 -43.577 -35.716 12.779 1.00 20.00 H +ATOM 1723 HG3 LYS A 107 -45.270 -35.852 13.362 1.00 20.00 H +ATOM 1724 HD2 LYS A 107 -44.569 -34.805 15.523 1.00 20.00 H +ATOM 1725 HD3 LYS A 107 -42.918 -34.589 14.850 1.00 20.00 H +ATOM 1726 HE2 LYS A 107 -43.839 -33.188 13.038 0.00 20.00 H +ATOM 1727 HE3 LYS A 107 -45.491 -33.406 13.708 0.00 20.00 H +ATOM 1728 HZ1 LYS A 107 -44.271 -31.327 14.332 0.00 20.00 H +ATOM 1729 HZ2 LYS A 107 -44.911 -32.173 15.574 0.00 20.00 H +ATOM 1730 HZ3 LYS A 107 -43.306 -32.239 15.283 0.00 20.00 H +ATOM 1731 N PHE A 108 -43.958 -40.803 13.711 1.00 58.92 N +ATOM 1732 CA PHE A 108 -43.556 -42.081 14.284 1.00 59.67 C +ATOM 1733 C PHE A 108 -42.662 -42.867 13.332 1.00 60.70 C +ATOM 1734 O PHE A 108 -41.532 -43.212 13.687 1.00 59.57 O +ATOM 1735 CB PHE A 108 -44.799 -42.901 14.668 1.00 56.71 C +ATOM 1736 CG PHE A 108 -44.493 -44.312 15.082 1.00 56.16 C +ATOM 1737 CD1 PHE A 108 -43.935 -44.585 16.321 1.00 54.12 C +ATOM 1738 CD2 PHE A 108 -44.767 -45.368 14.227 1.00 57.18 C +ATOM 1739 CE1 PHE A 108 -43.652 -45.886 16.696 1.00 55.36 C +ATOM 1740 CE2 PHE A 108 -44.488 -46.669 14.597 1.00 54.34 C +ATOM 1741 CZ PHE A 108 -43.932 -46.927 15.832 1.00 57.05 C +ATOM 1742 H PHE A 108 -44.569 -40.801 12.919 1.00 20.00 H +ATOM 1743 HA PHE A 108 -42.984 -41.891 15.204 1.00 20.00 H +ATOM 1744 HB2 PHE A 108 -45.302 -42.396 15.505 1.00 20.00 H +ATOM 1745 HB3 PHE A 108 -45.474 -42.933 13.800 1.00 20.00 H +ATOM 1746 HD1 PHE A 108 -43.719 -43.774 17.000 1.00 20.00 H +ATOM 1747 HD2 PHE A 108 -45.204 -45.171 13.259 1.00 20.00 H +ATOM 1748 HE1 PHE A 108 -43.213 -46.088 17.662 1.00 20.00 H +ATOM 1749 HE2 PHE A 108 -44.705 -47.482 13.920 1.00 20.00 H +ATOM 1750 HZ PHE A 108 -43.715 -47.944 16.124 1.00 20.00 H +ATOM 1751 N PHE A 109 -43.146 -43.167 12.130 1.00 55.55 N +ATOM 1752 CA PHE A 109 -42.295 -43.776 11.120 1.00 56.80 C +ATOM 1753 C PHE A 109 -41.271 -42.758 10.633 1.00 58.18 C +ATOM 1754 O PHE A 109 -41.589 -41.583 10.423 1.00 58.96 O +ATOM 1755 CB PHE A 109 -43.130 -44.291 9.947 1.00 54.40 C +ATOM 1756 CG PHE A 109 -44.081 -45.397 10.316 1.00 52.87 C +ATOM 1757 CD1 PHE A 109 -43.605 -46.629 10.737 1.00 51.80 C +ATOM 1758 CD2 PHE A 109 -45.452 -45.209 10.230 1.00 52.86 C +ATOM 1759 CE1 PHE A 109 -44.475 -47.647 11.075 1.00 52.24 C +ATOM 1760 CE2 PHE A 109 -46.329 -46.226 10.567 1.00 53.97 C +ATOM 1761 CZ PHE A 109 -45.841 -47.445 10.988 1.00 52.19 C +ATOM 1762 H PHE A 109 -44.104 -42.972 11.919 1.00 20.00 H +ATOM 1763 HA PHE A 109 -41.756 -44.627 11.562 1.00 20.00 H +ATOM 1764 HB2 PHE A 109 -43.715 -43.451 9.543 1.00 20.00 H +ATOM 1765 HB3 PHE A 109 -42.445 -44.667 9.173 1.00 20.00 H +ATOM 1766 HD1 PHE A 109 -42.540 -46.795 10.802 1.00 20.00 H +ATOM 1767 HD2 PHE A 109 -45.840 -44.258 9.896 1.00 20.00 H +ATOM 1768 HE1 PHE A 109 -44.090 -48.600 11.407 1.00 20.00 H +ATOM 1769 HE2 PHE A 109 -47.395 -46.065 10.500 1.00 20.00 H +ATOM 1770 HZ PHE A 109 -46.523 -48.240 11.249 1.00 20.00 H +ATOM 1771 N ILE A 110 -40.031 -43.211 10.465 1.00 55.88 N +ATOM 1772 CA ILE A 110 -38.932 -42.352 10.042 1.00 53.74 C +ATOM 1773 C ILE A 110 -38.684 -42.564 8.557 1.00 52.62 C +ATOM 1774 O ILE A 110 -38.546 -43.704 8.096 1.00 52.01 O +ATOM 1775 CB ILE A 110 -37.653 -42.629 10.851 1.00 55.71 C +ATOM 1776 CG1 ILE A 110 -37.920 -42.468 12.346 1.00 56.76 C +ATOM 1777 CG2 ILE A 110 -36.532 -41.694 10.413 1.00 55.11 C +ATOM 1778 CD1 ILE A 110 -36.704 -42.723 13.206 1.00 58.57 C +ATOM 1779 H ILE A 110 -39.846 -44.179 10.636 1.00 20.00 H +ATOM 1780 HA ILE A 110 -39.215 -41.301 10.199 1.00 20.00 H +ATOM 1781 HB ILE A 110 -37.339 -43.666 10.661 1.00 20.00 H +ATOM 1782 HG12 ILE A 110 -38.267 -41.440 12.529 1.00 20.00 H +ATOM 1783 HG13 ILE A 110 -38.708 -43.178 12.637 1.00 20.00 H +ATOM 1784 HG21 ILE A 110 -35.627 -41.906 11.001 1.00 20.00 H +ATOM 1785 HG22 ILE A 110 -36.320 -41.850 9.345 1.00 20.00 H +ATOM 1786 HG23 ILE A 110 -36.840 -40.651 10.577 1.00 20.00 H +ATOM 1787 HD11 ILE A 110 -36.969 -42.590 14.265 1.00 20.00 H +ATOM 1788 HD12 ILE A 110 -36.349 -43.751 13.043 1.00 20.00 H +ATOM 1789 HD13 ILE A 110 -35.908 -42.014 12.935 1.00 20.00 H +ATOM 1790 N ASN A 111 -38.621 -41.464 7.815 1.00 51.45 N +ATOM 1791 CA ASN A 111 -38.333 -41.517 6.390 1.00 53.73 C +ATOM 1792 C ASN A 111 -36.944 -42.098 6.152 1.00 60.17 C +ATOM 1793 O ASN A 111 -35.940 -41.530 6.593 1.00 57.74 O +ATOM 1794 CB ASN A 111 -38.440 -40.110 5.805 1.00 54.88 C +ATOM 1795 CG ASN A 111 -38.410 -40.099 4.294 1.00 59.42 C +ATOM 1796 OD1 ASN A 111 -38.334 -41.148 3.654 1.00 61.30 O +ATOM 1797 ND2 ASN A 111 -38.486 -38.908 3.712 1.00 60.89 N +ATOM 1798 H ASN A 111 -38.776 -40.576 8.248 1.00 20.00 H +ATOM 1799 HA ASN A 111 -39.072 -42.160 5.890 1.00 20.00 H +ATOM 1800 HB2 ASN A 111 -39.386 -39.661 6.141 1.00 20.00 H +ATOM 1801 HB3 ASN A 111 -37.597 -39.510 6.177 1.00 20.00 H +ATOM 1802 HD21 ASN A 111 -38.483 -38.838 2.714 1.00 20.00 H +ATOM 1803 HD22 ASN A 111 -38.546 -38.081 4.271 1.00 20.00 H +ATOM 1804 N GLY A 112 -36.888 -43.235 5.462 1.00 59.02 N +ATOM 1805 CA GLY A 112 -35.626 -43.862 5.121 1.00 54.38 C +ATOM 1806 C GLY A 112 -35.079 -44.833 6.144 1.00 57.69 C +ATOM 1807 O GLY A 112 -33.970 -45.349 5.951 1.00 59.57 O +ATOM 1808 H GLY A 112 -37.741 -43.669 5.171 1.00 20.00 H +ATOM 1809 HA2 GLY A 112 -35.764 -44.408 4.176 1.00 20.00 H +ATOM 1810 HA3 GLY A 112 -34.881 -43.066 4.978 1.00 20.00 H +ATOM 1811 N SER A 113 -35.817 -45.105 7.223 1.00 58.55 N +ATOM 1812 CA SER A 113 -35.316 -45.992 8.269 1.00 59.34 C +ATOM 1813 C SER A 113 -35.342 -47.456 7.861 1.00 56.20 C +ATOM 1814 O SER A 113 -34.631 -48.266 8.468 1.00 52.57 O +ATOM 1815 CB SER A 113 -36.127 -45.808 9.549 1.00 60.79 C +ATOM 1816 OG SER A 113 -37.437 -46.329 9.389 1.00 66.27 O +ATOM 1817 H SER A 113 -36.725 -44.696 7.316 1.00 20.00 H +ATOM 1818 HA SER A 113 -34.273 -45.721 8.490 1.00 20.00 H +ATOM 1819 HB2 SER A 113 -35.626 -46.336 10.374 1.00 20.00 H +ATOM 1820 HB3 SER A 113 -36.191 -44.736 9.786 1.00 20.00 H +ATOM 1821 HG SER A 113 -37.820 -45.985 8.591 1.00 20.00 H +ATOM 1822 N ASN A 114 -36.155 -47.810 6.867 1.00 55.79 N +ATOM 1823 CA ASN A 114 -36.289 -49.175 6.360 1.00 53.05 C +ATOM 1824 C ASN A 114 -36.898 -50.139 7.378 1.00 49.52 C +ATOM 1825 O ASN A 114 -36.837 -51.355 7.185 1.00 51.18 O +ATOM 1826 CB ASN A 114 -34.946 -49.728 5.856 1.00 58.15 C +ATOM 1827 CG ASN A 114 -35.122 -50.832 4.830 1.00 65.15 C +ATOM 1828 OD1 ASN A 114 -34.274 -51.714 4.707 1.00 66.39 O +ATOM 1829 ND2 ASN A 114 -36.218 -50.782 4.080 1.00 63.81 N +ATOM 1830 H ASN A 114 -36.710 -47.096 6.440 1.00 20.00 H +ATOM 1831 HA ASN A 114 -36.969 -49.148 5.496 1.00 20.00 H +ATOM 1832 HB2 ASN A 114 -34.376 -48.907 5.397 1.00 20.00 H +ATOM 1833 HB3 ASN A 114 -34.385 -50.129 6.713 1.00 20.00 H +ATOM 1834 HD21 ASN A 114 -36.378 -51.479 3.382 1.00 20.00 H +ATOM 1835 HD22 ASN A 114 -36.882 -50.046 4.214 1.00 20.00 H +ATOM 1836 N TRP A 115 -37.493 -49.653 8.464 1.00 48.06 N +ATOM 1837 CA TRP A 115 -38.294 -50.518 9.318 1.00 46.98 C +ATOM 1838 C TRP A 115 -39.759 -50.109 9.261 1.00 47.01 C +ATOM 1839 O TRP A 115 -40.087 -48.919 9.223 1.00 44.62 O +ATOM 1840 CB TRP A 115 -37.803 -50.559 10.777 1.00 50.09 C +ATOM 1841 CG TRP A 115 -37.618 -49.264 11.523 1.00 52.75 C +ATOM 1842 CD1 TRP A 115 -36.441 -48.600 11.712 1.00 51.52 C +ATOM 1843 CD2 TRP A 115 -38.614 -48.525 12.251 1.00 55.60 C +ATOM 1844 NE1 TRP A 115 -36.645 -47.480 12.478 1.00 50.61 N +ATOM 1845 CE2 TRP A 115 -37.968 -47.410 12.824 1.00 55.62 C +ATOM 1846 CE3 TRP A 115 -39.990 -48.687 12.457 1.00 51.08 C +ATOM 1847 CZ2 TRP A 115 -38.648 -46.461 13.586 1.00 56.26 C +ATOM 1848 CZ3 TRP A 115 -40.665 -47.739 13.218 1.00 53.54 C +ATOM 1849 CH2 TRP A 115 -39.992 -46.642 13.771 1.00 55.44 C +ATOM 1850 H TRP A 115 -37.389 -48.686 8.696 1.00 20.00 H +ATOM 1851 HA TRP A 115 -38.226 -51.543 8.925 1.00 20.00 H +ATOM 1852 HB2 TRP A 115 -38.531 -51.157 11.345 1.00 20.00 H +ATOM 1853 HB3 TRP A 115 -36.830 -51.071 10.775 1.00 20.00 H +ATOM 1854 HD1 TRP A 115 -35.486 -48.911 11.316 1.00 20.00 H +ATOM 1855 HE1 TRP A 115 -35.941 -46.821 12.741 1.00 20.00 H +ATOM 1856 HE3 TRP A 115 -40.515 -49.530 12.034 1.00 20.00 H +ATOM 1857 HZ2 TRP A 115 -38.133 -45.614 14.015 1.00 20.00 H +ATOM 1858 HZ3 TRP A 115 -41.726 -47.850 13.385 1.00 20.00 H +ATOM 1859 HH2 TRP A 115 -40.546 -45.923 14.356 1.00 20.00 H +ATOM 1860 N GLU A 116 -40.630 -51.117 9.239 1.00 53.31 N +ATOM 1861 CA GLU A 116 -42.065 -50.925 9.111 1.00 49.96 C +ATOM 1862 C GLU A 116 -42.819 -51.195 10.406 1.00 49.90 C +ATOM 1863 O GLU A 116 -44.053 -51.151 10.407 1.00 54.21 O +ATOM 1864 CB GLU A 116 -42.613 -51.820 7.990 1.00 54.82 C +ATOM 1865 CG GLU A 116 -42.153 -51.437 6.577 1.00 57.49 C +ATOM 1866 CD GLU A 116 -40.894 -52.170 6.124 1.00 59.40 C +ATOM 1867 OE1 GLU A 116 -40.723 -53.357 6.476 1.00 55.74 O +ATOM 1868 OE2 GLU A 116 -40.073 -51.551 5.413 1.00 67.99 O +ATOM 1869 H GLU A 116 -40.279 -52.051 9.314 1.00 20.00 H +ATOM 1870 HA GLU A 116 -42.255 -49.880 8.825 1.00 20.00 H +ATOM 1871 HB2 GLU A 116 -42.289 -52.853 8.187 1.00 20.00 H +ATOM 1872 HB3 GLU A 116 -43.711 -51.769 8.018 1.00 20.00 H +ATOM 1873 HG2 GLU A 116 -42.964 -51.671 5.872 1.00 20.00 H +ATOM 1874 HG3 GLU A 116 -41.951 -50.356 6.558 1.00 20.00 H +ATOM 1875 N GLY A 117 -42.118 -51.468 11.500 1.00 52.82 N +ATOM 1876 CA GLY A 117 -42.768 -51.731 12.771 1.00 47.94 C +ATOM 1877 C GLY A 117 -41.736 -51.844 13.870 1.00 49.50 C +ATOM 1878 O GLY A 117 -40.535 -51.667 13.647 1.00 46.32 O +ATOM 1879 H GLY A 117 -41.120 -51.493 11.447 1.00 20.00 H +ATOM 1880 HA2 GLY A 117 -43.458 -50.907 13.004 1.00 20.00 H +ATOM 1881 HA3 GLY A 117 -43.332 -52.673 12.703 1.00 20.00 H +ATOM 1882 N ILE A 118 -42.220 -52.148 15.073 1.00 49.96 N +ATOM 1883 CA ILE A 118 -41.374 -52.191 16.263 1.00 53.22 C +ATOM 1884 C ILE A 118 -41.658 -53.471 17.036 1.00 51.75 C +ATOM 1885 O ILE A 118 -42.822 -53.853 17.212 1.00 54.57 O +ATOM 1886 CB ILE A 118 -41.588 -50.965 17.175 1.00 54.89 C +ATOM 1887 CG1 ILE A 118 -41.191 -49.677 16.460 1.00 55.27 C +ATOM 1888 CG2 ILE A 118 -40.786 -51.099 18.461 1.00 52.47 C +ATOM 1889 CD1 ILE A 118 -41.216 -48.465 17.361 1.00 54.93 C +ATOM 1890 H ILE A 118 -43.194 -52.354 15.165 1.00 20.00 H +ATOM 1891 HA ILE A 118 -40.319 -52.203 15.953 1.00 20.00 H +ATOM 1892 HB ILE A 118 -42.656 -50.907 17.432 1.00 20.00 H +ATOM 1893 HG12 ILE A 118 -40.172 -49.797 16.063 1.00 20.00 H +ATOM 1894 HG13 ILE A 118 -41.891 -49.509 15.628 1.00 20.00 H +ATOM 1895 HG21 ILE A 118 -40.955 -50.215 19.093 1.00 20.00 H +ATOM 1896 HG22 ILE A 118 -41.107 -52.002 19.001 1.00 20.00 H +ATOM 1897 HG23 ILE A 118 -39.716 -51.178 18.219 1.00 20.00 H +ATOM 1898 HD11 ILE A 118 -40.921 -47.574 16.787 1.00 20.00 H +ATOM 1899 HD12 ILE A 118 -42.232 -48.325 17.759 1.00 20.00 H +ATOM 1900 HD13 ILE A 118 -40.513 -48.613 18.194 1.00 20.00 H +ATOM 1901 N LEU A 119 -40.597 -54.132 17.506 1.00 47.73 N +ATOM 1902 CA LEU A 119 -40.707 -55.291 18.389 1.00 48.33 C +ATOM 1903 C LEU A 119 -40.314 -54.837 19.790 1.00 48.99 C +ATOM 1904 O LEU A 119 -39.128 -54.724 20.108 1.00 48.70 O +ATOM 1905 CB LEU A 119 -39.827 -56.441 17.908 1.00 49.17 C +ATOM 1906 CG LEU A 119 -39.828 -57.690 18.790 1.00 48.01 C +ATOM 1907 CD1 LEU A 119 -41.246 -58.173 19.012 1.00 51.13 C +ATOM 1908 CD2 LEU A 119 -38.974 -58.797 18.185 1.00 50.65 C +ATOM 1909 H LEU A 119 -39.685 -53.819 17.241 1.00 20.00 H +ATOM 1910 HA LEU A 119 -41.751 -55.635 18.412 1.00 20.00 H +ATOM 1911 HB2 LEU A 119 -40.172 -56.735 16.906 1.00 20.00 H +ATOM 1912 HB3 LEU A 119 -38.793 -56.072 17.846 1.00 20.00 H +ATOM 1913 HG LEU A 119 -39.398 -57.420 19.766 1.00 20.00 H +ATOM 1914 HD11 LEU A 119 -41.233 -59.071 19.647 1.00 20.00 H +ATOM 1915 HD12 LEU A 119 -41.829 -57.382 19.507 1.00 20.00 H +ATOM 1916 HD13 LEU A 119 -41.706 -58.416 18.043 1.00 20.00 H +ATOM 1917 HD21 LEU A 119 -38.996 -59.679 18.842 1.00 20.00 H +ATOM 1918 HD22 LEU A 119 -39.371 -59.067 17.196 1.00 20.00 H +ATOM 1919 HD23 LEU A 119 -37.937 -58.444 18.080 1.00 20.00 H +ATOM 1920 N GLY A 120 -41.312 -54.571 20.626 1.00 47.28 N +ATOM 1921 CA GLY A 120 -41.053 -54.183 21.997 1.00 49.78 C +ATOM 1922 C GLY A 120 -40.744 -55.381 22.869 1.00 48.11 C +ATOM 1923 O GLY A 120 -41.611 -56.232 23.087 1.00 45.43 O +ATOM 1924 H GLY A 120 -42.256 -54.640 20.304 1.00 20.00 H +ATOM 1925 HA2 GLY A 120 -40.194 -53.496 22.017 1.00 20.00 H +ATOM 1926 HA3 GLY A 120 -41.941 -53.671 22.396 1.00 20.00 H +ATOM 1927 N LEU A 121 -39.513 -55.461 23.377 1.00 45.20 N +ATOM 1928 CA LEU A 121 -39.040 -56.633 24.103 1.00 45.03 C +ATOM 1929 C LEU A 121 -39.068 -56.464 25.617 1.00 46.39 C +ATOM 1930 O LEU A 121 -38.599 -57.355 26.331 1.00 46.69 O +ATOM 1931 CB LEU A 121 -37.617 -56.994 23.652 1.00 46.59 C +ATOM 1932 CG LEU A 121 -37.478 -57.460 22.199 1.00 46.63 C +ATOM 1933 CD1 LEU A 121 -36.022 -57.574 21.756 1.00 40.95 C +ATOM 1934 CD2 LEU A 121 -38.198 -58.786 22.004 1.00 50.66 C +ATOM 1935 H LEU A 121 -38.891 -54.687 23.255 1.00 20.00 H +ATOM 1936 HA LEU A 121 -39.691 -57.483 23.852 1.00 20.00 H +ATOM 1937 HB2 LEU A 121 -36.985 -56.103 23.783 1.00 20.00 H +ATOM 1938 HB3 LEU A 121 -37.251 -57.802 24.302 1.00 20.00 H +ATOM 1939 HG LEU A 121 -37.968 -56.712 21.558 1.00 20.00 H +ATOM 1940 HD11 LEU A 121 -35.982 -57.911 20.710 1.00 20.00 H +ATOM 1941 HD12 LEU A 121 -35.534 -56.592 21.844 1.00 20.00 H +ATOM 1942 HD13 LEU A 121 -35.500 -58.301 22.395 1.00 20.00 H +ATOM 1943 HD21 LEU A 121 -38.092 -59.111 20.958 1.00 20.00 H +ATOM 1944 HD22 LEU A 121 -37.758 -59.543 22.670 1.00 20.00 H +ATOM 1945 HD23 LEU A 121 -39.265 -58.663 22.243 1.00 20.00 H +ATOM 1946 N ALA A 122 -39.607 -55.361 26.130 1.00 49.79 N +ATOM 1947 CA ALA A 122 -39.695 -55.171 27.572 1.00 48.41 C +ATOM 1948 C ALA A 122 -40.911 -55.924 28.115 1.00 51.96 C +ATOM 1949 O ALA A 122 -41.520 -56.753 27.434 1.00 49.82 O +ATOM 1950 CB ALA A 122 -39.722 -53.684 27.911 1.00 43.90 C +ATOM 1951 H ALA A 122 -39.957 -54.652 25.517 1.00 20.00 H +ATOM 1952 HA ALA A 122 -38.798 -55.605 28.038 1.00 20.00 H +ATOM 1953 HB1 ALA A 122 -39.789 -53.557 29.002 1.00 20.00 H +ATOM 1954 HB2 ALA A 122 -38.802 -53.207 27.542 1.00 20.00 H +ATOM 1955 HB3 ALA A 122 -40.595 -53.215 27.434 1.00 20.00 H +ATOM 1956 N TYR A 123 -41.281 -55.636 29.357 1.00 45.33 N +ATOM 1957 CA TYR A 123 -42.249 -56.442 30.085 1.00 43.30 C +ATOM 1958 C TYR A 123 -43.664 -55.885 29.948 1.00 45.51 C +ATOM 1959 O TYR A 123 -43.881 -54.768 29.477 1.00 42.91 O +ATOM 1960 CB TYR A 123 -41.869 -56.523 31.560 1.00 38.96 C +ATOM 1961 CG TYR A 123 -40.562 -57.214 31.829 1.00 46.04 C +ATOM 1962 CD1 TYR A 123 -40.480 -58.598 31.839 1.00 43.44 C +ATOM 1963 CD2 TYR A 123 -39.416 -56.484 32.102 1.00 51.24 C +ATOM 1964 CE1 TYR A 123 -39.284 -59.239 32.100 1.00 44.55 C +ATOM 1965 CE2 TYR A 123 -38.216 -57.114 32.366 1.00 48.92 C +ATOM 1966 CZ TYR A 123 -38.155 -58.490 32.363 1.00 50.69 C +ATOM 1967 OH TYR A 123 -36.963 -59.132 32.629 1.00 52.45 O +ATOM 1968 H TYR A 123 -40.881 -54.838 29.808 1.00 20.00 H +ATOM 1969 HA TYR A 123 -42.244 -57.463 29.675 1.00 20.00 H +ATOM 1970 HB2 TYR A 123 -41.804 -55.498 31.955 1.00 20.00 H +ATOM 1971 HB3 TYR A 123 -42.663 -57.070 32.090 1.00 20.00 H +ATOM 1972 HD1 TYR A 123 -41.365 -59.184 31.640 1.00 20.00 H +ATOM 1973 HD2 TYR A 123 -39.462 -55.405 32.108 1.00 20.00 H +ATOM 1974 HE1 TYR A 123 -39.233 -60.318 32.098 1.00 20.00 H +ATOM 1975 HE2 TYR A 123 -37.331 -56.531 32.574 1.00 20.00 H +ATOM 1976 HH TYR A 123 -37.130 -59.907 33.153 1.00 20.00 H +ATOM 1977 N ALA A 124 -44.635 -56.673 30.417 1.00 50.57 N +ATOM 1978 CA ALA A 124 -46.036 -56.337 30.180 1.00 52.33 C +ATOM 1979 C ALA A 124 -46.437 -55.058 30.900 1.00 52.59 C +ATOM 1980 O ALA A 124 -47.375 -54.374 30.475 1.00 49.89 O +ATOM 1981 CB ALA A 124 -46.934 -57.498 30.605 1.00 53.64 C +ATOM 1982 H ALA A 124 -44.401 -57.497 30.933 1.00 20.00 H +ATOM 1983 HA ALA A 124 -46.182 -56.177 29.101 1.00 20.00 H +ATOM 1984 HB1 ALA A 124 -47.986 -57.234 30.422 1.00 20.00 H +ATOM 1985 HB2 ALA A 124 -46.674 -58.394 30.023 1.00 20.00 H +ATOM 1986 HB3 ALA A 124 -46.788 -57.701 31.676 1.00 20.00 H +ATOM 1987 N GLU A 125 -45.726 -54.704 31.977 1.00 50.64 N +ATOM 1988 CA GLU A 125 -46.155 -53.594 32.826 1.00 48.30 C +ATOM 1989 C GLU A 125 -46.263 -52.285 32.058 1.00 47.60 C +ATOM 1990 O GLU A 125 -47.029 -51.395 32.448 1.00 55.83 O +ATOM 1991 CB GLU A 125 -45.197 -53.429 34.010 1.00 57.48 C +ATOM 1992 CG GLU A 125 -45.823 -52.717 35.209 1.00 65.27 C +ATOM 1993 CD GLU A 125 -44.792 -52.243 36.209 1.00 69.33 C +ATOM 1994 OE1 GLU A 125 -44.155 -53.100 36.856 1.00 73.91 O +ATOM 1995 OE2 GLU A 125 -44.609 -51.013 36.328 1.00 66.97 O +ATOM 1996 H GLU A 125 -44.891 -55.205 32.204 1.00 20.00 H +ATOM 1997 HA GLU A 125 -47.150 -53.828 33.232 1.00 20.00 H +ATOM 1998 HB2 GLU A 125 -44.867 -54.428 34.332 1.00 20.00 H +ATOM 1999 HB3 GLU A 125 -44.327 -52.846 33.675 1.00 20.00 H +ATOM 2000 HG2 GLU A 125 -46.388 -51.846 34.846 1.00 20.00 H +ATOM 2001 HG3 GLU A 125 -46.509 -53.414 35.714 1.00 20.00 H +ATOM 2002 N ILE A 126 -45.519 -52.147 30.963 1.00 44.49 N +ATOM 2003 CA ILE A 126 -45.575 -50.946 30.147 1.00 46.63 C +ATOM 2004 C ILE A 126 -46.180 -51.212 28.771 1.00 48.36 C +ATOM 2005 O ILE A 126 -46.046 -50.386 27.866 1.00 46.98 O +ATOM 2006 CB ILE A 126 -44.181 -50.301 30.033 1.00 51.99 C +ATOM 2007 CG1 ILE A 126 -43.242 -51.201 29.238 1.00 53.08 C +ATOM 2008 CG2 ILE A 126 -43.606 -50.059 31.418 1.00 51.00 C +ATOM 2009 CD1 ILE A 126 -41.777 -50.920 29.479 1.00 57.52 C +ATOM 2010 H ILE A 126 -44.905 -52.889 30.695 1.00 20.00 H +ATOM 2011 HA ILE A 126 -46.226 -50.219 30.654 1.00 20.00 H +ATOM 2012 HB ILE A 126 -44.279 -49.337 29.512 1.00 20.00 H +ATOM 2013 HG12 ILE A 126 -43.445 -52.246 29.516 1.00 20.00 H +ATOM 2014 HG13 ILE A 126 -43.451 -51.060 28.167 1.00 20.00 H +ATOM 2015 HG21 ILE A 126 -42.611 -49.598 31.327 1.00 20.00 H +ATOM 2016 HG22 ILE A 126 -44.271 -49.386 31.979 1.00 20.00 H +ATOM 2017 HG23 ILE A 126 -43.519 -51.017 31.951 1.00 20.00 H +ATOM 2018 HD11 ILE A 126 -41.167 -51.606 28.873 1.00 20.00 H +ATOM 2019 HD12 ILE A 126 -41.551 -49.881 29.195 1.00 20.00 H +ATOM 2020 HD13 ILE A 126 -41.546 -51.067 30.544 1.00 20.00 H +ATOM 2021 N ALA A 127 -46.852 -52.348 28.593 1.00 49.78 N +ATOM 2022 CA ALA A 127 -47.554 -52.585 27.340 1.00 52.28 C +ATOM 2023 C ALA A 127 -48.800 -51.710 27.268 1.00 49.17 C +ATOM 2024 O ALA A 127 -49.457 -51.452 28.280 1.00 47.55 O +ATOM 2025 CB ALA A 127 -47.922 -54.062 27.199 1.00 49.54 C +ATOM 2026 H ALA A 127 -46.874 -53.036 29.318 1.00 20.00 H +ATOM 2027 HA ALA A 127 -46.895 -52.314 26.502 1.00 20.00 H +ATOM 2028 HB1 ALA A 127 -48.451 -54.220 26.247 1.00 20.00 H +ATOM 2029 HB2 ALA A 127 -47.006 -54.671 27.215 1.00 20.00 H +ATOM 2030 HB3 ALA A 127 -48.574 -54.359 28.034 1.00 20.00 H +ATOM 2031 N ARG A 128 -49.098 -51.215 26.068 1.00 56.11 N +ATOM 2032 CA ARG A 128 -50.337 -50.478 25.845 1.00 54.76 C +ATOM 2033 C ARG A 128 -51.361 -51.383 25.170 1.00 54.88 C +ATOM 2034 O ARG A 128 -51.002 -52.161 24.279 1.00 50.19 O +ATOM 2035 CB ARG A 128 -50.100 -49.245 24.968 1.00 54.94 C +ATOM 2036 CG ARG A 128 -49.106 -48.235 25.530 1.00 61.17 C +ATOM 2037 CD ARG A 128 -49.634 -47.564 26.782 1.00 64.34 C +ATOM 2038 NE ARG A 128 -50.724 -46.625 26.514 0.00 62.85 N +ATOM 2039 CZ ARG A 128 -50.561 -45.313 26.370 0.00 63.15 C +ATOM 2040 NH1 ARG A 128 -51.608 -44.534 26.135 0.00 63.49 N +ATOM 2041 NH2 ARG A 128 -49.350 -44.780 26.464 0.00 63.50 N +ATOM 2042 H ARG A 128 -48.462 -51.351 25.308 1.00 20.00 H +ATOM 2043 HA ARG A 128 -50.745 -50.146 26.811 1.00 20.00 H +ATOM 2044 HB2 ARG A 128 -49.724 -49.587 23.993 1.00 20.00 H +ATOM 2045 HB3 ARG A 128 -51.064 -48.734 24.830 1.00 20.00 H +ATOM 2046 HG2 ARG A 128 -48.168 -48.756 25.773 1.00 20.00 H +ATOM 2047 HG3 ARG A 128 -48.911 -47.465 24.769 1.00 20.00 H +ATOM 2048 HD2 ARG A 128 -50.002 -48.342 27.467 1.00 20.00 H +ATOM 2049 HD3 ARG A 128 -48.809 -47.015 27.260 1.00 20.00 H +ATOM 2050 HE ARG A 128 -51.650 -46.993 26.434 0.00 20.00 H +ATOM 2051 HH11 ARG A 128 -51.484 -43.547 26.029 0.00 20.00 H +ATOM 2052 HH12 ARG A 128 -52.522 -44.933 26.064 0.00 20.00 H +ATOM 2053 HH21 ARG A 128 -49.228 -43.793 26.358 0.00 20.00 H +ATOM 2054 HH22 ARG A 128 -48.559 -45.365 26.641 0.00 20.00 H +ATOM 2055 N PRO A 129 -52.656 -51.304 25.532 1.00 59.39 N +ATOM 2056 CA PRO A 129 -53.254 -50.356 26.482 1.00 59.08 C +ATOM 2057 C PRO A 129 -52.975 -50.664 27.961 1.00 59.82 C +ATOM 2058 O PRO A 129 -53.034 -49.740 28.777 1.00 68.01 O +ATOM 2059 CB PRO A 129 -54.754 -50.475 26.189 1.00 57.30 C +ATOM 2060 CG PRO A 129 -54.921 -51.853 25.663 1.00 52.54 C +ATOM 2061 CD PRO A 129 -53.683 -52.116 24.852 1.00 55.94 C +ATOM 2062 HA PRO A 129 -52.920 -49.333 26.256 1.00 20.00 H +ATOM 2063 HB2 PRO A 129 -55.342 -50.336 27.108 1.00 20.00 H +ATOM 2064 HB3 PRO A 129 -55.064 -49.732 25.439 1.00 20.00 H +ATOM 2065 HG2 PRO A 129 -55.002 -52.575 26.489 1.00 20.00 H +ATOM 2066 HG3 PRO A 129 -55.818 -51.918 25.030 1.00 20.00 H +ATOM 2067 HD2 PRO A 129 -53.418 -53.183 24.871 1.00 20.00 H +ATOM 2068 HD3 PRO A 129 -53.817 -51.790 23.810 1.00 20.00 H +ATOM 2069 N ASP A 130 -52.688 -51.919 28.299 1.00 56.31 N +ATOM 2070 CA ASP A 130 -52.343 -52.288 29.674 1.00 56.98 C +ATOM 2071 C ASP A 130 -51.612 -53.637 29.669 1.00 57.82 C +ATOM 2072 O ASP A 130 -51.280 -54.185 28.614 1.00 52.51 O +ATOM 2073 CB ASP A 130 -53.583 -52.320 30.566 1.00 62.31 C +ATOM 2074 CG ASP A 130 -54.677 -53.208 30.016 1.00 66.02 C +ATOM 2075 OD1 ASP A 130 -54.460 -54.428 29.884 1.00 70.08 O +ATOM 2076 OD2 ASP A 130 -55.769 -52.682 29.722 1.00 68.67 O +ATOM 2077 H ASP A 130 -52.708 -52.629 27.595 1.00 20.00 H +ATOM 2078 HA ASP A 130 -51.654 -51.533 30.080 1.00 20.00 H +ATOM 2079 HB2 ASP A 130 -53.292 -52.694 31.559 1.00 20.00 H +ATOM 2080 HB3 ASP A 130 -53.975 -51.297 30.660 1.00 20.00 H +ATOM 2081 N ASP A 131 -51.377 -54.178 30.873 1.00 63.20 N +ATOM 2082 CA ASP A 131 -50.557 -55.371 31.068 1.00 73.44 C +ATOM 2083 C ASP A 131 -51.290 -56.670 30.741 1.00 63.11 C +ATOM 2084 O ASP A 131 -50.681 -57.748 30.833 1.00 62.58 O +ATOM 2085 CB ASP A 131 -49.983 -55.401 32.508 1.00 75.80 C +ATOM 2086 CG ASP A 131 -51.020 -55.821 33.579 1.00 80.12 C +ATOM 2087 OD1 ASP A 131 -52.214 -56.017 33.237 1.00115.98 O +ATOM 2088 OD2 ASP A 131 -50.625 -55.966 34.758 1.00 76.43 O +ATOM 2089 H ASP A 131 -51.783 -53.743 31.677 1.00 20.00 H +ATOM 2090 HA ASP A 131 -49.697 -55.305 30.385 1.00 20.00 H +ATOM 2091 HB2 ASP A 131 -49.147 -56.115 32.534 1.00 20.00 H +ATOM 2092 HB3 ASP A 131 -49.614 -54.395 32.757 1.00 20.00 H +ATOM 2093 N SER A 132 -52.555 -56.596 30.293 1.00 86.87 N +ATOM 2094 CA SER A 132 -53.247 -57.793 29.838 1.00 57.17 C +ATOM 2095 C SER A 132 -52.867 -58.178 28.419 1.00 53.19 C +ATOM 2096 O SER A 132 -53.139 -59.314 28.004 1.00 51.22 O +ATOM 2097 CB SER A 132 -54.764 -57.607 29.916 1.00 58.28 C +ATOM 2098 OG SER A 132 -55.188 -56.531 29.090 1.00 56.09 O +ATOM 2099 H SER A 132 -53.024 -55.713 30.272 1.00 20.00 H +ATOM 2100 HA SER A 132 -52.977 -58.630 30.499 1.00 20.00 H +ATOM 2101 HB2 SER A 132 -55.257 -58.532 29.583 1.00 20.00 H +ATOM 2102 HB3 SER A 132 -55.047 -57.394 30.957 1.00 20.00 H +ATOM 2103 HG SER A 132 -55.050 -55.708 29.545 1.00 20.00 H +ATOM 2104 N LEU A 133 -52.261 -57.255 27.670 1.00 49.18 N +ATOM 2105 CA LEU A 133 -51.757 -57.532 26.328 1.00 48.82 C +ATOM 2106 C LEU A 133 -50.354 -58.103 26.459 1.00 55.70 C +ATOM 2107 O LEU A 133 -49.389 -57.374 26.707 1.00 59.81 O +ATOM 2108 CB LEU A 133 -51.744 -56.271 25.481 1.00 42.27 C +ATOM 2109 CG LEU A 133 -51.797 -56.578 23.987 1.00 48.96 C +ATOM 2110 CD1 LEU A 133 -53.223 -56.897 23.589 1.00 44.50 C +ATOM 2111 CD2 LEU A 133 -51.234 -55.446 23.155 1.00 53.40 C +ATOM 2112 H LEU A 133 -52.147 -56.334 28.044 1.00 20.00 H +ATOM 2113 HA LEU A 133 -52.399 -58.280 25.840 1.00 20.00 H +ATOM 2114 HB2 LEU A 133 -52.617 -55.657 25.747 1.00 20.00 H +ATOM 2115 HB3 LEU A 133 -50.822 -55.710 25.695 1.00 20.00 H +ATOM 2116 HG LEU A 133 -51.184 -57.473 23.804 1.00 20.00 H +ATOM 2117 HD11 LEU A 133 -53.263 -57.118 22.512 1.00 20.00 H +ATOM 2118 HD12 LEU A 133 -53.575 -57.771 24.156 1.00 20.00 H +ATOM 2119 HD13 LEU A 133 -53.867 -56.033 23.810 1.00 20.00 H +ATOM 2120 HD21 LEU A 133 -51.292 -55.710 22.089 1.00 20.00 H +ATOM 2121 HD22 LEU A 133 -51.817 -54.531 23.339 1.00 20.00 H +ATOM 2122 HD23 LEU A 133 -50.184 -55.274 23.433 1.00 20.00 H +ATOM 2123 N GLU A 134 -50.239 -59.409 26.310 1.00 49.65 N +ATOM 2124 CA GLU A 134 -48.981 -60.106 26.494 1.00 49.92 C +ATOM 2125 C GLU A 134 -47.987 -59.697 25.404 1.00 55.63 C +ATOM 2126 O GLU A 134 -48.358 -59.683 24.217 1.00 55.97 O +ATOM 2127 CB GLU A 134 -49.258 -61.605 26.468 1.00 51.56 C +ATOM 2128 CG GLU A 134 -48.079 -62.514 26.639 1.00 57.46 C +ATOM 2129 CD GLU A 134 -48.537 -63.942 26.833 1.00 60.87 C +ATOM 2130 OE1 GLU A 134 -48.378 -64.487 27.946 1.00 61.43 O +ATOM 2131 OE2 GLU A 134 -49.077 -64.514 25.864 1.00 60.24 O +ATOM 2132 H GLU A 134 -51.050 -59.938 26.061 1.00 20.00 H +ATOM 2133 HA GLU A 134 -48.554 -59.845 27.473 1.00 20.00 H +ATOM 2134 HB2 GLU A 134 -49.969 -61.826 27.278 1.00 20.00 H +ATOM 2135 HB3 GLU A 134 -49.722 -61.841 25.499 1.00 20.00 H +ATOM 2136 HG2 GLU A 134 -47.444 -62.456 25.743 1.00 20.00 H +ATOM 2137 HG3 GLU A 134 -47.501 -62.196 27.519 1.00 20.00 H +ATOM 2138 N PRO A 135 -46.754 -59.334 25.755 1.00 46.10 N +ATOM 2139 CA PRO A 135 -45.781 -58.953 24.725 1.00 43.31 C +ATOM 2140 C PRO A 135 -45.341 -60.157 23.909 1.00 43.31 C +ATOM 2141 O PRO A 135 -45.646 -61.307 24.228 1.00 48.02 O +ATOM 2142 CB PRO A 135 -44.609 -58.363 25.524 1.00 45.86 C +ATOM 2143 CG PRO A 135 -45.147 -58.102 26.899 1.00 45.16 C +ATOM 2144 CD PRO A 135 -46.208 -59.146 27.112 1.00 46.86 C +ATOM 2145 HA PRO A 135 -46.201 -58.183 24.060 1.00 20.00 H +ATOM 2146 HB2 PRO A 135 -43.775 -59.079 25.568 1.00 20.00 H +ATOM 2147 HB3 PRO A 135 -44.264 -57.426 25.063 1.00 20.00 H +ATOM 2148 HG2 PRO A 135 -44.350 -58.203 27.651 1.00 20.00 H +ATOM 2149 HG3 PRO A 135 -45.581 -57.093 26.958 1.00 20.00 H +ATOM 2150 HD2 PRO A 135 -46.983 -58.788 27.806 1.00 20.00 H +ATOM 2151 HD3 PRO A 135 -45.774 -60.080 27.498 1.00 20.00 H +ATOM 2152 N PHE A 136 -44.596 -59.874 22.839 1.00 49.18 N +ATOM 2153 CA PHE A 136 -44.208 -60.938 21.917 1.00 45.53 C +ATOM 2154 C PHE A 136 -43.362 -62.002 22.605 1.00 48.06 C +ATOM 2155 O PHE A 136 -43.620 -63.203 22.467 1.00 49.51 O +ATOM 2156 CB PHE A 136 -43.454 -60.358 20.719 1.00 49.40 C +ATOM 2157 CG PHE A 136 -42.898 -61.407 19.788 1.00 50.18 C +ATOM 2158 CD1 PHE A 136 -43.698 -61.976 18.806 1.00 51.21 C +ATOM 2159 CD2 PHE A 136 -41.576 -61.823 19.892 1.00 52.16 C +ATOM 2160 CE1 PHE A 136 -43.194 -62.941 17.957 1.00 53.61 C +ATOM 2161 CE2 PHE A 136 -41.069 -62.790 19.044 1.00 52.47 C +ATOM 2162 CZ PHE A 136 -41.880 -63.347 18.074 1.00 54.53 C +ATOM 2163 H PHE A 136 -44.303 -58.933 22.668 1.00 20.00 H +ATOM 2164 HA PHE A 136 -45.119 -61.424 21.538 1.00 20.00 H +ATOM 2165 HB2 PHE A 136 -44.145 -59.719 20.150 1.00 20.00 H +ATOM 2166 HB3 PHE A 136 -42.618 -59.750 21.096 1.00 20.00 H +ATOM 2167 HD1 PHE A 136 -44.726 -61.660 18.705 1.00 20.00 H +ATOM 2168 HD2 PHE A 136 -40.937 -61.385 20.645 1.00 20.00 H +ATOM 2169 HE1 PHE A 136 -43.828 -63.379 17.201 1.00 20.00 H +ATOM 2170 HE2 PHE A 136 -40.042 -63.109 19.139 1.00 20.00 H +ATOM 2171 HZ PHE A 136 -41.486 -64.100 17.407 1.00 20.00 H +ATOM 2172 N PHE A 137 -42.340 -61.578 23.348 1.00 46.92 N +ATOM 2173 CA PHE A 137 -41.395 -62.543 23.895 1.00 46.56 C +ATOM 2174 C PHE A 137 -42.044 -63.422 24.952 1.00 46.58 C +ATOM 2175 O PHE A 137 -41.746 -64.617 25.035 1.00 48.40 O +ATOM 2176 CB PHE A 137 -40.170 -61.829 24.468 1.00 43.42 C +ATOM 2177 CG PHE A 137 -38.958 -62.703 24.552 1.00 47.23 C +ATOM 2178 CD1 PHE A 137 -38.136 -62.871 23.451 1.00 52.02 C +ATOM 2179 CD2 PHE A 137 -38.659 -63.383 25.720 1.00 51.95 C +ATOM 2180 CE1 PHE A 137 -37.028 -63.689 23.517 1.00 53.97 C +ATOM 2181 CE2 PHE A 137 -37.547 -64.203 25.791 1.00 53.20 C +ATOM 2182 CZ PHE A 137 -36.733 -64.355 24.688 1.00 51.26 C +ATOM 2183 H PHE A 137 -42.222 -60.602 23.529 1.00 20.00 H +ATOM 2184 HA PHE A 137 -41.050 -63.196 23.080 1.00 20.00 H +ATOM 2185 HB2 PHE A 137 -39.935 -60.968 23.824 1.00 20.00 H +ATOM 2186 HB3 PHE A 137 -40.415 -61.474 25.480 1.00 20.00 H +ATOM 2187 HD1 PHE A 137 -38.365 -62.356 22.530 1.00 20.00 H +ATOM 2188 HD2 PHE A 137 -39.299 -63.272 26.583 1.00 20.00 H +ATOM 2189 HE1 PHE A 137 -36.392 -63.808 22.653 1.00 20.00 H +ATOM 2190 HE2 PHE A 137 -37.317 -64.723 26.709 1.00 20.00 H +ATOM 2191 HZ PHE A 137 -35.865 -64.995 24.741 1.00 20.00 H +ATOM 2192 N ASP A 138 -42.920 -62.850 25.778 1.00 45.59 N +ATOM 2193 CA ASP A 138 -43.678 -63.667 26.717 1.00 44.49 C +ATOM 2194 C ASP A 138 -44.416 -64.783 25.992 1.00 46.81 C +ATOM 2195 O ASP A 138 -44.387 -65.943 26.418 1.00 48.46 O +ATOM 2196 CB ASP A 138 -44.652 -62.794 27.505 1.00 48.32 C +ATOM 2197 CG ASP A 138 -43.957 -61.952 28.547 1.00 55.69 C +ATOM 2198 OD1 ASP A 138 -43.978 -62.334 29.739 1.00 60.94 O +ATOM 2199 OD2 ASP A 138 -43.364 -60.924 28.165 1.00 50.41 O +ATOM 2200 H ASP A 138 -43.057 -61.860 25.753 1.00 20.00 H +ATOM 2201 HA ASP A 138 -42.980 -64.128 27.432 1.00 20.00 H +ATOM 2202 HB2 ASP A 138 -45.175 -62.127 26.804 1.00 20.00 H +ATOM 2203 HB3 ASP A 138 -45.383 -63.445 28.007 1.00 20.00 H +ATOM 2204 N SER A 139 -45.056 -64.453 24.868 1.00 46.69 N +ATOM 2205 CA SER A 139 -45.813 -65.455 24.126 1.00 47.43 C +ATOM 2206 C SER A 139 -44.898 -66.487 23.481 1.00 48.00 C +ATOM 2207 O SER A 139 -45.238 -67.674 23.417 1.00 45.92 O +ATOM 2208 CB SER A 139 -46.677 -64.777 23.065 1.00 49.55 C +ATOM 2209 OG SER A 139 -47.694 -64.007 23.669 1.00 51.21 O +ATOM 2210 H SER A 139 -45.016 -63.512 24.532 1.00 20.00 H +ATOM 2211 HA SER A 139 -46.482 -65.982 24.822 1.00 20.00 H +ATOM 2212 HB2 SER A 139 -46.044 -64.121 22.449 1.00 20.00 H +ATOM 2213 HB3 SER A 139 -47.137 -65.547 22.428 1.00 20.00 H +ATOM 2214 HG SER A 139 -48.081 -64.498 24.384 1.00 20.00 H +ATOM 2215 N LEU A 140 -43.746 -66.049 22.971 1.00 49.03 N +ATOM 2216 CA LEU A 140 -42.818 -66.968 22.322 1.00 50.05 C +ATOM 2217 C LEU A 140 -42.324 -68.029 23.294 1.00 46.96 C +ATOM 2218 O LEU A 140 -42.267 -69.218 22.964 1.00 46.85 O +ATOM 2219 CB LEU A 140 -41.641 -66.188 21.740 1.00 52.57 C +ATOM 2220 CG LEU A 140 -40.516 -67.022 21.139 1.00 59.18 C +ATOM 2221 CD1 LEU A 140 -40.867 -67.454 19.727 1.00 60.66 C +ATOM 2222 CD2 LEU A 140 -39.225 -66.232 21.164 1.00 61.62 C +ATOM 2223 H LEU A 140 -43.516 -65.078 23.035 1.00 20.00 H +ATOM 2224 HA LEU A 140 -43.336 -67.475 21.494 1.00 20.00 H +ATOM 2225 HB2 LEU A 140 -42.032 -65.531 20.949 1.00 20.00 H +ATOM 2226 HB3 LEU A 140 -41.212 -65.576 22.547 1.00 20.00 H +ATOM 2227 HG LEU A 140 -40.385 -67.923 21.756 1.00 20.00 H +ATOM 2228 HD11 LEU A 140 -40.044 -68.054 19.311 1.00 20.00 H +ATOM 2229 HD12 LEU A 140 -41.787 -68.057 19.746 1.00 20.00 H +ATOM 2230 HD13 LEU A 140 -41.025 -66.564 19.100 1.00 20.00 H +ATOM 2231 HD21 LEU A 140 -38.416 -66.837 20.729 1.00 20.00 H +ATOM 2232 HD22 LEU A 140 -39.348 -65.310 20.577 1.00 20.00 H +ATOM 2233 HD23 LEU A 140 -38.973 -65.975 22.203 1.00 20.00 H +ATOM 2234 N VAL A 141 -41.965 -67.610 24.506 1.00 47.46 N +ATOM 2235 CA VAL A 141 -41.437 -68.547 25.493 1.00 47.42 C +ATOM 2236 C VAL A 141 -42.516 -69.523 25.949 1.00 48.27 C +ATOM 2237 O VAL A 141 -42.264 -70.725 26.095 1.00 52.02 O +ATOM 2238 CB VAL A 141 -40.822 -67.781 26.678 1.00 46.92 C +ATOM 2239 CG1 VAL A 141 -40.595 -68.714 27.856 1.00 46.89 C +ATOM 2240 CG2 VAL A 141 -39.522 -67.130 26.249 1.00 45.80 C +ATOM 2241 H VAL A 141 -42.058 -66.643 24.743 1.00 20.00 H +ATOM 2242 HA VAL A 141 -40.633 -69.133 25.024 1.00 20.00 H +ATOM 2243 HB VAL A 141 -41.526 -66.993 26.985 1.00 20.00 H +ATOM 2244 HG11 VAL A 141 -40.156 -68.150 28.692 1.00 20.00 H +ATOM 2245 HG12 VAL A 141 -41.556 -69.147 28.171 1.00 20.00 H +ATOM 2246 HG13 VAL A 141 -39.909 -69.521 27.558 1.00 20.00 H +ATOM 2247 HG21 VAL A 141 -39.087 -66.584 27.099 1.00 20.00 H +ATOM 2248 HG22 VAL A 141 -38.818 -67.905 25.912 1.00 20.00 H +ATOM 2249 HG23 VAL A 141 -39.718 -66.429 25.425 1.00 20.00 H +ATOM 2250 N LYS A 142 -43.731 -69.028 26.183 1.00 52.82 N +ATOM 2251 CA LYS A 142 -44.802 -69.905 26.647 1.00 54.66 C +ATOM 2252 C LYS A 142 -45.173 -70.950 25.600 1.00 53.12 C +ATOM 2253 O LYS A 142 -45.494 -72.094 25.943 1.00 52.97 O +ATOM 2254 CB LYS A 142 -46.033 -69.083 27.027 1.00 56.66 C +ATOM 2255 CG LYS A 142 -45.926 -68.343 28.349 1.00 59.02 C +ATOM 2256 CD LYS A 142 -47.288 -67.791 28.741 1.00 64.72 C +ATOM 2257 CE LYS A 142 -47.212 -66.857 29.937 1.00 69.64 C +ATOM 2258 NZ LYS A 142 -46.577 -65.553 29.594 1.00 75.13 N +ATOM 2259 H LYS A 142 -43.909 -68.054 26.041 1.00 20.00 H +ATOM 2260 HA LYS A 142 -44.459 -70.435 27.548 1.00 20.00 H +ATOM 2261 HB2 LYS A 142 -46.207 -68.341 26.233 1.00 20.00 H +ATOM 2262 HB3 LYS A 142 -46.894 -69.765 27.086 1.00 20.00 H +ATOM 2263 HG2 LYS A 142 -45.575 -69.036 29.128 1.00 20.00 H +ATOM 2264 HG3 LYS A 142 -45.211 -67.513 28.246 1.00 20.00 H +ATOM 2265 HD2 LYS A 142 -47.704 -67.237 27.886 1.00 20.00 H +ATOM 2266 HD3 LYS A 142 -47.951 -68.632 28.991 1.00 20.00 H +ATOM 2267 HE2 LYS A 142 -48.231 -66.669 30.305 1.00 20.00 H +ATOM 2268 HE3 LYS A 142 -46.621 -67.342 30.728 1.00 20.00 H +ATOM 2269 HZ1 LYS A 142 -46.437 -65.020 30.429 1.00 20.00 H +ATOM 2270 HZ2 LYS A 142 -45.695 -65.718 29.152 1.00 20.00 H +ATOM 2271 HZ3 LYS A 142 -47.173 -65.046 28.971 1.00 20.00 H +ATOM 2272 N GLN A 143 -45.133 -70.579 24.318 1.00 53.70 N +ATOM 2273 CA GLN A 143 -45.636 -71.466 23.273 1.00 52.26 C +ATOM 2274 C GLN A 143 -44.581 -72.444 22.776 1.00 56.15 C +ATOM 2275 O GLN A 143 -44.930 -73.482 22.203 1.00 53.11 O +ATOM 2276 CB GLN A 143 -46.181 -70.640 22.104 1.00 51.60 C +ATOM 2277 CG GLN A 143 -47.472 -69.895 22.419 1.00 49.52 C +ATOM 2278 CD GLN A 143 -47.888 -68.949 21.308 1.00 51.05 C +ATOM 2279 OE1 GLN A 143 -47.733 -69.254 20.125 1.00 50.85 O +ATOM 2280 NE2 GLN A 143 -48.414 -67.790 21.685 1.00 39.97 N +ATOM 2281 H GLN A 143 -44.756 -69.686 24.072 1.00 20.00 H +ATOM 2282 HA GLN A 143 -46.471 -72.053 23.684 1.00 20.00 H +ATOM 2283 HB2 GLN A 143 -45.417 -69.902 21.816 1.00 20.00 H +ATOM 2284 HB3 GLN A 143 -46.371 -71.319 21.260 1.00 20.00 H +ATOM 2285 HG2 GLN A 143 -48.275 -70.631 22.573 1.00 20.00 H +ATOM 2286 HG3 GLN A 143 -47.326 -69.313 23.341 1.00 20.00 H +ATOM 2287 HE21 GLN A 143 -48.702 -67.124 20.997 1.00 20.00 H +ATOM 2288 HE22 GLN A 143 -48.522 -67.583 22.657 1.00 20.00 H +ATOM 2289 N THR A 144 -43.307 -72.142 22.982 1.00 52.07 N +ATOM 2290 CA THR A 144 -42.207 -72.965 22.500 1.00 55.02 C +ATOM 2291 C THR A 144 -41.348 -73.429 23.672 1.00 57.21 C +ATOM 2292 O THR A 144 -41.674 -73.214 24.842 1.00 58.97 O +ATOM 2293 CB THR A 144 -41.355 -72.195 21.488 1.00 55.70 C +ATOM 2294 OG1 THR A 144 -40.722 -71.094 22.151 1.00 53.03 O +ATOM 2295 CG2 THR A 144 -42.221 -71.661 20.367 1.00 58.21 C +ATOM 2296 H THR A 144 -43.091 -71.310 23.493 1.00 20.00 H +ATOM 2297 HA THR A 144 -42.615 -73.855 21.999 1.00 20.00 H +ATOM 2298 HB THR A 144 -40.598 -72.874 21.068 1.00 20.00 H +ATOM 2299 HG1 THR A 144 -41.363 -70.628 22.674 1.00 20.00 H +ATOM 2300 HG21 THR A 144 -41.595 -71.111 19.649 1.00 20.00 H +ATOM 2301 HG22 THR A 144 -42.716 -72.499 19.855 1.00 20.00 H +ATOM 2302 HG23 THR A 144 -42.982 -70.985 20.782 1.00 20.00 H +ATOM 2303 N HIS A 145 -40.232 -74.074 23.334 1.00 54.11 N +ATOM 2304 CA HIS A 145 -39.227 -74.472 24.309 1.00 61.60 C +ATOM 2305 C HIS A 145 -38.047 -73.510 24.348 1.00 58.30 C +ATOM 2306 O HIS A 145 -36.966 -73.883 24.819 1.00 61.93 O +ATOM 2307 CB HIS A 145 -38.738 -75.891 24.018 1.00 66.56 C +ATOM 2308 CG HIS A 145 -39.740 -76.954 24.343 1.00 72.35 C +ATOM 2309 ND1 HIS A 145 -40.578 -77.503 23.397 1.00 74.15 N +ATOM 2310 CD2 HIS A 145 -40.040 -77.564 25.513 1.00 73.78 C +ATOM 2311 CE1 HIS A 145 -41.349 -78.410 23.970 1.00 73.67 C +ATOM 2312 NE2 HIS A 145 -41.044 -78.466 25.254 1.00 74.52 N +ATOM 2313 H HIS A 145 -40.078 -74.294 22.371 1.00 20.00 H +ATOM 2314 HA HIS A 145 -39.689 -74.476 25.307 1.00 20.00 H +ATOM 2315 HB2 HIS A 145 -38.493 -75.961 22.948 1.00 20.00 H +ATOM 2316 HB3 HIS A 145 -37.832 -76.075 24.614 1.00 20.00 H +ATOM 2317 HD1 HIS A 145 -40.599 -77.254 22.429 1.00 20.00 H +ATOM 2318 HD2 HIS A 145 -39.577 -77.377 26.471 1.00 20.00 H +ATOM 2319 HE1 HIS A 145 -42.101 -79.005 23.473 1.00 20.00 H +ATOM 2320 N VAL A 146 -38.232 -72.292 23.859 1.00 54.32 N +ATOM 2321 CA VAL A 146 -37.138 -71.314 23.805 1.00 54.50 C +ATOM 2322 C VAL A 146 -36.826 -70.830 25.212 1.00 52.99 C +ATOM 2323 O VAL A 146 -37.748 -70.429 25.947 1.00 55.93 O +ATOM 2324 CB VAL A 146 -37.516 -70.149 22.891 1.00 59.39 C +ATOM 2325 CG1 VAL A 146 -36.505 -69.027 23.018 1.00 55.56 C +ATOM 2326 CG2 VAL A 146 -37.622 -70.621 21.446 1.00 61.41 C +ATOM 2327 H VAL A 146 -39.136 -72.033 23.519 1.00 20.00 H +ATOM 2328 HA VAL A 146 -36.240 -71.799 23.396 1.00 20.00 H +ATOM 2329 HB VAL A 146 -38.500 -69.769 23.204 1.00 20.00 H +ATOM 2330 HG11 VAL A 146 -36.792 -68.198 22.355 1.00 20.00 H +ATOM 2331 HG12 VAL A 146 -36.480 -68.672 24.059 1.00 20.00 H +ATOM 2332 HG13 VAL A 146 -35.509 -69.397 22.733 1.00 20.00 H +ATOM 2333 HG21 VAL A 146 -37.894 -69.772 20.802 1.00 20.00 H +ATOM 2334 HG22 VAL A 146 -36.654 -71.031 21.122 1.00 20.00 H +ATOM 2335 HG23 VAL A 146 -38.394 -71.401 21.371 1.00 20.00 H +ATOM 2336 N PRO A 147 -35.563 -70.847 25.641 1.00 64.38 N +ATOM 2337 CA PRO A 147 -35.229 -70.340 26.975 1.00 51.54 C +ATOM 2338 C PRO A 147 -35.604 -68.873 27.127 1.00 45.03 C +ATOM 2339 O PRO A 147 -35.539 -68.092 26.176 1.00 50.56 O +ATOM 2340 CB PRO A 147 -33.715 -70.547 27.065 1.00 47.57 C +ATOM 2341 CG PRO A 147 -33.449 -71.694 26.146 1.00 47.45 C +ATOM 2342 CD PRO A 147 -34.414 -71.515 25.002 1.00 55.55 C +ATOM 2343 HA PRO A 147 -35.731 -70.935 27.752 1.00 20.00 H +ATOM 2344 HB2 PRO A 147 -33.177 -69.647 26.732 1.00 20.00 H +ATOM 2345 HB3 PRO A 147 -33.415 -70.794 28.094 1.00 20.00 H +ATOM 2346 HG2 PRO A 147 -32.411 -71.665 25.783 1.00 20.00 H +ATOM 2347 HG3 PRO A 147 -33.632 -72.650 26.659 1.00 20.00 H +ATOM 2348 HD2 PRO A 147 -34.707 -72.486 24.576 1.00 20.00 H +ATOM 2349 HD3 PRO A 147 -33.979 -70.885 24.212 1.00 20.00 H +ATOM 2350 N ASN A 148 -36.006 -68.509 28.345 1.00 42.82 N +ATOM 2351 CA ASN A 148 -36.484 -67.161 28.650 1.00 43.61 C +ATOM 2352 C ASN A 148 -35.297 -66.198 28.725 1.00 44.22 C +ATOM 2353 O ASN A 148 -34.923 -65.692 29.784 1.00 48.44 O +ATOM 2354 CB ASN A 148 -37.284 -67.176 29.945 1.00 45.23 C +ATOM 2355 CG ASN A 148 -38.023 -65.880 30.191 1.00 47.11 C +ATOM 2356 OD1 ASN A 148 -38.181 -65.058 29.287 1.00 41.99 O +ATOM 2357 ND2 ASN A 148 -38.490 -65.692 31.420 1.00 46.06 N +ATOM 2358 H ASN A 148 -35.980 -69.186 29.081 1.00 20.00 H +ATOM 2359 HA ASN A 148 -37.147 -66.824 27.840 1.00 20.00 H +ATOM 2360 HB2 ASN A 148 -38.017 -67.995 29.896 1.00 20.00 H +ATOM 2361 HB3 ASN A 148 -36.593 -67.352 30.783 1.00 20.00 H +ATOM 2362 HD21 ASN A 148 -38.993 -64.856 31.642 1.00 20.00 H +ATOM 2363 HD22 ASN A 148 -38.339 -66.386 32.124 1.00 20.00 H +ATOM 2364 N LEU A 149 -34.711 -65.935 27.558 1.00 42.00 N +ATOM 2365 CA LEU A 149 -33.481 -65.158 27.468 1.00 44.20 C +ATOM 2366 C LEU A 149 -33.276 -64.719 26.026 1.00 40.76 C +ATOM 2367 O LEU A 149 -33.540 -65.485 25.099 1.00 39.48 O +ATOM 2368 CB LEU A 149 -32.276 -65.985 27.952 1.00 45.83 C +ATOM 2369 CG LEU A 149 -30.831 -65.462 28.002 1.00 47.94 C +ATOM 2370 CD1 LEU A 149 -29.990 -66.378 28.883 1.00 48.66 C +ATOM 2371 CD2 LEU A 149 -30.175 -65.345 26.629 1.00 53.89 C +ATOM 2372 H LEU A 149 -35.128 -66.281 26.718 1.00 20.00 H +ATOM 2373 HA LEU A 149 -33.565 -64.262 28.101 1.00 20.00 H +ATOM 2374 HB2 LEU A 149 -32.518 -66.288 28.982 1.00 20.00 H +ATOM 2375 HB3 LEU A 149 -32.248 -66.874 27.306 1.00 20.00 H +ATOM 2376 HG LEU A 149 -30.846 -64.463 28.461 1.00 20.00 H +ATOM 2377 HD11 LEU A 149 -28.956 -66.005 28.919 1.00 20.00 H +ATOM 2378 HD12 LEU A 149 -30.410 -66.395 29.900 1.00 20.00 H +ATOM 2379 HD13 LEU A 149 -29.998 -67.396 28.466 1.00 20.00 H +ATOM 2380 HD21 LEU A 149 -29.149 -64.967 26.744 1.00 20.00 H +ATOM 2381 HD22 LEU A 149 -30.149 -66.335 26.149 1.00 20.00 H +ATOM 2382 HD23 LEU A 149 -30.754 -64.649 26.004 1.00 20.00 H +ATOM 2383 N PHE A 150 -32.802 -63.489 25.844 1.00 41.08 N +ATOM 2384 CA PHE A 150 -32.287 -63.057 24.553 1.00 42.35 C +ATOM 2385 C PHE A 150 -31.067 -62.178 24.787 1.00 44.61 C +ATOM 2386 O PHE A 150 -30.841 -61.671 25.886 1.00 46.36 O +ATOM 2387 CB PHE A 150 -33.349 -62.327 23.703 1.00 40.41 C +ATOM 2388 CG PHE A 150 -33.805 -61.009 24.270 1.00 40.71 C +ATOM 2389 CD1 PHE A 150 -34.873 -60.951 25.149 1.00 45.53 C +ATOM 2390 CD2 PHE A 150 -33.186 -59.825 23.900 1.00 41.43 C +ATOM 2391 CE1 PHE A 150 -35.303 -59.742 25.664 1.00 47.27 C +ATOM 2392 CE2 PHE A 150 -33.609 -58.615 24.413 1.00 42.14 C +ATOM 2393 CZ PHE A 150 -34.669 -58.573 25.296 1.00 44.96 C +ATOM 2394 H PHE A 150 -32.800 -62.847 26.611 1.00 20.00 H +ATOM 2395 HA PHE A 150 -31.961 -63.943 23.989 1.00 20.00 H +ATOM 2396 HB2 PHE A 150 -32.923 -62.143 22.705 1.00 20.00 H +ATOM 2397 HB3 PHE A 150 -34.227 -62.984 23.612 1.00 20.00 H +ATOM 2398 HD1 PHE A 150 -35.377 -61.862 25.436 1.00 20.00 H +ATOM 2399 HD2 PHE A 150 -32.362 -59.849 23.202 1.00 20.00 H +ATOM 2400 HE1 PHE A 150 -36.134 -59.713 26.353 1.00 20.00 H +ATOM 2401 HE2 PHE A 150 -33.111 -57.702 24.124 1.00 20.00 H +ATOM 2402 HZ PHE A 150 -35.001 -57.627 25.698 1.00 20.00 H +ATOM 2403 N SER A 151 -30.268 -62.021 23.738 1.00 42.68 N +ATOM 2404 CA SER A 151 -29.027 -61.270 23.822 1.00 48.46 C +ATOM 2405 C SER A 151 -28.860 -60.442 22.558 1.00 44.77 C +ATOM 2406 O SER A 151 -29.254 -60.861 21.468 1.00 44.97 O +ATOM 2407 CB SER A 151 -27.823 -62.201 24.022 1.00 41.44 C +ATOM 2408 OG SER A 151 -27.693 -63.104 22.939 1.00 45.25 O +ATOM 2409 H SER A 151 -30.528 -62.432 22.864 1.00 20.00 H +ATOM 2410 HA SER A 151 -29.076 -60.584 24.681 1.00 20.00 H +ATOM 2411 HB2 SER A 151 -26.908 -61.595 24.096 1.00 20.00 H +ATOM 2412 HB3 SER A 151 -27.961 -62.772 24.952 1.00 20.00 H +ATOM 2413 HG SER A 151 -28.050 -63.949 23.186 1.00 20.00 H +ATOM 2414 N LEU A 152 -28.270 -59.259 22.717 1.00 44.19 N +ATOM 2415 CA LEU A 152 -28.136 -58.292 21.635 1.00 43.53 C +ATOM 2416 C LEU A 152 -26.680 -57.896 21.451 1.00 43.31 C +ATOM 2417 O LEU A 152 -26.016 -57.496 22.412 1.00 46.14 O +ATOM 2418 CB LEU A 152 -28.973 -57.042 21.912 1.00 44.02 C +ATOM 2419 CG LEU A 152 -30.487 -57.230 21.871 1.00 43.57 C +ATOM 2420 CD1 LEU A 152 -31.194 -55.891 21.973 1.00 45.02 C +ATOM 2421 CD2 LEU A 152 -30.859 -57.935 20.590 1.00 39.12 C +ATOM 2422 H LEU A 152 -27.903 -59.024 23.617 1.00 20.00 H +ATOM 2423 HA LEU A 152 -28.493 -58.745 20.698 1.00 20.00 H +ATOM 2424 HB2 LEU A 152 -28.706 -56.673 22.913 1.00 20.00 H +ATOM 2425 HB3 LEU A 152 -28.707 -56.285 21.160 1.00 20.00 H +ATOM 2426 HG LEU A 152 -30.788 -57.856 22.724 1.00 20.00 H +ATOM 2427 HD11 LEU A 152 -32.282 -56.047 21.942 1.00 20.00 H +ATOM 2428 HD12 LEU A 152 -30.921 -55.403 22.920 1.00 20.00 H +ATOM 2429 HD13 LEU A 152 -30.891 -55.251 21.131 1.00 20.00 H +ATOM 2430 HD21 LEU A 152 -31.949 -58.075 20.551 1.00 20.00 H +ATOM 2431 HD22 LEU A 152 -30.537 -57.328 19.731 1.00 20.00 H +ATOM 2432 HD23 LEU A 152 -30.362 -58.916 20.554 1.00 20.00 H +ATOM 2433 N GLN A 153 -26.196 -57.992 20.215 1.00 41.47 N +ATOM 2434 CA GLN A 153 -24.906 -57.442 19.814 1.00 51.11 C +ATOM 2435 C GLN A 153 -25.162 -56.416 18.716 1.00 48.13 C +ATOM 2436 O GLN A 153 -25.475 -56.788 17.582 1.00 46.19 O +ATOM 2437 CB GLN A 153 -23.967 -58.547 19.329 1.00 51.71 C +ATOM 2438 CG GLN A 153 -22.534 -58.095 19.074 1.00 51.19 C +ATOM 2439 CD GLN A 153 -21.837 -58.927 18.011 1.00 51.88 C +ATOM 2440 OE1 GLN A 153 -22.424 -59.244 16.974 1.00 60.43 O +ATOM 2441 NE2 GLN A 153 -20.583 -59.288 18.264 1.00 47.13 N +ATOM 2442 H GLN A 153 -26.745 -58.465 19.526 1.00 20.00 H +ATOM 2443 HA GLN A 153 -24.439 -56.934 20.670 1.00 20.00 H +ATOM 2444 HB2 GLN A 153 -23.946 -59.339 20.092 1.00 20.00 H +ATOM 2445 HB3 GLN A 153 -24.371 -58.953 18.390 1.00 20.00 H +ATOM 2446 HG2 GLN A 153 -22.549 -57.045 18.745 1.00 20.00 H +ATOM 2447 HG3 GLN A 153 -21.967 -58.177 20.013 1.00 20.00 H +ATOM 2448 HE21 GLN A 153 -20.078 -59.839 17.600 1.00 20.00 H +ATOM 2449 HE22 GLN A 153 -20.145 -59.009 19.118 1.00 20.00 H +ATOM 2450 N LEU A 154 -25.056 -55.130 19.054 1.00 48.80 N +ATOM 2451 CA LEU A 154 -25.202 -54.044 18.089 1.00 49.34 C +ATOM 2452 C LEU A 154 -23.815 -53.524 17.732 1.00 46.37 C +ATOM 2453 O LEU A 154 -23.065 -53.099 18.618 1.00 41.03 O +ATOM 2454 CB LEU A 154 -26.068 -52.917 18.651 1.00 48.05 C +ATOM 2455 CG LEU A 154 -27.347 -53.318 19.390 1.00 46.72 C +ATOM 2456 CD1 LEU A 154 -28.003 -52.098 20.013 1.00 47.86 C +ATOM 2457 CD2 LEU A 154 -28.306 -54.036 18.452 1.00 39.92 C +ATOM 2458 H LEU A 154 -24.869 -54.900 20.009 1.00 20.00 H +ATOM 2459 HA LEU A 154 -25.678 -54.428 17.175 1.00 20.00 H +ATOM 2460 HB2 LEU A 154 -25.447 -52.341 19.353 1.00 20.00 H +ATOM 2461 HB3 LEU A 154 -26.361 -52.273 17.808 1.00 20.00 H +ATOM 2462 HG LEU A 154 -27.072 -54.012 20.198 1.00 20.00 H +ATOM 2463 HD11 LEU A 154 -28.920 -52.403 20.540 1.00 20.00 H +ATOM 2464 HD12 LEU A 154 -27.308 -51.632 20.727 1.00 20.00 H +ATOM 2465 HD13 LEU A 154 -28.257 -51.375 19.224 1.00 20.00 H +ATOM 2466 HD21 LEU A 154 -29.217 -54.315 19.002 1.00 20.00 H +ATOM 2467 HD22 LEU A 154 -28.571 -53.369 17.618 1.00 20.00 H +ATOM 2468 HD23 LEU A 154 -27.823 -54.943 18.058 1.00 20.00 H +ATOM 2469 N CYS A 155 -23.483 -53.538 16.439 1.00 50.72 N +ATOM 2470 CA CYS A 155 -22.088 -53.365 16.048 1.00 58.09 C +ATOM 2471 C CYS A 155 -21.714 -51.919 15.735 1.00 69.11 C +ATOM 2472 O CYS A 155 -20.612 -51.480 16.084 1.00 70.64 O +ATOM 2473 CB CYS A 155 -21.769 -54.268 14.855 1.00 54.50 C +ATOM 2474 SG CYS A 155 -21.705 -56.018 15.318 1.00 52.31 S +ATOM 2475 H CYS A 155 -24.188 -53.667 15.741 1.00 20.00 H +ATOM 2476 HA CYS A 155 -21.454 -53.693 16.885 1.00 20.00 H +ATOM 2477 HB2 CYS A 155 -22.548 -54.132 14.090 1.00 20.00 H +ATOM 2478 HB3 CYS A 155 -20.793 -53.975 14.441 1.00 20.00 H +ATOM 2479 N GLY A 156 -22.600 -51.200 14.978 1.00 71.19 N +ATOM 2480 CA GLY A 156 -22.309 -49.806 14.721 1.00 78.77 C +ATOM 2481 C GLY A 156 -21.360 -49.613 13.554 1.00 83.83 C +ATOM 2482 O GLY A 156 -20.842 -50.518 12.890 1.00 88.63 O +ATOM 2483 H GLY A 156 -23.427 -51.627 14.612 1.00 20.00 H +ATOM 2484 HA2 GLY A 156 -23.252 -49.285 14.498 1.00 20.00 H +ATOM 2485 HA3 GLY A 156 -21.854 -49.369 15.622 1.00 20.00 H +ATOM 2486 N ALA A 157 -21.167 -48.263 13.319 0.00 99.99 N +ATOM 2487 CA ALA A 157 -20.290 -47.810 12.287 0.00 99.99 C +ATOM 2488 C ALA A 157 -18.892 -47.348 12.625 0.00 99.99 C +ATOM 2489 O ALA A 157 -18.589 -46.871 13.721 0.00 99.99 O +ATOM 2490 CB ALA A 157 -20.809 -47.768 10.878 0.00 99.99 C +ATOM 2491 H ALA A 157 -21.650 -47.593 13.882 0.00 20.00 H +ATOM 2492 HA ALA A 157 -19.924 -48.835 12.132 0.00 20.00 H +ATOM 2493 HB1 ALA A 157 -20.020 -47.399 10.206 0.00 20.00 H +ATOM 2494 HB2 ALA A 157 -21.111 -48.780 10.568 0.00 20.00 H +ATOM 2495 HB3 ALA A 157 -21.678 -47.095 10.827 0.00 20.00 H +ATOM 2496 N GLY A 158 -18.004 -47.471 11.573 0.00 99.99 N +ATOM 2497 CA GLY A 158 -16.651 -47.002 11.779 0.00 99.99 C +ATOM 2498 C GLY A 158 -15.859 -47.086 10.494 0.00 99.99 C +ATOM 2499 O GLY A 158 -16.088 -47.853 9.559 0.00 99.99 O +ATOM 2500 H GLY A 158 -18.287 -47.870 10.701 0.00 20.00 H +ATOM 2501 HA2 GLY A 158 -16.678 -45.956 12.119 0.00 20.00 H +ATOM 2502 HA3 GLY A 158 -16.165 -47.624 12.545 0.00 20.00 H +ATOM 2503 N PHE A 159 -14.780 -46.223 10.547 0.00 99.99 N +ATOM 2504 CA PHE A 159 -13.845 -46.160 9.462 0.00 99.99 C +ATOM 2505 C PHE A 159 -13.012 -47.376 9.114 0.00 99.99 C +ATOM 2506 O PHE A 159 -12.491 -48.066 10.002 0.00 99.99 O +ATOM 2507 CB PHE A 159 -13.392 -44.808 8.985 0.00 99.99 C +ATOM 2508 CG PHE A 159 -14.375 -44.007 8.200 0.00 99.99 C +ATOM 2509 CD1 PHE A 159 -14.043 -43.603 6.909 0.00 99.99 C +ATOM 2510 CD2 PHE A 159 -15.582 -43.598 8.762 0.00 99.99 C +ATOM 2511 CE1 PHE A 159 -14.939 -42.833 6.167 0.00 99.99 C +ATOM 2512 CE2 PHE A 159 -16.472 -42.818 8.033 0.00 99.99 C +ATOM 2513 CZ PHE A 159 -16.156 -42.442 6.731 0.00 99.99 C +ATOM 2514 H PHE A 159 -14.650 -45.640 11.348 0.00 20.00 H +ATOM 2515 HA PHE A 159 -14.589 -46.310 8.665 0.00 20.00 H +ATOM 2516 HB2 PHE A 159 -13.115 -44.218 9.872 0.00 20.00 H +ATOM 2517 HB3 PHE A 159 -12.505 -44.958 8.352 0.00 20.00 H +ATOM 2518 HD1 PHE A 159 -13.093 -43.887 6.481 0.00 20.00 H +ATOM 2519 HD2 PHE A 159 -15.828 -43.889 9.773 0.00 20.00 H +ATOM 2520 HE1 PHE A 159 -14.693 -42.540 5.157 0.00 20.00 H +ATOM 2521 HE2 PHE A 159 -17.407 -42.506 8.475 0.00 20.00 H +ATOM 2522 HZ PHE A 159 -16.850 -41.847 6.157 0.00 20.00 H +ATOM 2523 N PRO A 160 -12.799 -47.662 7.792 0.00 99.99 N +ATOM 2524 CA PRO A 160 -13.424 -46.994 6.664 0.00 99.99 C +ATOM 2525 C PRO A 160 -14.860 -47.414 6.369 0.00 99.99 C +ATOM 2526 O PRO A 160 -15.307 -48.543 6.564 0.00 99.99 O +ATOM 2527 CB PRO A 160 -12.546 -47.356 5.473 0.00 99.99 C +ATOM 2528 CG PRO A 160 -11.932 -48.697 5.861 0.00 99.99 C +ATOM 2529 CD PRO A 160 -11.864 -48.683 7.374 0.00 99.99 C +ATOM 2530 HA PRO A 160 -13.394 -45.904 6.811 0.00 20.00 H +ATOM 2531 HB2 PRO A 160 -13.149 -47.452 4.558 0.00 20.00 H +ATOM 2532 HB3 PRO A 160 -11.764 -46.598 5.319 0.00 20.00 H +ATOM 2533 HG2 PRO A 160 -12.565 -49.526 5.512 0.00 20.00 H +ATOM 2534 HG3 PRO A 160 -10.924 -48.799 5.432 0.00 20.00 H +ATOM 2535 HD2 PRO A 160 -10.847 -48.434 7.711 0.00 20.00 H +ATOM 2536 HD3 PRO A 160 -12.156 -49.662 7.781 0.00 20.00 H +ATOM 2537 N LEU A 161 -15.563 -46.374 5.799 0.00 99.99 N +ATOM 2538 CA LEU A 161 -16.890 -46.574 5.313 0.00 99.99 C +ATOM 2539 C LEU A 161 -17.116 -47.210 3.975 0.00 99.99 C +ATOM 2540 O LEU A 161 -16.362 -47.029 3.007 0.00 99.99 O +ATOM 2541 CB LEU A 161 -18.027 -45.924 6.034 0.00 99.99 C +ATOM 2542 CG LEU A 161 -18.361 -46.571 7.334 0.00 99.99 C +ATOM 2543 CD1 LEU A 161 -18.484 -45.716 8.554 0.00 99.99 C +ATOM 2544 CD2 LEU A 161 -18.632 -48.041 7.438 0.00 99.99 C +ATOM 2545 H LEU A 161 -15.139 -45.472 5.724 0.00 20.00 H +ATOM 2546 HA LEU A 161 -17.012 -47.525 5.853 0.00 20.00 H +ATOM 2547 HB2 LEU A 161 -17.760 -44.874 6.226 0.00 20.00 H +ATOM 2548 HB3 LEU A 161 -18.916 -45.964 5.387 0.00 20.00 H +ATOM 2549 HG LEU A 161 -17.294 -46.738 7.542 0.00 20.00 H +ATOM 2550 HD11 LEU A 161 -18.734 -46.347 9.421 0.00 20.00 H +ATOM 2551 HD12 LEU A 161 -17.530 -45.201 8.739 0.00 20.00 H +ATOM 2552 HD13 LEU A 161 -19.280 -44.972 8.402 0.00 20.00 H +ATOM 2553 HD21 LEU A 161 -18.856 -48.301 8.483 0.00 20.00 H +ATOM 2554 HD22 LEU A 161 -19.491 -48.302 6.803 0.00 20.00 H +ATOM 2555 HD23 LEU A 161 -17.746 -48.601 7.103 0.00 20.00 H +ATOM 2556 N ASN A 162 -18.283 -47.946 3.904 0.00 99.99 N +ATOM 2557 CA ASN A 162 -18.733 -48.393 2.627 0.00 99.99 C +ATOM 2558 C ASN A 162 -19.399 -47.410 1.702 0.00 99.99 C +ATOM 2559 O ASN A 162 -19.059 -47.215 0.531 0.00 99.99 O +ATOM 2560 CB ASN A 162 -18.628 -49.842 2.319 0.00 99.99 C +ATOM 2561 CG ASN A 162 -18.000 -50.068 0.978 0.00 99.99 C +ATOM 2562 OD1 ASN A 162 -16.774 -50.141 0.809 0.00 99.99 O +ATOM 2563 ND2 ASN A 162 -18.941 -50.225 -0.019 0.00 99.99 N +ATOM 2564 H ASN A 162 -18.802 -48.160 4.731 0.00 20.00 H +ATOM 2565 HA ASN A 162 -17.749 -48.195 2.177 0.00 20.00 H +ATOM 2566 HB2 ASN A 162 -18.012 -50.329 3.089 0.00 20.00 H +ATOM 2567 HB3 ASN A 162 -19.635 -50.284 2.322 0.00 20.00 H +ATOM 2568 HD21 ASN A 162 -18.649 -50.412 -0.957 0.00 20.00 H +ATOM 2569 HD22 ASN A 162 -19.915 -50.151 0.196 0.00 20.00 H +ATOM 2570 N GLN A 163 -20.470 -46.774 2.305 0.00 99.99 N +ATOM 2571 CA GLN A 163 -21.244 -45.820 1.575 0.00 99.99 C +ATOM 2572 C GLN A 163 -20.887 -44.359 1.641 0.00 99.99 C +ATOM 2573 O GLN A 163 -20.672 -43.760 2.695 0.00 99.99 O +ATOM 2574 CB GLN A 163 -22.472 -46.245 0.817 0.00 99.99 C +ATOM 2575 CG GLN A 163 -22.353 -47.575 0.105 0.00 99.99 C +ATOM 2576 CD GLN A 163 -22.719 -48.695 1.039 0.00 99.99 C +ATOM 2577 OE1 GLN A 163 -21.897 -49.535 1.408 0.00 99.99 O +ATOM 2578 NE2 GLN A 163 -24.039 -48.653 1.438 0.00 99.99 N +ATOM 2579 H GLN A 163 -20.703 -46.982 3.255 0.00 20.00 H +ATOM 2580 HA GLN A 163 -20.617 -45.958 0.682 0.00 20.00 H +ATOM 2581 HB2 GLN A 163 -23.306 -46.313 1.531 0.00 20.00 H +ATOM 2582 HB3 GLN A 163 -22.694 -45.473 0.066 0.00 20.00 H +ATOM 2583 HG2 GLN A 163 -23.032 -47.586 -0.761 0.00 20.00 H +ATOM 2584 HG3 GLN A 163 -21.317 -47.712 -0.240 0.00 20.00 H +ATOM 2585 HE21 GLN A 163 -24.391 -49.340 2.073 0.00 20.00 H +ATOM 2586 HE22 GLN A 163 -24.643 -47.935 1.092 0.00 20.00 H +ATOM 2587 N SER A 164 -20.870 -43.765 0.398 0.00 99.99 N +ATOM 2588 CA SER A 164 -20.811 -42.341 0.294 0.00 99.99 C +ATOM 2589 C SER A 164 -22.080 -41.540 0.309 0.00 99.99 C +ATOM 2590 O SER A 164 -22.314 -40.635 1.120 0.00 99.99 O +ATOM 2591 CB SER A 164 -19.497 -41.650 0.136 0.00 99.99 C +ATOM 2592 OG SER A 164 -19.046 -41.801 -1.214 0.00 99.99 O +ATOM 2593 H SER A 164 -20.898 -44.328 -0.429 0.00 20.00 H +ATOM 2594 HA SER A 164 -20.734 -42.256 1.388 0.00 20.00 H +ATOM 2595 HB2 SER A 164 -19.612 -40.581 0.368 0.00 20.00 H +ATOM 2596 HB3 SER A 164 -18.761 -42.097 0.821 0.00 20.00 H +ATOM 2597 HG SER A 164 -18.707 -40.972 -1.530 0.00 20.00 H +ATOM 2598 N GLU A 165 -22.936 -41.941 -0.688 0.00 99.99 N +ATOM 2599 CA GLU A 165 -24.225 -41.358 -0.851 0.00 99.99 C +ATOM 2600 C GLU A 165 -25.347 -41.603 0.146 0.00 99.99 C +ATOM 2601 O GLU A 165 -26.307 -40.845 0.308 0.00 99.99 O +ATOM 2602 CB GLU A 165 -24.486 -40.472 -2.032 0.00 99.99 C +ATOM 2603 CG GLU A 165 -23.588 -40.816 -3.202 0.00 99.99 C +ATOM 2604 CD GLU A 165 -23.933 -39.757 -4.199 0.00 99.99 C +ATOM 2605 OE1 GLU A 165 -23.211 -38.711 -4.203 0.00 99.99 O +ATOM 2606 OE2 GLU A 165 -24.926 -40.000 -4.963 0.00 99.99 O +ATOM 2607 H GLU A 165 -22.646 -42.663 -1.316 0.00 20.00 H +ATOM 2608 HA GLU A 165 -24.549 -42.233 -1.434 0.00 20.00 H +ATOM 2609 HB2 GLU A 165 -25.535 -40.591 -2.341 0.00 20.00 H +ATOM 2610 HB3 GLU A 165 -24.307 -39.426 -1.740 0.00 20.00 H +ATOM 2611 HG2 GLU A 165 -22.527 -40.762 -2.918 0.00 20.00 H +ATOM 2612 HG3 GLU A 165 -23.812 -41.819 -3.594 0.00 20.00 H +ATOM 2613 N VAL A 166 -25.216 -42.820 0.798 0.00 99.99 N +ATOM 2614 CA VAL A 166 -26.114 -43.202 1.844 0.00 99.99 C +ATOM 2615 C VAL A 166 -25.627 -43.123 3.261 0.00 99.99 C +ATOM 2616 O VAL A 166 -24.597 -42.517 3.606 0.00 99.99 O +ATOM 2617 CB VAL A 166 -27.448 -43.718 1.474 0.00 99.99 C +ATOM 2618 CG1 VAL A 166 -28.668 -42.852 1.405 0.00 99.99 C +ATOM 2619 CG2 VAL A 166 -27.582 -45.168 1.141 0.00 99.99 C +ATOM 2620 H VAL A 166 -24.480 -43.442 0.532 0.00 20.00 H +ATOM 2621 HA VAL A 166 -26.508 -42.177 1.905 0.00 20.00 H +ATOM 2622 HB VAL A 166 -27.660 -43.938 2.531 0.00 20.00 H +ATOM 2623 HG11 VAL A 166 -29.535 -43.462 1.109 0.00 20.00 H +ATOM 2624 HG12 VAL A 166 -28.855 -42.403 2.392 0.00 20.00 H +ATOM 2625 HG13 VAL A 166 -28.510 -42.055 0.664 0.00 20.00 H +ATOM 2626 HG21 VAL A 166 -28.629 -45.391 0.888 0.00 20.00 H +ATOM 2627 HG22 VAL A 166 -26.939 -45.407 0.281 0.00 20.00 H +ATOM 2628 HG23 VAL A 166 -27.277 -45.773 2.007 0.00 20.00 H +ATOM 2629 N LEU A 167 -26.404 -43.863 4.148 0.00 99.99 N +ATOM 2630 CA LEU A 167 -25.934 -44.091 5.482 0.00 99.99 C +ATOM 2631 C LEU A 167 -24.743 -44.993 5.722 0.00 99.99 C +ATOM 2632 O LEU A 167 -24.423 -45.904 4.948 0.00 99.99 O +ATOM 2633 CB LEU A 167 -26.769 -43.618 6.625 0.00 99.99 C +ATOM 2634 CG LEU A 167 -27.006 -42.134 6.616 0.00 99.99 C +ATOM 2635 CD1 LEU A 167 -28.406 -41.617 6.619 0.00 99.99 C +ATOM 2636 CD2 LEU A 167 -25.859 -41.177 6.626 0.00 99.99 C +ATOM 2637 H LEU A 167 -27.286 -44.234 3.855 0.00 20.00 H +ATOM 2638 HA LEU A 167 -25.316 -43.181 5.483 0.00 20.00 H +ATOM 2639 HB2 LEU A 167 -27.743 -44.127 6.580 0.00 20.00 H +ATOM 2640 HB3 LEU A 167 -26.260 -43.884 7.563 0.00 20.00 H +ATOM 2641 HG LEU A 167 -27.003 -42.135 5.516 0.00 20.00 H +ATOM 2642 HD11 LEU A 167 -28.392 -40.517 6.611 0.00 20.00 H +ATOM 2643 HD12 LEU A 167 -28.934 -41.982 5.726 0.00 20.00 H +ATOM 2644 HD13 LEU A 167 -28.926 -41.970 7.522 0.00 20.00 H +ATOM 2645 HD21 LEU A 167 -26.242 -40.145 6.617 0.00 20.00 H +ATOM 2646 HD22 LEU A 167 -25.256 -41.336 7.532 0.00 20.00 H +ATOM 2647 HD23 LEU A 167 -25.234 -41.344 5.736 0.00 20.00 H +ATOM 2648 N ALA A 168 -24.097 -44.754 6.915 0.00 99.99 N +ATOM 2649 CA ALA A 168 -23.115 -45.691 7.358 0.00 99.99 C +ATOM 2650 C ALA A 168 -23.587 -47.030 7.869 0.00 99.99 C +ATOM 2651 O ALA A 168 -24.581 -47.155 8.588 0.00 99.99 O +ATOM 2652 CB ALA A 168 -21.669 -45.324 7.285 0.00 99.99 C +ATOM 2653 H ALA A 168 -24.311 -43.942 7.458 0.00 20.00 H +ATOM 2654 HA ALA A 168 -23.173 -45.277 8.376 0.00 20.00 H +ATOM 2655 HB1 ALA A 168 -21.059 -46.157 7.665 0.00 20.00 H +ATOM 2656 HB2 ALA A 168 -21.396 -45.117 6.240 0.00 20.00 H +ATOM 2657 HB3 ALA A 168 -21.486 -44.428 7.896 0.00 20.00 H +ATOM 2658 N SER A 169 -22.820 -48.088 7.405 0.00 99.99 N +ATOM 2659 CA SER A 169 -23.369 -49.405 7.502 0.00 99.99 C +ATOM 2660 C SER A 169 -23.466 -50.128 8.812 0.00 99.99 C +ATOM 2661 O SER A 169 -22.491 -50.465 9.486 0.00 99.99 O +ATOM 2662 CB SER A 169 -24.021 -50.058 6.309 0.00 99.99 C +ATOM 2663 OG SER A 169 -23.423 -49.626 5.077 0.00 99.99 O +ATOM 2664 H SER A 169 -21.912 -47.935 7.016 0.00 20.00 H +ATOM 2665 HA SER A 169 -22.399 -49.870 7.274 0.00 20.00 H +ATOM 2666 HB2 SER A 169 -23.912 -51.149 6.395 0.00 20.00 H +ATOM 2667 HB3 SER A 169 -25.089 -49.796 6.298 0.00 20.00 H +ATOM 2668 HG SER A 169 -23.135 -48.725 5.162 0.00 20.00 H +ATOM 2669 N VAL A 170 -24.781 -50.324 9.194 1.00 66.21 N +ATOM 2670 CA VAL A 170 -25.105 -50.973 10.424 1.00 63.70 C +ATOM 2671 C VAL A 170 -25.312 -52.465 10.423 1.00 60.70 C +ATOM 2672 O VAL A 170 -25.808 -53.049 9.453 1.00 53.15 O +ATOM 2673 CB VAL A 170 -25.431 -50.111 11.582 1.00 58.01 C +ATOM 2674 CG1 VAL A 170 -24.381 -49.328 12.299 1.00 59.27 C +ATOM 2675 CG2 VAL A 170 -26.860 -49.934 11.994 1.00 57.80 C +ATOM 2676 H VAL A 170 -25.518 -50.005 8.598 1.00 20.00 H +ATOM 2677 HA VAL A 170 -24.050 -51.066 10.720 1.00 20.00 H +ATOM 2678 HB VAL A 170 -25.310 -50.956 12.276 1.00 20.00 H +ATOM 2679 HG11 VAL A 170 -24.842 -48.762 13.121 1.00 20.00 H +ATOM 2680 HG12 VAL A 170 -23.625 -50.016 12.706 1.00 20.00 H +ATOM 2681 HG13 VAL A 170 -23.901 -48.631 11.597 1.00 20.00 H +ATOM 2682 HG21 VAL A 170 -26.910 -49.265 12.866 1.00 20.00 H +ATOM 2683 HG22 VAL A 170 -27.430 -49.494 11.162 1.00 20.00 H +ATOM 2684 HG23 VAL A 170 -27.290 -50.911 12.257 1.00 20.00 H +ATOM 2685 N GLY A 171 -24.988 -53.109 11.600 1.00 53.62 N +ATOM 2686 CA GLY A 171 -25.434 -54.483 11.668 1.00 48.27 C +ATOM 2687 C GLY A 171 -25.291 -55.009 13.080 1.00 50.01 C +ATOM 2688 O GLY A 171 -24.871 -54.294 13.991 1.00 55.90 O +ATOM 2689 H GLY A 171 -24.488 -52.663 12.342 1.00 20.00 H +ATOM 2690 HA2 GLY A 171 -26.490 -54.538 11.365 1.00 20.00 H +ATOM 2691 HA3 GLY A 171 -24.825 -55.097 10.988 1.00 20.00 H +ATOM 2692 N GLY A 172 -25.650 -56.273 13.260 1.00 41.69 N +ATOM 2693 CA GLY A 172 -25.520 -56.896 14.566 1.00 41.22 C +ATOM 2694 C GLY A 172 -26.268 -58.219 14.629 1.00 41.96 C +ATOM 2695 O GLY A 172 -26.595 -58.811 13.605 1.00 43.92 O +ATOM 2696 H GLY A 172 -26.013 -56.801 12.492 1.00 20.00 H +ATOM 2697 HA2 GLY A 172 -24.455 -57.077 14.771 1.00 20.00 H +ATOM 2698 HA3 GLY A 172 -25.930 -56.217 15.328 1.00 20.00 H +ATOM 2699 N SER A 173 -26.523 -58.660 15.865 1.00 37.19 N +ATOM 2700 CA SER A 173 -27.141 -59.956 16.128 1.00 38.55 C +ATOM 2701 C SER A 173 -28.148 -59.854 17.263 1.00 39.78 C +ATOM 2702 O SER A 173 -27.876 -59.219 18.287 1.00 37.84 O +ATOM 2703 CB SER A 173 -26.093 -61.015 16.492 1.00 41.99 C +ATOM 2704 OG SER A 173 -25.216 -61.272 15.422 1.00 46.80 O +ATOM 2705 H SER A 173 -26.280 -58.078 16.641 1.00 20.00 H +ATOM 2706 HA SER A 173 -27.670 -60.293 15.225 1.00 20.00 H +ATOM 2707 HB2 SER A 173 -25.509 -60.657 17.353 1.00 20.00 H +ATOM 2708 HB3 SER A 173 -26.609 -61.948 16.762 1.00 20.00 H +ATOM 2709 HG SER A 173 -24.369 -60.882 15.605 1.00 20.00 H +ATOM 2710 N MET A 174 -29.298 -60.507 17.086 1.00 42.00 N +ATOM 2711 CA MET A 174 -30.249 -60.762 18.164 1.00 41.69 C +ATOM 2712 C MET A 174 -30.375 -62.272 18.321 1.00 42.68 C +ATOM 2713 O MET A 174 -30.994 -62.937 17.485 1.00 37.83 O +ATOM 2714 CB MET A 174 -31.611 -60.133 17.880 1.00 35.72 C +ATOM 2715 CG MET A 174 -32.661 -60.528 18.919 1.00 45.46 C +ATOM 2716 SD MET A 174 -34.241 -59.675 18.777 1.00 48.86 S +ATOM 2717 CE MET A 174 -34.751 -60.166 17.135 1.00 49.74 C +ATOM 2718 H MET A 174 -29.520 -60.838 16.169 1.00 20.00 H +ATOM 2719 HA MET A 174 -29.859 -60.343 19.103 1.00 20.00 H +ATOM 2720 HB2 MET A 174 -31.503 -59.038 17.885 1.00 20.00 H +ATOM 2721 HB3 MET A 174 -31.953 -60.463 16.888 1.00 20.00 H +ATOM 2722 HG2 MET A 174 -32.847 -61.608 18.821 1.00 20.00 H +ATOM 2723 HG3 MET A 174 -32.249 -60.316 19.917 1.00 20.00 H +ATOM 2724 HE1 MET A 174 -35.849 -60.164 17.076 1.00 20.00 H +ATOM 2725 HE2 MET A 174 -34.343 -59.459 16.398 1.00 20.00 H +ATOM 2726 HE3 MET A 174 -34.374 -61.177 16.921 1.00 20.00 H +ATOM 2727 N ILE A 175 -29.782 -62.812 19.379 1.00 46.06 N +ATOM 2728 CA ILE A 175 -29.830 -64.245 19.638 1.00 44.31 C +ATOM 2729 C ILE A 175 -31.053 -64.514 20.501 1.00 46.97 C +ATOM 2730 O ILE A 175 -31.092 -64.144 21.677 1.00 47.64 O +ATOM 2731 CB ILE A 175 -28.551 -64.747 20.315 1.00 41.78 C +ATOM 2732 CG1 ILE A 175 -27.321 -64.255 19.556 1.00 39.31 C +ATOM 2733 CG2 ILE A 175 -28.561 -66.270 20.396 1.00 38.06 C +ATOM 2734 CD1 ILE A 175 -27.263 -64.732 18.125 1.00 41.13 C +ATOM 2735 H ILE A 175 -29.289 -62.219 20.016 1.00 20.00 H +ATOM 2736 HA ILE A 175 -29.951 -64.782 18.686 1.00 20.00 H +ATOM 2737 HB ILE A 175 -28.516 -64.342 21.337 1.00 20.00 H +ATOM 2738 HG12 ILE A 175 -27.330 -63.155 19.556 1.00 20.00 H +ATOM 2739 HG13 ILE A 175 -26.423 -64.615 20.079 1.00 20.00 H +ATOM 2740 HG21 ILE A 175 -27.638 -66.618 20.884 1.00 20.00 H +ATOM 2741 HG22 ILE A 175 -29.432 -66.600 20.981 1.00 20.00 H +ATOM 2742 HG23 ILE A 175 -28.620 -66.691 19.381 1.00 20.00 H +ATOM 2743 HD11 ILE A 175 -26.355 -64.340 17.644 1.00 20.00 H +ATOM 2744 HD12 ILE A 175 -27.243 -65.832 18.106 1.00 20.00 H +ATOM 2745 HD13 ILE A 175 -28.150 -64.372 17.582 1.00 20.00 H +ATOM 2746 N ILE A 176 -32.059 -65.148 19.916 1.00 49.04 N +ATOM 2747 CA ILE A 176 -33.278 -65.476 20.644 1.00 42.70 C +ATOM 2748 C ILE A 176 -33.074 -66.803 21.355 1.00 37.18 C +ATOM 2749 O ILE A 176 -32.809 -67.830 20.716 1.00 43.38 O +ATOM 2750 CB ILE A 176 -34.489 -65.533 19.704 1.00 44.21 C +ATOM 2751 CG1 ILE A 176 -34.753 -64.159 19.084 1.00 44.64 C +ATOM 2752 CG2 ILE A 176 -35.706 -66.040 20.453 1.00 45.15 C +ATOM 2753 CD1 ILE A 176 -35.349 -63.160 20.052 1.00 50.67 C +ATOM 2754 H ILE A 176 -31.980 -65.407 18.953 1.00 20.00 H +ATOM 2755 HA ILE A 176 -33.467 -64.701 21.402 1.00 20.00 H +ATOM 2756 HB ILE A 176 -34.261 -66.239 18.892 1.00 20.00 H +ATOM 2757 HG12 ILE A 176 -33.799 -63.756 18.713 1.00 20.00 H +ATOM 2758 HG13 ILE A 176 -35.450 -64.286 18.243 1.00 20.00 H +ATOM 2759 HG21 ILE A 176 -36.568 -66.077 19.771 1.00 20.00 H +ATOM 2760 HG22 ILE A 176 -35.503 -67.049 20.842 1.00 20.00 H +ATOM 2761 HG23 ILE A 176 -35.930 -65.362 21.290 1.00 20.00 H +ATOM 2762 HD11 ILE A 176 -35.510 -62.201 19.538 1.00 20.00 H +ATOM 2763 HD12 ILE A 176 -36.311 -63.541 20.426 1.00 20.00 H +ATOM 2764 HD13 ILE A 176 -34.660 -63.012 20.896 1.00 20.00 H +ATOM 2765 N GLY A 177 -33.183 -66.789 22.677 1.00 40.12 N +ATOM 2766 CA GLY A 177 -33.095 -67.999 23.460 1.00 48.89 C +ATOM 2767 C GLY A 177 -31.705 -68.444 23.848 1.00 52.95 C +ATOM 2768 O GLY A 177 -31.552 -69.575 24.322 1.00 54.23 O +ATOM 2769 H GLY A 177 -33.330 -65.917 23.144 1.00 20.00 H +ATOM 2770 HA2 GLY A 177 -33.667 -67.842 24.386 1.00 20.00 H +ATOM 2771 HA3 GLY A 177 -33.556 -68.810 22.877 1.00 20.00 H +ATOM 2772 N GLY A 178 -30.686 -67.607 23.675 1.00 47.31 N +ATOM 2773 CA GLY A 178 -29.368 -68.096 24.025 1.00 45.52 C +ATOM 2774 C GLY A 178 -28.309 -67.018 24.079 1.00 46.92 C +ATOM 2775 O GLY A 178 -28.577 -65.831 23.884 1.00 41.50 O +ATOM 2776 H GLY A 178 -30.823 -66.682 23.320 1.00 20.00 H +ATOM 2777 HA2 GLY A 178 -29.427 -68.573 25.014 1.00 20.00 H +ATOM 2778 HA3 GLY A 178 -29.065 -68.842 23.275 1.00 20.00 H +ATOM 2779 N ILE A 179 -27.089 -67.470 24.359 1.00 46.25 N +ATOM 2780 CA ILE A 179 -25.893 -66.639 24.405 1.00 39.54 C +ATOM 2781 C ILE A 179 -24.901 -67.254 23.426 1.00 41.01 C +ATOM 2782 O ILE A 179 -24.471 -68.400 23.614 1.00 46.49 O +ATOM 2783 CB ILE A 179 -25.289 -66.567 25.816 1.00 43.11 C +ATOM 2784 CG1 ILE A 179 -26.330 -66.103 26.839 1.00 43.37 C +ATOM 2785 CG2 ILE A 179 -24.067 -65.660 25.829 1.00 45.00 C +ATOM 2786 CD1 ILE A 179 -25.827 -66.137 28.272 1.00 51.62 C +ATOM 2787 H ILE A 179 -26.986 -68.446 24.551 1.00 20.00 H +ATOM 2788 HA ILE A 179 -26.135 -65.619 24.072 1.00 20.00 H +ATOM 2789 HB ILE A 179 -24.965 -67.580 26.097 1.00 20.00 H +ATOM 2790 HG12 ILE A 179 -26.621 -65.070 26.596 1.00 20.00 H +ATOM 2791 HG13 ILE A 179 -27.210 -66.759 26.763 1.00 20.00 H +ATOM 2792 HG21 ILE A 179 -23.649 -65.621 26.846 1.00 20.00 H +ATOM 2793 HG22 ILE A 179 -23.309 -66.056 25.136 1.00 20.00 H +ATOM 2794 HG23 ILE A 179 -24.359 -64.647 25.514 1.00 20.00 H +ATOM 2795 HD11 ILE A 179 -26.623 -65.793 28.949 1.00 20.00 H +ATOM 2796 HD12 ILE A 179 -25.541 -67.166 28.536 1.00 20.00 H +ATOM 2797 HD13 ILE A 179 -24.952 -65.477 28.369 1.00 20.00 H +ATOM 2798 N ASP A 180 -24.537 -66.509 22.385 1.00 37.97 N +ATOM 2799 CA ASP A 180 -23.600 -67.004 21.383 1.00 35.18 C +ATOM 2800 C ASP A 180 -22.177 -66.664 21.809 1.00 42.38 C +ATOM 2801 O ASP A 180 -21.836 -65.488 21.980 1.00 37.77 O +ATOM 2802 CB ASP A 180 -23.894 -66.423 20.002 1.00 36.87 C +ATOM 2803 CG ASP A 180 -23.089 -67.105 18.907 1.00 48.58 C +ATOM 2804 OD1 ASP A 180 -23.665 -67.920 18.155 1.00 53.42 O +ATOM 2805 OD2 ASP A 180 -21.870 -66.847 18.812 1.00 56.01 O +ATOM 2806 H ASP A 180 -24.915 -65.588 22.288 1.00 20.00 H +ATOM 2807 HA ASP A 180 -23.687 -68.099 21.320 1.00 20.00 H +ATOM 2808 HB2 ASP A 180 -24.965 -66.550 19.785 1.00 20.00 H +ATOM 2809 HB3 ASP A 180 -23.646 -65.351 20.009 1.00 20.00 H +ATOM 2810 N HIS A 181 -21.343 -67.698 21.939 1.00 43.44 N +ATOM 2811 CA HIS A 181 -20.007 -67.523 22.498 1.00 47.22 C +ATOM 2812 C HIS A 181 -19.095 -66.734 21.570 1.00 44.89 C +ATOM 2813 O HIS A 181 -18.102 -66.157 22.024 1.00 46.96 O +ATOM 2814 CB HIS A 181 -19.395 -68.892 22.798 1.00 50.13 C +ATOM 2815 CG HIS A 181 -18.548 -68.923 24.031 1.00 51.15 C +ATOM 2816 ND1 HIS A 181 -18.765 -68.535 25.336 1.00 51.11 N +ATOM 2817 CD2 HIS A 181 -17.289 -69.419 23.990 1.00 51.74 C +ATOM 2818 CE1 HIS A 181 -17.685 -68.788 26.054 1.00 50.77 C +ATOM 2819 NE2 HIS A 181 -16.775 -69.324 25.261 1.00 50.75 N +ATOM 2820 H HIS A 181 -21.639 -68.608 21.648 1.00 20.00 H +ATOM 2821 HA HIS A 181 -20.088 -66.972 23.447 1.00 20.00 H +ATOM 2822 HB2 HIS A 181 -20.213 -69.617 22.922 1.00 20.00 H +ATOM 2823 HB3 HIS A 181 -18.770 -69.187 21.942 1.00 20.00 H +ATOM 2824 HD1 HIS A 181 -19.608 -68.125 25.685 1.00 20.00 H +ATOM 2825 HD2 HIS A 181 -16.783 -69.814 23.122 1.00 20.00 H +ATOM 2826 HE1 HIS A 181 -17.567 -68.590 27.109 1.00 20.00 H +ATOM 2827 N SER A 182 -19.402 -66.700 20.276 1.00 40.74 N +ATOM 2828 CA SER A 182 -18.508 -66.060 19.321 1.00 44.72 C +ATOM 2829 C SER A 182 -18.690 -64.551 19.243 1.00 45.42 C +ATOM 2830 O SER A 182 -17.899 -63.887 18.566 1.00 48.26 O +ATOM 2831 CB SER A 182 -18.707 -66.662 17.932 1.00 47.25 C +ATOM 2832 OG SER A 182 -19.924 -66.210 17.363 1.00 54.70 O +ATOM 2833 H SER A 182 -20.253 -67.117 19.957 1.00 20.00 H +ATOM 2834 HA SER A 182 -17.470 -66.258 19.626 1.00 20.00 H +ATOM 2835 HB2 SER A 182 -17.871 -66.361 17.284 1.00 20.00 H +ATOM 2836 HB3 SER A 182 -18.731 -67.759 18.013 1.00 20.00 H +ATOM 2837 HG SER A 182 -20.649 -66.460 17.924 1.00 20.00 H +ATOM 2838 N LEU A 183 -19.695 -63.999 19.914 1.00 43.79 N +ATOM 2839 CA LEU A 183 -19.984 -62.573 19.832 1.00 45.70 C +ATOM 2840 C LEU A 183 -19.358 -61.758 20.958 1.00 44.15 C +ATOM 2841 O LEU A 183 -19.558 -60.540 20.999 1.00 40.22 O +ATOM 2842 CB LEU A 183 -21.501 -62.341 19.810 1.00 43.30 C +ATOM 2843 CG LEU A 183 -22.290 -63.130 18.762 1.00 41.74 C +ATOM 2844 CD1 LEU A 183 -23.763 -62.747 18.805 1.00 44.63 C +ATOM 2845 CD2 LEU A 183 -21.707 -62.907 17.377 1.00 41.74 C +ATOM 2846 H LEU A 183 -20.270 -64.579 20.492 1.00 20.00 H +ATOM 2847 HA LEU A 183 -19.579 -62.192 18.883 1.00 20.00 H +ATOM 2848 HB2 LEU A 183 -21.896 -62.610 20.801 1.00 20.00 H +ATOM 2849 HB3 LEU A 183 -21.674 -61.271 19.625 1.00 20.00 H +ATOM 2850 HG LEU A 183 -22.205 -64.200 19.004 1.00 20.00 H +ATOM 2851 HD11 LEU A 183 -24.314 -63.322 18.047 1.00 20.00 H +ATOM 2852 HD12 LEU A 183 -24.171 -62.970 19.802 1.00 20.00 H +ATOM 2853 HD13 LEU A 183 -23.868 -61.672 18.597 1.00 20.00 H +ATOM 2854 HD21 LEU A 183 -22.286 -63.481 16.638 1.00 20.00 H +ATOM 2855 HD22 LEU A 183 -21.753 -61.837 17.128 1.00 20.00 H +ATOM 2856 HD23 LEU A 183 -20.659 -63.242 17.362 1.00 20.00 H +ATOM 2857 N TYR A 184 -18.604 -62.378 21.864 1.00 43.71 N +ATOM 2858 CA TYR A 184 -17.946 -61.632 22.929 1.00 43.49 C +ATOM 2859 C TYR A 184 -16.613 -62.276 23.288 1.00 44.75 C +ATOM 2860 O TYR A 184 -16.322 -63.414 22.917 1.00 46.75 O +ATOM 2861 CB TYR A 184 -18.840 -61.504 24.178 1.00 42.17 C +ATOM 2862 CG TYR A 184 -19.075 -62.777 24.970 1.00 44.71 C +ATOM 2863 CD1 TYR A 184 -19.981 -63.738 24.535 1.00 49.44 C +ATOM 2864 CD2 TYR A 184 -18.423 -62.997 26.177 1.00 49.39 C +ATOM 2865 CE1 TYR A 184 -20.211 -64.892 25.266 1.00 50.86 C +ATOM 2866 CE2 TYR A 184 -18.648 -64.149 26.918 1.00 52.63 C +ATOM 2867 CZ TYR A 184 -19.544 -65.095 26.455 1.00 54.64 C +ATOM 2868 OH TYR A 184 -19.780 -66.246 27.175 1.00 55.49 O +ATOM 2869 H TYR A 184 -18.488 -63.370 21.813 1.00 20.00 H +ATOM 2870 HA TYR A 184 -17.738 -60.615 22.566 1.00 20.00 H +ATOM 2871 HB2 TYR A 184 -18.371 -60.772 24.852 1.00 20.00 H +ATOM 2872 HB3 TYR A 184 -19.820 -61.127 23.851 1.00 20.00 H +ATOM 2873 HD1 TYR A 184 -20.515 -63.582 23.610 1.00 20.00 H +ATOM 2874 HD2 TYR A 184 -17.728 -62.257 26.546 1.00 20.00 H +ATOM 2875 HE1 TYR A 184 -20.911 -65.631 24.905 1.00 20.00 H +ATOM 2876 HE2 TYR A 184 -18.126 -64.305 27.851 1.00 20.00 H +ATOM 2877 HH TYR A 184 -19.851 -66.034 28.098 1.00 20.00 H +ATOM 2878 N THR A 185 -15.790 -61.511 24.002 1.00 45.18 N +ATOM 2879 CA THR A 185 -14.557 -62.002 24.599 1.00 46.68 C +ATOM 2880 C THR A 185 -14.568 -61.658 26.081 1.00 47.56 C +ATOM 2881 O THR A 185 -15.286 -60.759 26.524 1.00 45.85 O +ATOM 2882 CB THR A 185 -13.298 -61.404 23.939 1.00 48.12 C +ATOM 2883 OG1 THR A 185 -13.293 -59.980 24.102 1.00 46.07 O +ATOM 2884 CG2 THR A 185 -13.247 -61.743 22.455 1.00 50.83 C +ATOM 2885 H THR A 185 -16.031 -60.550 24.135 1.00 20.00 H +ATOM 2886 HA THR A 185 -14.513 -63.096 24.496 1.00 20.00 H +ATOM 2887 HB THR A 185 -12.413 -61.837 24.427 1.00 20.00 H +ATOM 2888 HG1 THR A 185 -14.040 -59.718 24.628 1.00 20.00 H +ATOM 2889 HG21 THR A 185 -12.341 -61.306 22.009 1.00 20.00 H +ATOM 2890 HG22 THR A 185 -13.226 -62.836 22.329 1.00 20.00 H +ATOM 2891 HG23 THR A 185 -14.137 -61.333 21.955 1.00 20.00 H +ATOM 2892 N GLY A 186 -13.772 -62.390 26.852 1.00 44.92 N +ATOM 2893 CA GLY A 186 -13.728 -62.082 28.265 1.00 44.94 C +ATOM 2894 C GLY A 186 -14.919 -62.652 29.021 1.00 44.18 C +ATOM 2895 O GLY A 186 -15.637 -63.534 28.550 1.00 51.14 O +ATOM 2896 H GLY A 186 -13.220 -63.131 26.468 1.00 20.00 H +ATOM 2897 HA2 GLY A 186 -12.805 -62.504 28.690 1.00 20.00 H +ATOM 2898 HA3 GLY A 186 -13.722 -60.989 28.388 1.00 20.00 H +ATOM 2899 N SER A 187 -15.122 -62.120 30.223 1.00 47.76 N +ATOM 2900 CA SER A 187 -16.181 -62.600 31.097 1.00 54.62 C +ATOM 2901 C SER A 187 -17.483 -61.849 30.844 1.00 51.94 C +ATOM 2902 O SER A 187 -17.491 -60.696 30.404 1.00 42.75 O +ATOM 2903 CB SER A 187 -15.784 -62.449 32.568 1.00 58.34 C +ATOM 2904 OG SER A 187 -14.719 -63.321 32.913 1.00 65.65 O +ATOM 2905 H SER A 187 -14.533 -61.373 30.533 1.00 20.00 H +ATOM 2906 HA SER A 187 -16.356 -63.668 30.898 1.00 20.00 H +ATOM 2907 HB2 SER A 187 -15.468 -61.411 32.748 1.00 20.00 H +ATOM 2908 HB3 SER A 187 -16.655 -62.682 33.199 1.00 20.00 H +ATOM 2909 HG SER A 187 -14.189 -63.494 32.144 1.00 20.00 H +ATOM 2910 N LEU A 188 -18.591 -62.525 31.128 1.00 50.93 N +ATOM 2911 CA LEU A 188 -19.899 -61.887 31.187 1.00 46.88 C +ATOM 2912 C LEU A 188 -20.156 -61.474 32.630 1.00 46.97 C +ATOM 2913 O LEU A 188 -20.093 -62.310 33.539 1.00 54.30 O +ATOM 2914 CB LEU A 188 -20.995 -62.832 30.691 1.00 45.93 C +ATOM 2915 CG LEU A 188 -21.530 -62.692 29.264 1.00 52.18 C +ATOM 2916 CD1 LEU A 188 -22.331 -63.930 28.889 1.00 53.84 C +ATOM 2917 CD2 LEU A 188 -22.391 -61.447 29.146 1.00 54.70 C +ATOM 2918 H LEU A 188 -18.524 -63.507 31.308 1.00 20.00 H +ATOM 2919 HA LEU A 188 -19.899 -60.986 30.556 1.00 20.00 H +ATOM 2920 HB2 LEU A 188 -20.601 -63.855 30.785 1.00 20.00 H +ATOM 2921 HB3 LEU A 188 -21.854 -62.707 31.367 1.00 20.00 H +ATOM 2922 HG LEU A 188 -20.677 -62.600 28.576 1.00 20.00 H +ATOM 2923 HD11 LEU A 188 -22.713 -63.824 27.863 1.00 20.00 H +ATOM 2924 HD12 LEU A 188 -21.684 -64.817 28.949 1.00 20.00 H +ATOM 2925 HD13 LEU A 188 -23.176 -64.045 29.584 1.00 20.00 H +ATOM 2926 HD21 LEU A 188 -22.769 -61.358 28.117 1.00 20.00 H +ATOM 2927 HD22 LEU A 188 -23.239 -61.520 29.843 1.00 20.00 H +ATOM 2928 HD23 LEU A 188 -21.789 -60.560 29.393 1.00 20.00 H +ATOM 2929 N TRP A 189 -20.423 -60.191 32.846 1.00 46.93 N +ATOM 2930 CA TRP A 189 -20.711 -59.667 34.173 1.00 50.19 C +ATOM 2931 C TRP A 189 -22.168 -59.231 34.241 1.00 50.47 C +ATOM 2932 O TRP A 189 -22.636 -58.476 33.384 1.00 46.26 O +ATOM 2933 CB TRP A 189 -19.782 -58.504 34.520 1.00 50.83 C +ATOM 2934 CG TRP A 189 -18.433 -58.958 35.005 1.00 50.32 C +ATOM 2935 CD1 TRP A 189 -17.326 -59.197 34.246 1.00 51.20 C +ATOM 2936 CD2 TRP A 189 -18.056 -59.235 36.360 1.00 49.47 C +ATOM 2937 NE1 TRP A 189 -16.281 -59.599 35.043 1.00 50.45 N +ATOM 2938 CE2 TRP A 189 -16.704 -59.631 36.346 1.00 49.48 C +ATOM 2939 CE3 TRP A 189 -18.731 -59.182 37.584 1.00 52.76 C +ATOM 2940 CZ2 TRP A 189 -16.013 -59.973 37.508 1.00 51.19 C +ATOM 2941 CZ3 TRP A 189 -18.042 -59.523 38.737 1.00 57.45 C +ATOM 2942 CH2 TRP A 189 -16.698 -59.912 38.690 1.00 54.49 C +ATOM 2943 H TRP A 189 -20.426 -59.562 32.069 1.00 20.00 H +ATOM 2944 HA TRP A 189 -20.555 -60.463 34.916 1.00 20.00 H +ATOM 2945 HB2 TRP A 189 -19.642 -57.886 33.621 1.00 20.00 H +ATOM 2946 HB3 TRP A 189 -20.254 -57.901 35.310 1.00 20.00 H +ATOM 2947 HD1 TRP A 189 -17.277 -59.086 33.173 1.00 20.00 H +ATOM 2948 HE1 TRP A 189 -15.362 -59.830 34.724 1.00 20.00 H +ATOM 2949 HE3 TRP A 189 -19.767 -58.882 37.630 1.00 20.00 H +ATOM 2950 HZ2 TRP A 189 -14.976 -60.275 37.476 1.00 20.00 H +ATOM 2951 HZ3 TRP A 189 -18.551 -59.488 39.689 1.00 20.00 H +ATOM 2952 HH2 TRP A 189 -16.191 -60.170 39.608 1.00 20.00 H +ATOM 2953 N TYR A 190 -22.869 -59.691 35.273 1.00 50.64 N +ATOM 2954 CA TYR A 190 -24.317 -59.570 35.373 1.00 53.09 C +ATOM 2955 C TYR A 190 -24.707 -58.587 36.468 1.00 54.08 C +ATOM 2956 O TYR A 190 -24.194 -58.661 37.590 1.00 51.91 O +ATOM 2957 CB TYR A 190 -24.951 -60.933 35.657 1.00 48.32 C +ATOM 2958 CG TYR A 190 -24.939 -61.883 34.485 1.00 48.94 C +ATOM 2959 CD1 TYR A 190 -25.965 -61.869 33.546 1.00 50.09 C +ATOM 2960 CD2 TYR A 190 -23.914 -62.803 34.321 1.00 47.98 C +ATOM 2961 CE1 TYR A 190 -25.963 -62.734 32.474 1.00 52.08 C +ATOM 2962 CE2 TYR A 190 -23.905 -63.676 33.250 1.00 50.65 C +ATOM 2963 CZ TYR A 190 -24.934 -63.638 32.330 1.00 52.22 C +ATOM 2964 OH TYR A 190 -24.934 -64.503 31.260 1.00 54.24 O +ATOM 2965 H TYR A 190 -22.378 -60.143 36.018 1.00 20.00 H +ATOM 2966 HA TYR A 190 -24.715 -59.198 34.417 1.00 20.00 H +ATOM 2967 HB2 TYR A 190 -24.401 -61.402 36.486 1.00 20.00 H +ATOM 2968 HB3 TYR A 190 -25.997 -60.770 35.957 1.00 20.00 H +ATOM 2969 HD1 TYR A 190 -26.778 -61.167 33.660 1.00 20.00 H +ATOM 2970 HD2 TYR A 190 -23.110 -62.838 35.042 1.00 20.00 H +ATOM 2971 HE1 TYR A 190 -26.764 -62.703 31.750 1.00 20.00 H +ATOM 2972 HE2 TYR A 190 -23.098 -64.384 33.133 1.00 20.00 H +ATOM 2973 HH TYR A 190 -25.294 -64.065 30.498 1.00 20.00 H +ATOM 2974 N THR A 191 -25.625 -57.684 36.136 1.00 48.88 N +ATOM 2975 CA THR A 191 -26.280 -56.769 37.047 1.00 49.35 C +ATOM 2976 C THR A 191 -27.750 -57.150 37.196 1.00 54.15 C +ATOM 2977 O THR A 191 -28.369 -57.638 36.245 1.00 50.74 O +ATOM 2978 CB THR A 191 -26.167 -55.314 36.565 1.00 47.65 C +ATOM 2979 OG1 THR A 191 -26.521 -54.425 37.632 1.00 52.55 O +ATOM 2980 CG2 THR A 191 -27.089 -55.049 35.379 1.00 45.97 C +ATOM 2981 H THR A 191 -25.886 -57.632 35.172 1.00 20.00 H +ATOM 2982 HA THR A 191 -25.804 -56.839 38.036 1.00 20.00 H +ATOM 2983 HB THR A 191 -25.129 -55.129 36.252 1.00 20.00 H +ATOM 2984 HG1 THR A 191 -25.940 -54.568 38.370 1.00 20.00 H +ATOM 2985 HG21 THR A 191 -26.984 -54.002 35.059 1.00 20.00 H +ATOM 2986 HG22 THR A 191 -26.817 -55.715 34.547 1.00 20.00 H +ATOM 2987 HG23 THR A 191 -28.131 -55.239 35.675 1.00 20.00 H +ATOM 2988 N PRO A 192 -28.333 -56.965 38.377 1.00 55.19 N +ATOM 2989 CA PRO A 192 -29.731 -57.356 38.573 1.00 49.34 C +ATOM 2990 C PRO A 192 -30.691 -56.462 37.805 1.00 51.47 C +ATOM 2991 O PRO A 192 -30.479 -55.255 37.659 1.00 53.66 O +ATOM 2992 CB PRO A 192 -29.936 -57.207 40.086 1.00 48.98 C +ATOM 2993 CG PRO A 192 -28.565 -57.245 40.665 1.00 54.57 C +ATOM 2994 CD PRO A 192 -27.689 -56.591 39.647 1.00 54.86 C +ATOM 2995 HA PRO A 192 -29.884 -58.405 38.281 1.00 20.00 H +ATOM 2996 HB2 PRO A 192 -30.427 -56.250 40.317 1.00 20.00 H +ATOM 2997 HB3 PRO A 192 -30.544 -58.036 40.477 1.00 20.00 H +ATOM 2998 HG2 PRO A 192 -28.532 -56.691 41.615 1.00 20.00 H +ATOM 2999 HG3 PRO A 192 -28.248 -58.284 40.836 1.00 20.00 H +ATOM 3000 HD2 PRO A 192 -26.661 -56.979 39.700 1.00 20.00 H +ATOM 3001 HD3 PRO A 192 -27.676 -55.499 39.778 1.00 20.00 H +ATOM 3002 N ILE A 193 -31.750 -57.080 37.292 1.00 49.89 N +ATOM 3003 CA ILE A 193 -32.907 -56.329 36.823 1.00 48.22 C +ATOM 3004 C ILE A 193 -33.679 -55.905 38.067 1.00 51.27 C +ATOM 3005 O ILE A 193 -34.234 -56.741 38.782 1.00 54.88 O +ATOM 3006 CB ILE A 193 -33.780 -57.149 35.868 1.00 50.57 C +ATOM 3007 CG1 ILE A 193 -32.980 -57.544 34.625 1.00 45.92 C +ATOM 3008 CG2 ILE A 193 -35.010 -56.345 35.471 1.00 56.47 C +ATOM 3009 CD1 ILE A 193 -33.736 -58.442 33.668 1.00 46.25 C +ATOM 3010 H ILE A 193 -31.753 -58.078 37.227 1.00 20.00 H +ATOM 3011 HA ILE A 193 -32.568 -55.425 36.296 1.00 20.00 H +ATOM 3012 HB ILE A 193 -34.105 -58.064 36.385 1.00 20.00 H +ATOM 3013 HG12 ILE A 193 -32.698 -56.626 34.089 1.00 20.00 H +ATOM 3014 HG13 ILE A 193 -32.072 -58.072 34.951 1.00 20.00 H +ATOM 3015 HG21 ILE A 193 -35.632 -56.940 34.786 1.00 20.00 H +ATOM 3016 HG22 ILE A 193 -35.591 -56.096 36.371 1.00 20.00 H +ATOM 3017 HG23 ILE A 193 -34.696 -55.418 34.970 1.00 20.00 H +ATOM 3018 HD11 ILE A 193 -33.097 -58.680 32.805 1.00 20.00 H +ATOM 3019 HD12 ILE A 193 -34.017 -59.372 34.183 1.00 20.00 H +ATOM 3020 HD13 ILE A 193 -34.643 -57.926 33.321 1.00 20.00 H +ATOM 3021 N ARG A 194 -33.694 -54.600 38.337 1.00 55.04 N +ATOM 3022 CA ARG A 194 -34.255 -54.106 39.589 1.00 57.13 C +ATOM 3023 C ARG A 194 -35.762 -54.324 39.656 1.00 61.93 C +ATOM 3024 O ARG A 194 -36.288 -54.741 40.694 1.00 60.69 O +ATOM 3025 CB ARG A 194 -33.923 -52.627 39.749 1.00 60.30 C +ATOM 3026 CG ARG A 194 -34.136 -52.096 41.141 1.00 68.55 C +ATOM 3027 CD ARG A 194 -34.196 -50.590 41.099 1.00 71.19 C +ATOM 3028 NE ARG A 194 -34.457 -50.016 42.411 1.00 70.77 N +ATOM 3029 CZ ARG A 194 -34.885 -48.774 42.601 1.00 73.56 C +ATOM 3030 NH1 ARG A 194 -35.107 -47.985 41.558 1.00 73.23 N +ATOM 3031 NH2 ARG A 194 -35.098 -48.324 43.830 1.00 76.77 N +ATOM 3032 H ARG A 194 -33.317 -53.953 37.674 1.00 20.00 H +ATOM 3033 HA ARG A 194 -33.794 -54.651 40.426 1.00 20.00 H +ATOM 3034 HB2 ARG A 194 -32.866 -52.479 39.481 1.00 20.00 H +ATOM 3035 HB3 ARG A 194 -34.560 -52.054 39.059 1.00 20.00 H +ATOM 3036 HG2 ARG A 194 -35.081 -52.490 41.543 1.00 20.00 H +ATOM 3037 HG3 ARG A 194 -33.303 -52.412 41.786 1.00 20.00 H +ATOM 3038 HD2 ARG A 194 -33.234 -50.207 40.729 1.00 20.00 H +ATOM 3039 HD3 ARG A 194 -35.000 -50.286 40.412 1.00 20.00 H +ATOM 3040 HE ARG A 194 -34.305 -50.590 43.215 1.00 20.00 H +ATOM 3041 HH11 ARG A 194 -35.435 -47.051 41.699 1.00 20.00 H +ATOM 3042 HH12 ARG A 194 -34.946 -48.324 40.631 1.00 20.00 H +ATOM 3043 HH21 ARG A 194 -35.426 -47.390 43.971 1.00 20.00 H +ATOM 3044 HH22 ARG A 194 -34.931 -48.919 44.616 1.00 20.00 H +ATOM 3045 N ARG A 195 -36.475 -54.027 38.573 1.00 62.52 N +ATOM 3046 CA ARG A 195 -37.916 -54.232 38.524 1.00 60.26 C +ATOM 3047 C ARG A 195 -38.298 -54.618 37.105 1.00 62.09 C +ATOM 3048 O ARG A 195 -37.727 -54.102 36.141 1.00 57.68 O +ATOM 3049 CB ARG A 195 -38.674 -52.973 38.967 1.00 65.88 C +ATOM 3050 CG ARG A 195 -40.194 -53.086 38.916 1.00 67.92 C +ATOM 3051 CD ARG A 195 -40.849 -52.115 39.892 1.00 74.26 C +ATOM 3052 NE ARG A 195 -40.882 -50.744 39.392 1.00 77.66 N +ATOM 3053 CZ ARG A 195 -41.907 -50.224 38.724 1.00 77.68 C +ATOM 3054 NH1 ARG A 195 -41.864 -48.967 38.305 1.00 78.62 N +ATOM 3055 NH2 ARG A 195 -42.976 -50.966 38.472 1.00 71.23 N +ATOM 3056 H ARG A 195 -36.009 -53.653 37.771 1.00 20.00 H +ATOM 3057 HA ARG A 195 -38.191 -55.057 39.197 1.00 20.00 H +ATOM 3058 HB2 ARG A 195 -38.383 -52.746 40.003 1.00 20.00 H +ATOM 3059 HB3 ARG A 195 -38.371 -52.144 38.311 1.00 20.00 H +ATOM 3060 HG2 ARG A 195 -40.537 -52.857 37.896 1.00 20.00 H +ATOM 3061 HG3 ARG A 195 -40.487 -54.113 39.180 1.00 20.00 H +ATOM 3062 HD2 ARG A 195 -41.882 -52.446 40.077 1.00 20.00 H +ATOM 3063 HD3 ARG A 195 -40.284 -52.131 40.836 1.00 20.00 H +ATOM 3064 HE ARG A 195 -40.087 -50.162 39.562 1.00 20.00 H +ATOM 3065 HH11 ARG A 195 -42.637 -48.581 37.800 1.00 20.00 H +ATOM 3066 HH12 ARG A 195 -41.059 -48.404 38.493 1.00 20.00 H +ATOM 3067 HH21 ARG A 195 -43.747 -50.577 37.967 1.00 20.00 H +ATOM 3068 HH22 ARG A 195 -43.012 -51.915 38.787 1.00 20.00 H +ATOM 3069 N GLU A 196 -39.254 -55.535 36.978 1.00 66.25 N +ATOM 3070 CA GLU A 196 -39.646 -56.038 35.663 1.00 62.98 C +ATOM 3071 C GLU A 196 -40.675 -55.097 35.049 1.00 66.83 C +ATOM 3072 O GLU A 196 -41.884 -55.307 35.151 1.00 67.58 O +ATOM 3073 CB GLU A 196 -40.187 -57.459 35.765 1.00 62.74 C +ATOM 3074 CG GLU A 196 -39.216 -58.461 36.370 1.00 62.53 C +ATOM 3075 CD GLU A 196 -39.683 -59.894 36.196 1.00 70.07 C +ATOM 3076 OE1 GLU A 196 -40.898 -60.107 35.987 1.00 72.60 O +ATOM 3077 OE2 GLU A 196 -38.835 -60.808 36.255 1.00 71.18 O +ATOM 3078 H GLU A 196 -39.711 -55.885 37.795 1.00 20.00 H +ATOM 3079 HA GLU A 196 -38.762 -56.054 35.008 1.00 20.00 H +ATOM 3080 HB2 GLU A 196 -41.092 -57.438 36.389 1.00 20.00 H +ATOM 3081 HB3 GLU A 196 -40.447 -57.801 34.752 1.00 20.00 H +ATOM 3082 HG2 GLU A 196 -38.238 -58.346 35.880 1.00 20.00 H +ATOM 3083 HG3 GLU A 196 -39.114 -58.250 37.445 1.00 20.00 H +ATOM 3084 N TRP A 197 -40.191 -54.035 34.408 1.00 64.97 N +ATOM 3085 CA TRP A 197 -41.043 -53.213 33.554 1.00 55.76 C +ATOM 3086 C TRP A 197 -40.239 -52.771 32.337 1.00 53.82 C +ATOM 3087 O TRP A 197 -40.254 -53.445 31.303 1.00 50.12 O +ATOM 3088 CB TRP A 197 -41.640 -52.025 34.323 1.00 55.64 C +ATOM 3089 CG TRP A 197 -40.687 -51.038 34.955 1.00 56.74 C +ATOM 3090 CD1 TRP A 197 -39.416 -51.268 35.403 1.00 55.18 C +ATOM 3091 CD2 TRP A 197 -40.950 -49.654 35.193 1.00 56.49 C +ATOM 3092 NE1 TRP A 197 -38.877 -50.109 35.912 1.00 52.80 N +ATOM 3093 CE2 TRP A 197 -39.800 -49.103 35.792 1.00 55.18 C +ATOM 3094 CE3 TRP A 197 -42.052 -48.826 34.959 1.00 59.85 C +ATOM 3095 CZ2 TRP A 197 -39.723 -47.762 36.159 1.00 57.74 C +ATOM 3096 CZ3 TRP A 197 -41.975 -47.500 35.323 1.00 57.68 C +ATOM 3097 CH2 TRP A 197 -40.821 -46.979 35.918 1.00 61.30 C +ATOM 3098 H TRP A 197 -39.226 -53.796 34.514 1.00 20.00 H +ATOM 3099 HA TRP A 197 -41.880 -53.831 33.196 1.00 20.00 H +ATOM 3100 HB2 TRP A 197 -42.272 -51.464 33.619 1.00 20.00 H +ATOM 3101 HB3 TRP A 197 -42.265 -52.438 35.129 1.00 20.00 H +ATOM 3102 HD1 TRP A 197 -38.909 -52.221 35.363 1.00 20.00 H +ATOM 3103 HE1 TRP A 197 -37.962 -50.016 36.305 1.00 20.00 H +ATOM 3104 HE3 TRP A 197 -42.948 -49.219 34.501 1.00 20.00 H +ATOM 3105 HZ2 TRP A 197 -38.833 -47.355 36.616 1.00 20.00 H +ATOM 3106 HZ3 TRP A 197 -42.820 -46.851 35.146 1.00 20.00 H +ATOM 3107 HH2 TRP A 197 -40.795 -45.935 36.194 1.00 20.00 H +ATOM 3108 N TYR A 198 -39.533 -51.654 32.437 1.00 58.39 N +ATOM 3109 CA TYR A 198 -38.348 -51.514 31.619 1.00 55.59 C +ATOM 3110 C TYR A 198 -37.288 -52.490 32.126 1.00 56.54 C +ATOM 3111 O TYR A 198 -37.463 -53.173 33.140 1.00 55.83 O +ATOM 3112 CB TYR A 198 -37.804 -50.087 31.671 1.00 54.56 C +ATOM 3113 CG TYR A 198 -38.716 -48.991 31.168 1.00 56.58 C +ATOM 3114 CD1 TYR A 198 -38.757 -48.656 29.821 1.00 55.51 C +ATOM 3115 CD2 TYR A 198 -39.498 -48.257 32.047 1.00 58.79 C +ATOM 3116 CE1 TYR A 198 -39.574 -47.635 29.361 1.00 63.68 C +ATOM 3117 CE2 TYR A 198 -40.316 -47.237 31.599 1.00 65.17 C +ATOM 3118 CZ TYR A 198 -40.353 -46.930 30.258 1.00 66.77 C +ATOM 3119 OH TYR A 198 -41.170 -45.913 29.823 1.00 70.79 O +ATOM 3120 H TYR A 198 -39.812 -50.926 33.063 1.00 20.00 H +ATOM 3121 HA TYR A 198 -38.585 -51.763 30.574 1.00 20.00 H +ATOM 3122 HB2 TYR A 198 -37.560 -49.862 32.720 1.00 20.00 H +ATOM 3123 HB3 TYR A 198 -36.885 -50.059 31.067 1.00 20.00 H +ATOM 3124 HD1 TYR A 198 -38.142 -49.200 29.120 1.00 20.00 H +ATOM 3125 HD2 TYR A 198 -39.467 -48.487 33.102 1.00 20.00 H +ATOM 3126 HE1 TYR A 198 -39.601 -47.392 28.309 1.00 20.00 H +ATOM 3127 HE2 TYR A 198 -40.924 -46.683 32.299 1.00 20.00 H +ATOM 3128 HH TYR A 198 -41.461 -46.097 28.937 1.00 20.00 H +ATOM 3129 N TYR A 199 -36.170 -52.557 31.420 1.00 57.24 N +ATOM 3130 CA TYR A 199 -35.031 -53.303 31.945 1.00 54.89 C +ATOM 3131 C TYR A 199 -34.244 -52.338 32.820 1.00 52.91 C +ATOM 3132 O TYR A 199 -33.322 -51.659 32.368 1.00 52.01 O +ATOM 3133 CB TYR A 199 -34.198 -53.889 30.815 1.00 52.11 C +ATOM 3134 CG TYR A 199 -34.896 -55.015 30.093 1.00 53.08 C +ATOM 3135 CD1 TYR A 199 -34.912 -56.295 30.623 1.00 55.02 C +ATOM 3136 CD2 TYR A 199 -35.546 -54.796 28.884 1.00 54.28 C +ATOM 3137 CE1 TYR A 199 -35.549 -57.332 29.969 1.00 58.64 C +ATOM 3138 CE2 TYR A 199 -36.185 -55.827 28.221 1.00 53.16 C +ATOM 3139 CZ TYR A 199 -36.187 -57.093 28.769 1.00 54.27 C +ATOM 3140 OH TYR A 199 -36.822 -58.118 28.108 1.00 48.46 O +ATOM 3141 H TYR A 199 -36.106 -52.099 30.533 1.00 20.00 H +ATOM 3142 HA TYR A 199 -35.395 -54.128 32.575 1.00 20.00 H +ATOM 3143 HB2 TYR A 199 -33.978 -53.091 30.091 1.00 20.00 H +ATOM 3144 HB3 TYR A 199 -33.257 -54.272 31.235 1.00 20.00 H +ATOM 3145 HD1 TYR A 199 -34.418 -56.486 31.564 1.00 20.00 H +ATOM 3146 HD2 TYR A 199 -35.552 -53.805 28.456 1.00 20.00 H +ATOM 3147 HE1 TYR A 199 -35.548 -58.325 30.395 1.00 20.00 H +ATOM 3148 HE2 TYR A 199 -36.680 -55.642 27.279 1.00 20.00 H +ATOM 3149 HH TYR A 199 -37.345 -57.762 27.399 1.00 20.00 H +ATOM 3150 N GLU A 200 -34.636 -52.259 34.089 1.00 51.61 N +ATOM 3151 CA GLU A 200 -34.097 -51.261 35.002 1.00 54.89 C +ATOM 3152 C GLU A 200 -32.887 -51.817 35.740 1.00 54.92 C +ATOM 3153 O GLU A 200 -32.925 -52.935 36.266 1.00 54.62 O +ATOM 3154 CB GLU A 200 -35.156 -50.799 36.004 1.00 57.63 C +ATOM 3155 CG GLU A 200 -34.818 -49.473 36.677 1.00 58.04 C +ATOM 3156 CD GLU A 200 -35.686 -49.177 37.885 1.00 61.21 C +ATOM 3157 OE1 GLU A 200 -36.714 -49.864 38.075 1.00 63.30 O +ATOM 3158 OE2 GLU A 200 -35.333 -48.257 38.651 1.00 62.57 O +ATOM 3159 H GLU A 200 -35.321 -52.904 34.426 1.00 20.00 H +ATOM 3160 HA GLU A 200 -33.771 -50.385 34.422 1.00 20.00 H +ATOM 3161 HB2 GLU A 200 -36.112 -50.686 35.473 1.00 20.00 H +ATOM 3162 HB3 GLU A 200 -35.258 -51.569 36.783 1.00 20.00 H +ATOM 3163 HG2 GLU A 200 -33.767 -49.503 37.001 1.00 20.00 H +ATOM 3164 HG3 GLU A 200 -34.953 -48.665 35.943 1.00 20.00 H +ATOM 3165 N VAL A 201 -31.817 -51.025 35.773 1.00 60.04 N +ATOM 3166 CA VAL A 201 -30.579 -51.390 36.452 1.00 54.54 C +ATOM 3167 C VAL A 201 -30.219 -50.276 37.425 1.00 57.64 C +ATOM 3168 O VAL A 201 -30.926 -49.266 37.521 1.00 58.22 O +ATOM 3169 CB VAL A 201 -29.439 -51.636 35.447 1.00 54.46 C +ATOM 3170 CG1 VAL A 201 -29.822 -52.729 34.461 1.00 50.78 C +ATOM 3171 CG2 VAL A 201 -29.087 -50.346 34.715 1.00 59.97 C +ATOM 3172 H VAL A 201 -31.865 -50.139 35.311 1.00 20.00 H +ATOM 3173 HA VAL A 201 -30.738 -52.315 37.025 1.00 20.00 H +ATOM 3174 HB VAL A 201 -28.553 -51.969 36.008 1.00 20.00 H +ATOM 3175 HG11 VAL A 201 -28.996 -52.890 33.752 1.00 20.00 H +ATOM 3176 HG12 VAL A 201 -30.023 -53.662 35.008 1.00 20.00 H +ATOM 3177 HG13 VAL A 201 -30.724 -52.426 33.910 1.00 20.00 H +ATOM 3178 HG21 VAL A 201 -28.272 -50.539 34.002 1.00 20.00 H +ATOM 3179 HG22 VAL A 201 -29.971 -49.980 34.172 1.00 20.00 H +ATOM 3180 HG23 VAL A 201 -28.764 -49.588 35.444 1.00 20.00 H +ATOM 3181 N ILE A 202 -29.112 -50.443 38.143 1.00 55.68 N +ATOM 3182 CA ILE A 202 -28.649 -49.466 39.122 1.00 57.79 C +ATOM 3183 C ILE A 202 -27.198 -49.130 38.814 1.00 58.26 C +ATOM 3184 O ILE A 202 -26.339 -50.020 38.796 1.00 58.31 O +ATOM 3185 CB ILE A 202 -28.784 -49.985 40.562 1.00 63.80 C +ATOM 3186 CG1 ILE A 202 -30.243 -50.276 40.902 1.00 65.37 C +ATOM 3187 CG2 ILE A 202 -28.191 -48.987 41.540 1.00 63.85 C +ATOM 3188 CD1 ILE A 202 -30.453 -50.696 42.336 0.00 65.59 C +ATOM 3189 H ILE A 202 -28.574 -51.275 38.006 1.00 20.00 H +ATOM 3190 HA ILE A 202 -29.247 -48.547 39.029 1.00 20.00 H +ATOM 3191 HB ILE A 202 -28.218 -50.925 40.641 1.00 20.00 H +ATOM 3192 HG12 ILE A 202 -30.832 -49.366 40.715 1.00 20.00 H +ATOM 3193 HG13 ILE A 202 -30.599 -51.084 40.246 1.00 20.00 H +ATOM 3194 HG21 ILE A 202 -28.295 -49.372 42.565 1.00 20.00 H +ATOM 3195 HG22 ILE A 202 -27.126 -48.838 41.311 1.00 20.00 H +ATOM 3196 HG23 ILE A 202 -28.723 -48.028 41.453 1.00 20.00 H +ATOM 3197 HD11 ILE A 202 -31.522 -50.889 42.509 0.00 20.00 H +ATOM 3198 HD12 ILE A 202 -29.878 -51.612 42.538 0.00 20.00 H +ATOM 3199 HD13 ILE A 202 -30.111 -49.894 43.007 0.00 20.00 H +ATOM 3200 N ILE A 203 -26.928 -47.855 38.572 1.00 60.61 N +ATOM 3201 CA ILE A 203 -25.560 -47.368 38.431 1.00 57.74 C +ATOM 3202 C ILE A 203 -25.057 -46.943 39.805 1.00 54.69 C +ATOM 3203 O ILE A 203 -25.744 -46.215 40.528 1.00 54.64 O +ATOM 3204 CB ILE A 203 -25.505 -46.200 37.436 1.00 56.94 C +ATOM 3205 CG1 ILE A 203 -26.011 -46.645 36.063 1.00 54.86 C +ATOM 3206 CG2 ILE A 203 -24.103 -45.626 37.368 1.00 55.58 C +ATOM 3207 CD1 ILE A 203 -26.474 -45.502 35.198 1.00 61.64 C +ATOM 3208 H ILE A 203 -27.685 -47.207 38.483 1.00 20.00 H +ATOM 3209 HA ILE A 203 -24.918 -48.178 38.055 1.00 20.00 H +ATOM 3210 HB ILE A 203 -26.178 -45.412 37.805 1.00 20.00 H +ATOM 3211 HG12 ILE A 203 -25.195 -47.168 35.543 1.00 20.00 H +ATOM 3212 HG13 ILE A 203 -26.854 -47.336 36.209 1.00 20.00 H +ATOM 3213 HG21 ILE A 203 -24.082 -44.792 36.652 1.00 20.00 H +ATOM 3214 HG22 ILE A 203 -23.807 -45.262 38.363 1.00 20.00 H +ATOM 3215 HG23 ILE A 203 -23.402 -46.408 37.040 1.00 20.00 H +ATOM 3216 HD11 ILE A 203 -26.823 -45.892 34.230 1.00 20.00 H +ATOM 3217 HD12 ILE A 203 -27.298 -44.974 35.699 1.00 20.00 H +ATOM 3218 HD13 ILE A 203 -25.639 -44.806 35.033 1.00 20.00 H +ATOM 3219 N VAL A 204 -23.863 -47.395 40.175 1.00 52.35 N +ATOM 3220 CA VAL A 204 -23.328 -47.084 41.498 1.00 54.28 C +ATOM 3221 C VAL A 204 -22.129 -46.146 41.448 1.00 53.89 C +ATOM 3222 O VAL A 204 -21.751 -45.610 42.507 1.00 55.98 O +ATOM 3223 CB VAL A 204 -22.975 -48.365 42.280 1.00 57.67 C +ATOM 3224 CG1 VAL A 204 -24.165 -49.315 42.315 1.00 52.58 C +ATOM 3225 CG2 VAL A 204 -21.754 -49.045 41.693 1.00 54.98 C +ATOM 3226 H VAL A 204 -23.326 -47.953 39.542 1.00 20.00 H +ATOM 3227 HA VAL A 204 -24.116 -46.570 42.068 1.00 20.00 H +ATOM 3228 HB VAL A 204 -22.741 -48.074 43.315 1.00 20.00 H +ATOM 3229 HG11 VAL A 204 -23.895 -50.222 42.876 1.00 20.00 H +ATOM 3230 HG12 VAL A 204 -25.015 -48.819 42.807 1.00 20.00 H +ATOM 3231 HG13 VAL A 204 -24.445 -49.590 41.287 1.00 20.00 H +ATOM 3232 HG21 VAL A 204 -21.527 -49.953 42.270 1.00 20.00 H +ATOM 3233 HG22 VAL A 204 -21.953 -49.316 40.646 1.00 20.00 H +ATOM 3234 HG23 VAL A 204 -20.896 -48.359 41.737 1.00 20.00 H +ATOM 3235 N ARG A 205 -21.534 -45.907 40.284 1.00 51.33 N +ATOM 3236 CA ARG A 205 -20.358 -45.054 40.175 1.00 53.43 C +ATOM 3237 C ARG A 205 -20.123 -44.721 38.708 1.00 54.11 C +ATOM 3238 O ARG A 205 -20.397 -45.537 37.825 1.00 54.86 O +ATOM 3239 CB ARG A 205 -19.119 -45.732 40.784 1.00 52.64 C +ATOM 3240 CG ARG A 205 -17.827 -44.930 40.692 1.00 54.94 C +ATOM 3241 CD ARG A 205 -16.675 -45.684 41.356 1.00 55.67 C +ATOM 3242 NE ARG A 205 -15.361 -45.111 41.060 1.00 58.48 N +ATOM 3243 CZ ARG A 205 -14.693 -44.293 41.871 1.00 59.31 C +ATOM 3244 NH1 ARG A 205 -15.209 -43.935 43.040 1.00 55.60 N +ATOM 3245 NH2 ARG A 205 -13.504 -43.830 41.513 1.00 63.40 N +ATOM 3246 H ARG A 205 -21.906 -46.326 39.456 1.00 20.00 H +ATOM 3247 HA ARG A 205 -20.539 -44.115 40.720 1.00 20.00 H +ATOM 3248 HB2 ARG A 205 -19.325 -45.924 41.847 1.00 20.00 H +ATOM 3249 HB3 ARG A 205 -18.964 -46.688 40.262 1.00 20.00 H +ATOM 3250 HG2 ARG A 205 -17.583 -44.758 39.633 1.00 20.00 H +ATOM 3251 HG3 ARG A 205 -17.965 -43.963 41.198 1.00 20.00 H +ATOM 3252 HD2 ARG A 205 -16.827 -45.665 42.445 1.00 20.00 H +ATOM 3253 HD3 ARG A 205 -16.690 -46.725 41.002 1.00 20.00 H +ATOM 3254 HE ARG A 205 -14.935 -45.351 40.188 1.00 20.00 H +ATOM 3255 HH11 ARG A 205 -14.701 -43.320 43.644 1.00 20.00 H +ATOM 3256 HH12 ARG A 205 -16.106 -44.280 43.318 1.00 20.00 H +ATOM 3257 HH21 ARG A 205 -13.002 -43.216 42.122 1.00 20.00 H +ATOM 3258 HH22 ARG A 205 -13.108 -44.095 40.634 1.00 20.00 H +ATOM 3259 N VAL A 206 -19.617 -43.512 38.460 1.00 56.57 N +ATOM 3260 CA VAL A 206 -19.318 -43.039 37.112 1.00 58.25 C +ATOM 3261 C VAL A 206 -17.929 -42.411 37.103 1.00 60.17 C +ATOM 3262 O VAL A 206 -17.598 -41.616 37.990 1.00 59.41 O +ATOM 3263 CB VAL A 206 -20.367 -42.026 36.614 1.00 60.57 C +ATOM 3264 CG1 VAL A 206 -19.994 -41.513 35.232 1.00 56.83 C +ATOM 3265 CG2 VAL A 206 -21.756 -42.653 36.598 1.00 54.54 C +ATOM 3266 H VAL A 206 -19.434 -42.903 39.232 1.00 20.00 H +ATOM 3267 HA VAL A 206 -19.315 -43.895 36.421 1.00 20.00 H +ATOM 3268 HB VAL A 206 -20.379 -41.174 37.310 1.00 20.00 H +ATOM 3269 HG11 VAL A 206 -20.752 -40.792 34.891 1.00 20.00 H +ATOM 3270 HG12 VAL A 206 -19.012 -41.019 35.277 1.00 20.00 H +ATOM 3271 HG13 VAL A 206 -19.948 -42.357 34.528 1.00 20.00 H +ATOM 3272 HG21 VAL A 206 -22.488 -41.914 36.240 1.00 20.00 H +ATOM 3273 HG22 VAL A 206 -21.757 -43.525 35.927 1.00 20.00 H +ATOM 3274 HG23 VAL A 206 -22.025 -42.973 37.615 1.00 20.00 H +ATOM 3275 N GLU A 207 -17.127 -42.752 36.091 1.00 59.63 N +ATOM 3276 CA GLU A 207 -15.802 -42.179 35.908 1.00 63.51 C +ATOM 3277 C GLU A 207 -15.653 -41.631 34.497 1.00 59.82 C +ATOM 3278 O GLU A 207 -16.274 -42.124 33.551 1.00 59.59 O +ATOM 3279 CB GLU A 207 -14.694 -43.209 36.135 1.00 59.74 C +ATOM 3280 CG GLU A 207 -14.607 -43.807 37.516 1.00 61.57 C +ATOM 3281 CD GLU A 207 -13.621 -44.955 37.546 1.00 58.32 C +ATOM 3282 OE1 GLU A 207 -13.004 -45.215 36.493 1.00 62.19 O +ATOM 3283 OE2 GLU A 207 -13.468 -45.597 38.604 1.00 59.30 O +ATOM 3284 H GLU A 207 -17.451 -43.430 35.431 1.00 20.00 H +ATOM 3285 HA GLU A 207 -15.660 -41.353 36.620 1.00 20.00 H +ATOM 3286 HB2 GLU A 207 -14.852 -44.033 35.423 1.00 20.00 H +ATOM 3287 HB3 GLU A 207 -13.733 -42.719 35.922 1.00 20.00 H +ATOM 3288 HG2 GLU A 207 -14.279 -43.032 38.224 1.00 20.00 H +ATOM 3289 HG3 GLU A 207 -15.600 -44.177 37.812 1.00 20.00 H +ATOM 3290 N ILE A 208 -14.800 -40.620 34.362 1.00 60.03 N +ATOM 3291 CA ILE A 208 -14.356 -40.108 33.068 1.00 60.61 C +ATOM 3292 C ILE A 208 -12.838 -40.221 33.048 1.00 60.32 C +ATOM 3293 O ILE A 208 -12.146 -39.470 33.749 1.00 60.78 O +ATOM 3294 CB ILE A 208 -14.800 -38.659 32.824 1.00 60.13 C +ATOM 3295 CG1 ILE A 208 -16.311 -38.512 33.012 1.00 65.56 C +ATOM 3296 CG2 ILE A 208 -14.373 -38.206 31.433 1.00 61.72 C +ATOM 3297 CD1 ILE A 208 -17.134 -39.333 32.046 1.00 66.49 C +ATOM 3298 H ILE A 208 -14.444 -40.187 35.190 1.00 20.00 H +ATOM 3299 HA ILE A 208 -14.766 -40.738 32.265 1.00 20.00 H +ATOM 3300 HB ILE A 208 -14.298 -38.018 33.564 1.00 20.00 H +ATOM 3301 HG12 ILE A 208 -16.564 -38.826 34.035 1.00 20.00 H +ATOM 3302 HG13 ILE A 208 -16.575 -37.453 32.877 1.00 20.00 H +ATOM 3303 HG21 ILE A 208 -14.696 -37.167 31.270 1.00 20.00 H +ATOM 3304 HG22 ILE A 208 -13.278 -38.267 31.348 1.00 20.00 H +ATOM 3305 HG23 ILE A 208 -14.836 -38.857 30.677 1.00 20.00 H +ATOM 3306 HD11 ILE A 208 -18.204 -39.172 32.246 1.00 20.00 H +ATOM 3307 HD12 ILE A 208 -16.904 -39.026 31.015 1.00 20.00 H +ATOM 3308 HD13 ILE A 208 -16.893 -40.399 32.173 1.00 20.00 H +ATOM 3309 N ASN A 209 -12.319 -41.146 32.238 1.00 60.08 N +ATOM 3310 CA ASN A 209 -10.882 -41.432 32.192 1.00 58.64 C +ATOM 3311 C ASN A 209 -10.335 -41.713 33.588 1.00 57.26 C +ATOM 3312 O ASN A 209 -9.271 -41.227 33.974 1.00 58.38 O +ATOM 3313 CB ASN A 209 -10.111 -40.293 31.522 1.00 58.48 C +ATOM 3314 CG ASN A 209 -9.578 -40.677 30.159 1.00 61.61 C +ATOM 3315 OD1 ASN A 209 -9.904 -41.738 29.627 1.00 62.58 O +ATOM 3316 ND2 ASN A 209 -8.760 -39.810 29.580 1.00 59.16 N +ATOM 3317 H ASN A 209 -12.933 -41.663 31.641 1.00 20.00 H +ATOM 3318 HA ASN A 209 -10.729 -42.337 31.586 1.00 20.00 H +ATOM 3319 HB2 ASN A 209 -10.784 -39.431 31.407 1.00 20.00 H +ATOM 3320 HB3 ASN A 209 -9.264 -40.014 32.166 1.00 20.00 H +ATOM 3321 HD21 ASN A 209 -8.382 -40.007 28.675 1.00 20.00 H +ATOM 3322 HD22 ASN A 209 -8.521 -38.959 30.048 1.00 20.00 H +ATOM 3323 N GLY A 210 -11.078 -42.508 34.356 1.00 56.07 N +ATOM 3324 CA GLY A 210 -10.691 -42.865 35.701 1.00 55.87 C +ATOM 3325 C GLY A 210 -11.070 -41.871 36.775 1.00 58.48 C +ATOM 3326 O GLY A 210 -11.057 -42.232 37.959 1.00 55.88 O +ATOM 3327 H GLY A 210 -11.934 -42.871 33.988 1.00 20.00 H +ATOM 3328 HA2 GLY A 210 -11.167 -43.826 35.946 1.00 20.00 H +ATOM 3329 HA3 GLY A 210 -9.597 -42.982 35.719 1.00 20.00 H +ATOM 3330 N GLN A 211 -11.417 -40.640 36.413 1.00 60.27 N +ATOM 3331 CA GLN A 211 -11.710 -39.596 37.388 1.00 62.52 C +ATOM 3332 C GLN A 211 -13.161 -39.707 37.843 1.00 64.23 C +ATOM 3333 O GLN A 211 -14.084 -39.601 37.028 1.00 59.84 O +ATOM 3334 CB GLN A 211 -11.430 -38.216 36.795 1.00 62.13 C +ATOM 3335 CG GLN A 211 -11.600 -37.075 37.774 1.00 67.96 C +ATOM 3336 CD GLN A 211 -10.892 -35.818 37.316 1.00 74.64 C +ATOM 3337 OE1 GLN A 211 -10.439 -35.015 38.131 1.00 79.16 O +ATOM 3338 NE2 GLN A 211 -10.785 -35.644 36.004 1.00 75.81 N +ATOM 3339 H GLN A 211 -11.479 -40.422 35.439 1.00 20.00 H +ATOM 3340 HA GLN A 211 -11.062 -39.731 38.266 1.00 20.00 H +ATOM 3341 HB2 GLN A 211 -10.394 -38.203 36.426 1.00 20.00 H +ATOM 3342 HB3 GLN A 211 -12.121 -38.055 35.954 1.00 20.00 H +ATOM 3343 HG2 GLN A 211 -12.673 -36.858 37.882 1.00 20.00 H +ATOM 3344 HG3 GLN A 211 -11.188 -37.379 38.747 1.00 20.00 H +ATOM 3345 HE21 GLN A 211 -10.321 -34.835 35.643 1.00 20.00 H +ATOM 3346 HE22 GLN A 211 -11.168 -36.322 35.377 1.00 20.00 H +ATOM 3347 N ASP A 212 -13.353 -39.912 39.145 1.00 67.68 N +ATOM 3348 CA ASP A 212 -14.691 -40.044 39.709 1.00 65.71 C +ATOM 3349 C ASP A 212 -15.498 -38.766 39.501 1.00 62.61 C +ATOM 3350 O ASP A 212 -15.020 -37.663 39.785 1.00 59.39 O +ATOM 3351 CB ASP A 212 -14.583 -40.371 41.199 1.00 65.98 C +ATOM 3352 CG ASP A 212 -15.930 -40.584 41.850 1.00 65.42 C +ATOM 3353 OD1 ASP A 212 -16.911 -40.838 41.122 1.00 64.83 O +ATOM 3354 OD2 ASP A 212 -16.008 -40.495 43.094 1.00 64.64 O +ATOM 3355 H ASP A 212 -12.560 -39.977 39.751 1.00 20.00 H +ATOM 3356 HA ASP A 212 -15.216 -40.872 39.210 1.00 20.00 H +ATOM 3357 HB2 ASP A 212 -13.987 -41.288 41.315 1.00 20.00 H +ATOM 3358 HB3 ASP A 212 -14.075 -39.537 41.706 1.00 20.00 H +ATOM 3359 N LEU A 213 -16.735 -38.918 39.007 1.00 61.52 N +ATOM 3360 CA LEU A 213 -17.616 -37.765 38.845 1.00 64.07 C +ATOM 3361 C LEU A 213 -18.100 -37.240 40.192 1.00 66.17 C +ATOM 3362 O LEU A 213 -18.390 -36.044 40.319 1.00 67.68 O +ATOM 3363 CB LEU A 213 -18.801 -38.129 37.943 1.00 67.37 C +ATOM 3364 CG LEU A 213 -19.300 -37.073 36.950 1.00 71.47 C +ATOM 3365 CD1 LEU A 213 -18.194 -36.649 35.997 1.00 72.92 C +ATOM 3366 CD2 LEU A 213 -20.495 -37.608 36.171 1.00 74.61 C +ATOM 3367 H LEU A 213 -17.057 -39.828 38.747 1.00 20.00 H +ATOM 3368 HA LEU A 213 -17.054 -36.959 38.351 1.00 20.00 H +ATOM 3369 HB2 LEU A 213 -18.508 -39.014 37.360 1.00 20.00 H +ATOM 3370 HB3 LEU A 213 -19.645 -38.386 38.600 1.00 20.00 H +ATOM 3371 HG LEU A 213 -19.625 -36.190 37.520 1.00 20.00 H +ATOM 3372 HD11 LEU A 213 -18.581 -35.893 35.298 1.00 20.00 H +ATOM 3373 HD12 LEU A 213 -17.358 -36.223 36.572 1.00 20.00 H +ATOM 3374 HD13 LEU A 213 -17.842 -37.524 35.431 1.00 20.00 H +ATOM 3375 HD21 LEU A 213 -20.844 -36.842 35.462 1.00 20.00 H +ATOM 3376 HD22 LEU A 213 -20.197 -38.511 35.618 1.00 20.00 H +ATOM 3377 HD23 LEU A 213 -21.307 -37.857 36.870 1.00 20.00 H +ATOM 3378 N LYS A 214 -18.223 -38.124 41.189 1.00 69.44 N +ATOM 3379 CA LYS A 214 -18.277 -37.745 42.607 1.00 72.83 C +ATOM 3380 C LYS A 214 -19.606 -37.084 42.988 1.00 75.69 C +ATOM 3381 O LYS A 214 -19.640 -35.979 43.530 1.00 73.06 O +ATOM 3382 CB LYS A 214 -17.092 -36.842 42.971 1.00 76.28 C +ATOM 3383 CG LYS A 214 -16.706 -36.870 44.437 1.00 79.36 C +ATOM 3384 CD LYS A 214 -15.474 -36.016 44.691 0.00 81.29 C +ATOM 3385 CE LYS A 214 -15.097 -36.022 46.164 0.00 83.32 C +ATOM 3386 NZ LYS A 214 -13.904 -35.176 46.444 0.00 84.57 N +ATOM 3387 H LYS A 214 -18.281 -39.095 40.956 1.00 20.00 H +ATOM 3388 HA LYS A 214 -18.185 -38.662 43.208 1.00 20.00 H +ATOM 3389 HB2 LYS A 214 -16.221 -37.163 42.381 1.00 20.00 H +ATOM 3390 HB3 LYS A 214 -17.354 -35.807 42.705 1.00 20.00 H +ATOM 3391 HG2 LYS A 214 -17.543 -36.482 45.037 1.00 20.00 H +ATOM 3392 HG3 LYS A 214 -16.492 -37.908 44.733 1.00 20.00 H +ATOM 3393 HD2 LYS A 214 -14.634 -36.414 44.104 0.00 20.00 H +ATOM 3394 HD3 LYS A 214 -15.683 -34.982 44.378 0.00 20.00 H +ATOM 3395 HE2 LYS A 214 -15.947 -35.640 46.749 0.00 20.00 H +ATOM 3396 HE3 LYS A 214 -14.877 -37.056 46.469 0.00 20.00 H +ATOM 3397 HZ1 LYS A 214 -13.693 -35.209 47.421 0.00 20.00 H +ATOM 3398 HZ2 LYS A 214 -13.123 -35.519 45.922 0.00 20.00 H +ATOM 3399 HZ3 LYS A 214 -14.095 -34.232 46.176 0.00 20.00 H +ATOM 3400 N MET A 215 -20.706 -37.783 42.724 1.00 77.97 N +ATOM 3401 CA MET A 215 -22.030 -37.323 43.112 1.00 76.06 C +ATOM 3402 C MET A 215 -22.695 -38.353 44.014 1.00 73.12 C +ATOM 3403 O MET A 215 -22.234 -39.492 44.142 1.00 71.71 O +ATOM 3404 CB MET A 215 -22.914 -37.062 41.884 1.00 76.76 C +ATOM 3405 CG MET A 215 -22.298 -36.116 40.865 1.00 76.73 C +ATOM 3406 SD MET A 215 -23.199 -36.039 39.304 1.00 76.94 S +ATOM 3407 CE MET A 215 -24.778 -35.370 39.830 1.00 79.22 C +ATOM 3408 H MET A 215 -20.620 -38.655 42.242 1.00 20.00 H +ATOM 3409 HA MET A 215 -21.936 -36.382 43.673 1.00 20.00 H +ATOM 3410 HB2 MET A 215 -23.109 -38.024 41.388 1.00 20.00 H +ATOM 3411 HB3 MET A 215 -23.864 -36.628 42.228 1.00 20.00 H +ATOM 3412 HG2 MET A 215 -22.272 -35.106 41.301 1.00 20.00 H +ATOM 3413 HG3 MET A 215 -21.271 -36.452 40.657 1.00 20.00 H +ATOM 3414 HE1 MET A 215 -25.423 -35.217 38.952 1.00 20.00 H +ATOM 3415 HE2 MET A 215 -25.262 -36.075 40.522 1.00 20.00 H +ATOM 3416 HE3 MET A 215 -24.617 -34.408 40.339 1.00 20.00 H +ATOM 3417 N ASP A 216 -23.774 -37.930 44.666 1.00 75.63 N +ATOM 3418 CA ASP A 216 -24.653 -38.885 45.320 1.00 81.18 C +ATOM 3419 C ASP A 216 -25.124 -39.890 44.278 1.00 78.58 C +ATOM 3420 O ASP A 216 -25.668 -39.509 43.237 1.00 80.49 O +ATOM 3421 CB ASP A 216 -25.842 -38.164 45.953 1.00 87.60 C +ATOM 3422 CG ASP A 216 -26.550 -39.004 46.997 1.00 91.49 C +ATOM 3423 OD1 ASP A 216 -26.513 -40.247 46.892 1.00 90.04 O +ATOM 3424 OD2 ASP A 216 -27.145 -38.415 47.925 1.00 91.04 O +ATOM 3425 H ASP A 216 -23.981 -36.952 44.706 1.00 20.00 H +ATOM 3426 HA ASP A 216 -24.102 -39.420 46.108 1.00 20.00 H +ATOM 3427 HB2 ASP A 216 -25.480 -37.242 46.431 1.00 20.00 H +ATOM 3428 HB3 ASP A 216 -26.561 -37.909 45.160 1.00 20.00 H +ATOM 3429 N CYS A 217 -24.893 -41.179 44.541 1.00 75.34 N +ATOM 3430 CA CYS A 217 -25.154 -42.168 43.500 1.00 75.74 C +ATOM 3431 C CYS A 217 -26.634 -42.299 43.166 1.00 74.41 C +ATOM 3432 O CYS A 217 -26.969 -42.921 42.155 1.00 74.45 O +ATOM 3433 CB CYS A 217 -24.579 -43.533 43.885 1.00 78.29 C +ATOM 3434 SG CYS A 217 -25.288 -44.308 45.346 1.00 79.47 S +ATOM 3435 H CYS A 217 -24.547 -41.461 45.436 1.00 20.00 H +ATOM 3436 HA CYS A 217 -24.639 -41.844 42.584 1.00 20.00 H +ATOM 3437 HB2 CYS A 217 -24.733 -44.214 43.035 1.00 20.00 H +ATOM 3438 HB3 CYS A 217 -23.501 -43.405 44.062 1.00 20.00 H +ATOM 3439 N LYS A 218 -27.528 -41.730 43.976 1.00 75.59 N +ATOM 3440 CA LYS A 218 -28.931 -41.671 43.573 1.00 73.75 C +ATOM 3441 C LYS A 218 -29.126 -40.799 42.341 1.00 70.62 C +ATOM 3442 O LYS A 218 -30.038 -41.047 41.545 1.00 73.72 O +ATOM 3443 CB LYS A 218 -29.800 -41.150 44.717 1.00 76.72 C +ATOM 3444 CG LYS A 218 -30.060 -42.134 45.839 1.00 77.28 C +ATOM 3445 CD LYS A 218 -31.003 -41.508 46.857 1.00 79.66 C +ATOM 3446 CE LYS A 218 -31.379 -42.467 47.974 0.00 78.20 C +ATOM 3447 NZ LYS A 218 -30.199 -42.876 48.785 0.00 79.25 N +ATOM 3448 H LYS A 218 -27.240 -41.346 44.853 1.00 20.00 H +ATOM 3449 HA LYS A 218 -29.271 -42.688 43.326 1.00 20.00 H +ATOM 3450 HB2 LYS A 218 -29.301 -40.269 45.147 1.00 20.00 H +ATOM 3451 HB3 LYS A 218 -30.771 -40.852 44.296 1.00 20.00 H +ATOM 3452 HG2 LYS A 218 -30.518 -43.046 45.428 1.00 20.00 H +ATOM 3453 HG3 LYS A 218 -29.109 -42.390 46.329 1.00 20.00 H +ATOM 3454 HD2 LYS A 218 -30.511 -40.629 47.299 1.00 20.00 H +ATOM 3455 HD3 LYS A 218 -31.921 -41.193 46.339 1.00 20.00 H +ATOM 3456 HE2 LYS A 218 -32.109 -41.974 48.633 0.00 20.00 H +ATOM 3457 HE3 LYS A 218 -31.833 -43.366 47.531 0.00 20.00 H +ATOM 3458 HZ1 LYS A 218 -30.489 -43.068 49.723 0.00 20.00 H +ATOM 3459 HZ2 LYS A 218 -29.791 -43.698 48.388 0.00 20.00 H +ATOM 3460 HZ3 LYS A 218 -29.525 -42.137 48.789 0.00 20.00 H +ATOM 3461 N GLU A 219 -28.288 -39.774 42.167 1.00 69.10 N +ATOM 3462 CA GLU A 219 -28.431 -38.894 41.011 1.00 69.24 C +ATOM 3463 C GLU A 219 -28.237 -39.651 39.707 1.00 67.12 C +ATOM 3464 O GLU A 219 -28.841 -39.297 38.688 1.00 68.17 O +ATOM 3465 CB GLU A 219 -27.435 -37.738 41.102 1.00 71.38 C +ATOM 3466 CG GLU A 219 -27.584 -36.900 42.355 1.00 75.78 C +ATOM 3467 CD GLU A 219 -28.835 -36.047 42.342 0.00 75.12 C +ATOM 3468 OE1 GLU A 219 -29.239 -35.598 41.248 0.00 75.17 O +ATOM 3469 OE2 GLU A 219 -29.418 -35.833 43.424 0.00 75.88 O +ATOM 3470 H GLU A 219 -27.559 -39.609 42.832 1.00 20.00 H +ATOM 3471 HA GLU A 219 -29.445 -38.469 41.011 1.00 20.00 H +ATOM 3472 HB2 GLU A 219 -26.417 -38.155 41.083 1.00 20.00 H +ATOM 3473 HB3 GLU A 219 -27.581 -37.085 40.229 1.00 20.00 H +ATOM 3474 HG2 GLU A 219 -27.625 -37.572 43.225 1.00 20.00 H +ATOM 3475 HG3 GLU A 219 -26.709 -36.240 42.443 1.00 20.00 H +ATOM 3476 N TYR A 220 -27.402 -40.692 39.718 1.00 62.58 N +ATOM 3477 CA TYR A 220 -27.216 -41.501 38.522 1.00 60.62 C +ATOM 3478 C TYR A 220 -28.469 -42.288 38.151 1.00 61.03 C +ATOM 3479 O TYR A 220 -28.612 -42.685 36.990 1.00 63.48 O +ATOM 3480 CB TYR A 220 -26.042 -42.462 38.716 1.00 58.51 C +ATOM 3481 CG TYR A 220 -24.726 -41.797 39.077 1.00 60.80 C +ATOM 3482 CD1 TYR A 220 -24.279 -40.666 38.406 1.00 59.44 C +ATOM 3483 CD2 TYR A 220 -23.930 -42.309 40.092 1.00 63.15 C +ATOM 3484 CE1 TYR A 220 -23.072 -40.063 38.737 1.00 60.62 C +ATOM 3485 CE2 TYR A 220 -22.726 -41.714 40.430 1.00 67.12 C +ATOM 3486 CZ TYR A 220 -22.301 -40.592 39.751 1.00 65.29 C +ATOM 3487 OH TYR A 220 -21.101 -40.001 40.087 1.00 66.09 O +ATOM 3488 H TYR A 220 -26.901 -40.918 40.553 1.00 20.00 H +ATOM 3489 HA TYR A 220 -26.972 -40.837 37.680 1.00 20.00 H +ATOM 3490 HB2 TYR A 220 -26.303 -43.163 39.522 1.00 20.00 H +ATOM 3491 HB3 TYR A 220 -25.898 -43.019 37.779 1.00 20.00 H +ATOM 3492 HD1 TYR A 220 -24.881 -40.248 37.613 1.00 20.00 H +ATOM 3493 HD2 TYR A 220 -24.256 -43.188 40.628 1.00 20.00 H +ATOM 3494 HE1 TYR A 220 -22.739 -39.185 38.203 1.00 20.00 H +ATOM 3495 HE2 TYR A 220 -22.122 -42.128 41.223 1.00 20.00 H +ATOM 3496 HH TYR A 220 -21.196 -39.056 40.065 1.00 20.00 H +ATOM 3497 N ASN A 221 -29.377 -42.525 39.100 1.00 62.68 N +ATOM 3498 CA ASN A 221 -30.558 -43.349 38.860 1.00 66.00 C +ATOM 3499 C ASN A 221 -31.856 -42.607 39.171 1.00 68.45 C +ATOM 3500 O ASN A 221 -32.839 -43.222 39.588 1.00 69.69 O +ATOM 3501 CB ASN A 221 -30.498 -44.646 39.670 1.00 62.99 C +ATOM 3502 CG ASN A 221 -29.164 -45.358 39.549 1.00 64.78 C +ATOM 3503 OD1 ASN A 221 -28.828 -45.904 38.498 1.00 61.99 O +ATOM 3504 ND2 ASN A 221 -28.401 -45.367 40.636 1.00 64.51 N +ATOM 3505 H ASN A 221 -29.244 -42.124 40.007 1.00 20.00 H +ATOM 3506 HA ASN A 221 -30.579 -43.624 37.795 1.00 20.00 H +ATOM 3507 HB2 ASN A 221 -30.673 -44.406 40.729 1.00 20.00 H +ATOM 3508 HB3 ASN A 221 -31.289 -45.320 39.311 1.00 20.00 H +ATOM 3509 HD21 ASN A 221 -27.515 -45.830 40.621 1.00 20.00 H +ATOM 3510 HD22 ASN A 221 -28.713 -44.911 41.469 1.00 20.00 H +ATOM 3511 N TYR A 222 -31.882 -41.294 38.973 1.00 65.11 N +ATOM 3512 CA TYR A 222 -33.086 -40.502 39.202 1.00 69.38 C +ATOM 3513 C TYR A 222 -33.710 -40.156 37.853 1.00 69.49 C +ATOM 3514 O TYR A 222 -33.122 -39.406 37.067 1.00 68.03 O +ATOM 3515 CB TYR A 222 -32.783 -39.237 40.001 1.00 79.09 C +ATOM 3516 CG TYR A 222 -33.998 -38.360 40.115 1.00 86.76 C +ATOM 3517 CD1 TYR A 222 -35.048 -38.719 40.942 1.00 87.26 C +ATOM 3518 CD2 TYR A 222 -34.113 -37.195 39.371 1.00 87.23 C +ATOM 3519 CE1 TYR A 222 -36.173 -37.938 41.044 1.00 89.12 C +ATOM 3520 CE2 TYR A 222 -35.237 -36.403 39.465 1.00 87.39 C +ATOM 3521 CZ TYR A 222 -36.266 -36.779 40.304 1.00 89.70 C +ATOM 3522 OH TYR A 222 -37.397 -36.000 40.407 1.00 93.18 O +ATOM 3523 H TYR A 222 -31.052 -40.834 38.658 1.00 20.00 H +ATOM 3524 HA TYR A 222 -33.810 -41.104 39.772 1.00 20.00 H +ATOM 3525 HB2 TYR A 222 -32.450 -39.521 41.010 1.00 20.00 H +ATOM 3526 HB3 TYR A 222 -31.983 -38.677 39.495 1.00 20.00 H +ATOM 3527 HD1 TYR A 222 -34.981 -39.630 41.518 1.00 20.00 H +ATOM 3528 HD2 TYR A 222 -33.311 -36.904 38.709 1.00 20.00 H +ATOM 3529 HE1 TYR A 222 -36.980 -38.230 41.700 1.00 20.00 H +ATOM 3530 HE2 TYR A 222 -35.312 -35.494 38.886 1.00 20.00 H +ATOM 3531 HH TYR A 222 -37.148 -35.085 40.466 1.00 20.00 H +ATOM 3532 N ASP A 223 -34.911 -40.673 37.596 1.00 66.22 N +ATOM 3533 CA ASP A 223 -35.668 -41.451 38.577 1.00 67.50 C +ATOM 3534 C ASP A 223 -35.618 -42.943 38.268 1.00 69.94 C +ATOM 3535 O ASP A 223 -36.261 -43.752 38.941 1.00 71.40 O +ATOM 3536 CB ASP A 223 -37.118 -40.975 38.630 1.00 71.13 C +ATOM 3537 CG ASP A 223 -37.800 -41.024 37.276 1.00 72.56 C +ATOM 3538 OD1 ASP A 223 -37.092 -41.132 36.253 1.00 75.01 O +ATOM 3539 OD2 ASP A 223 -39.047 -40.945 37.238 1.00 74.64 O +ATOM 3540 H ASP A 223 -35.313 -40.523 36.693 1.00 20.00 H +ATOM 3541 HA ASP A 223 -35.224 -41.295 39.571 1.00 20.00 H +ATOM 3542 HB2 ASP A 223 -37.674 -41.618 39.328 1.00 20.00 H +ATOM 3543 HB3 ASP A 223 -37.135 -39.938 38.995 1.00 20.00 H +ATOM 3544 N LYS A 224 -34.852 -43.294 37.239 1.00 69.93 N +ATOM 3545 CA LYS A 224 -34.632 -44.686 36.876 1.00 67.71 C +ATOM 3546 C LYS A 224 -33.446 -44.752 35.925 1.00 65.22 C +ATOM 3547 O LYS A 224 -33.059 -43.753 35.313 1.00 67.68 O +ATOM 3548 CB LYS A 224 -35.879 -45.312 36.236 1.00 67.18 C +ATOM 3549 CG LYS A 224 -36.200 -44.782 34.847 1.00 69.45 C +ATOM 3550 CD LYS A 224 -37.503 -45.361 34.306 1.00 71.01 C +ATOM 3551 CE LYS A 224 -37.883 -44.727 32.970 1.00 67.53 C +ATOM 3552 NZ LYS A 224 -38.221 -43.279 33.092 1.00 71.05 N +ATOM 3553 H LYS A 224 -34.413 -42.578 36.697 1.00 20.00 H +ATOM 3554 HA LYS A 224 -34.384 -45.262 37.780 1.00 20.00 H +ATOM 3555 HB2 LYS A 224 -35.721 -46.398 36.163 1.00 20.00 H +ATOM 3556 HB3 LYS A 224 -36.740 -45.110 36.890 1.00 20.00 H +ATOM 3557 HG2 LYS A 224 -36.291 -43.687 34.896 1.00 20.00 H +ATOM 3558 HG3 LYS A 224 -35.380 -45.052 34.165 1.00 20.00 H +ATOM 3559 HD2 LYS A 224 -37.382 -46.445 34.166 1.00 20.00 H +ATOM 3560 HD3 LYS A 224 -38.307 -45.173 35.033 1.00 20.00 H +ATOM 3561 HE2 LYS A 224 -37.035 -44.833 32.277 1.00 20.00 H +ATOM 3562 HE3 LYS A 224 -38.756 -45.259 32.564 1.00 20.00 H +ATOM 3563 HZ1 LYS A 224 -38.891 -43.032 32.392 1.00 20.00 H +ATOM 3564 HZ2 LYS A 224 -38.605 -43.102 33.998 1.00 20.00 H +ATOM 3565 HZ3 LYS A 224 -37.393 -42.732 32.968 1.00 20.00 H +ATOM 3566 N SER A 225 -32.861 -45.941 35.828 1.00 61.47 N +ATOM 3567 CA SER A 225 -31.796 -46.232 34.877 1.00 59.96 C +ATOM 3568 C SER A 225 -32.203 -47.470 34.094 1.00 59.96 C +ATOM 3569 O SER A 225 -32.444 -48.525 34.688 1.00 61.03 O +ATOM 3570 CB SER A 225 -30.458 -46.454 35.588 1.00 58.41 C +ATOM 3571 OG SER A 225 -29.871 -45.227 35.983 1.00 62.56 O +ATOM 3572 H SER A 225 -33.167 -46.672 36.438 1.00 20.00 H +ATOM 3573 HA SER A 225 -31.686 -45.391 34.177 1.00 20.00 H +ATOM 3574 HB2 SER A 225 -30.626 -47.074 36.481 1.00 20.00 H +ATOM 3575 HB3 SER A 225 -29.772 -46.975 34.904 1.00 20.00 H +ATOM 3576 HG SER A 225 -29.350 -45.362 36.766 1.00 20.00 H +ATOM 3577 N ILE A 226 -32.294 -47.342 32.769 1.00 58.11 N +ATOM 3578 CA ILE A 226 -32.775 -48.429 31.929 1.00 57.20 C +ATOM 3579 C ILE A 226 -31.815 -48.656 30.769 1.00 55.23 C +ATOM 3580 O ILE A 226 -30.983 -47.808 30.433 1.00 54.25 O +ATOM 3581 CB ILE A 226 -34.202 -48.171 31.392 1.00 58.15 C +ATOM 3582 CG1 ILE A 226 -34.175 -47.073 30.330 1.00 57.24 C +ATOM 3583 CG2 ILE A 226 -35.151 -47.805 32.526 1.00 55.51 C +ATOM 3584 CD1 ILE A 226 -35.464 -46.955 29.542 1.00 59.42 C +ATOM 3585 H ILE A 226 -32.025 -46.478 32.343 1.00 20.00 H +ATOM 3586 HA ILE A 226 -32.806 -49.351 32.528 1.00 20.00 H +ATOM 3587 HB ILE A 226 -34.563 -49.098 30.923 1.00 20.00 H +ATOM 3588 HG12 ILE A 226 -33.984 -46.112 30.829 1.00 20.00 H +ATOM 3589 HG13 ILE A 226 -33.357 -47.290 29.627 1.00 20.00 H +ATOM 3590 HG21 ILE A 226 -36.157 -47.627 32.119 1.00 20.00 H +ATOM 3591 HG22 ILE A 226 -35.190 -48.630 33.252 1.00 20.00 H +ATOM 3592 HG23 ILE A 226 -34.791 -46.894 33.026 1.00 20.00 H +ATOM 3593 HD11 ILE A 226 -35.369 -46.148 28.801 1.00 20.00 H +ATOM 3594 HD12 ILE A 226 -35.666 -47.905 29.026 1.00 20.00 H +ATOM 3595 HD13 ILE A 226 -36.293 -46.727 30.228 1.00 20.00 H +ATOM 3596 N VAL A 227 -31.954 -49.830 30.160 1.00 55.07 N +ATOM 3597 CA VAL A 227 -31.153 -50.265 29.022 1.00 53.20 C +ATOM 3598 C VAL A 227 -32.090 -50.352 27.824 1.00 52.83 C +ATOM 3599 O VAL A 227 -32.998 -51.191 27.800 1.00 51.59 O +ATOM 3600 CB VAL A 227 -30.474 -51.613 29.297 1.00 54.27 C +ATOM 3601 CG1 VAL A 227 -29.689 -52.076 28.084 1.00 48.74 C +ATOM 3602 CG2 VAL A 227 -29.585 -51.511 30.532 1.00 48.75 C +ATOM 3603 H VAL A 227 -32.654 -50.456 30.505 1.00 20.00 H +ATOM 3604 HA VAL A 227 -30.375 -49.517 28.809 1.00 20.00 H +ATOM 3605 HB VAL A 227 -31.260 -52.355 29.502 1.00 20.00 H +ATOM 3606 HG11 VAL A 227 -29.211 -53.042 28.303 1.00 20.00 H +ATOM 3607 HG12 VAL A 227 -30.370 -52.189 27.228 1.00 20.00 H +ATOM 3608 HG13 VAL A 227 -28.916 -51.332 27.842 1.00 20.00 H +ATOM 3609 HG21 VAL A 227 -29.104 -52.482 30.719 1.00 20.00 H +ATOM 3610 HG22 VAL A 227 -28.813 -50.745 30.366 1.00 20.00 H +ATOM 3611 HG23 VAL A 227 -30.197 -51.231 31.402 1.00 20.00 H +ATOM 3612 N ASP A 228 -31.876 -49.499 26.824 1.00 52.45 N +ATOM 3613 CA ASP A 228 -32.873 -49.258 25.780 1.00 54.40 C +ATOM 3614 C ASP A 228 -32.218 -49.281 24.401 1.00 53.01 C +ATOM 3615 O ASP A 228 -31.535 -48.328 24.017 1.00 54.10 O +ATOM 3616 CB ASP A 228 -33.578 -47.929 26.030 1.00 55.30 C +ATOM 3617 CG ASP A 228 -34.644 -47.623 24.995 1.00 57.42 C +ATOM 3618 OD1 ASP A 228 -35.096 -46.459 24.936 1.00 60.04 O +ATOM 3619 OD2 ASP A 228 -35.026 -48.541 24.240 1.00 61.80 O +ATOM 3620 H ASP A 228 -31.006 -49.007 26.785 1.00 20.00 H +ATOM 3621 HA ASP A 228 -33.627 -50.058 25.815 1.00 20.00 H +ATOM 3622 HB2 ASP A 228 -34.052 -47.964 27.022 1.00 20.00 H +ATOM 3623 HB3 ASP A 228 -32.828 -47.125 26.010 1.00 20.00 H +ATOM 3624 N SER A 229 -32.464 -50.352 23.641 1.00 50.62 N +ATOM 3625 CA SER A 229 -31.954 -50.429 22.278 1.00 49.51 C +ATOM 3626 C SER A 229 -32.717 -49.537 21.308 1.00 51.13 C +ATOM 3627 O SER A 229 -32.288 -49.396 20.158 1.00 51.61 O +ATOM 3628 CB SER A 229 -31.995 -51.871 21.772 1.00 52.28 C +ATOM 3629 OG SER A 229 -33.329 -52.298 21.564 1.00 47.45 O +ATOM 3630 H SER A 229 -33.004 -51.108 24.011 1.00 20.00 H +ATOM 3631 HA SER A 229 -30.903 -50.104 22.278 1.00 20.00 H +ATOM 3632 HB2 SER A 229 -31.445 -51.935 20.822 1.00 20.00 H +ATOM 3633 HB3 SER A 229 -31.519 -52.527 22.516 1.00 20.00 H +ATOM 3634 HG SER A 229 -33.597 -52.081 20.679 1.00 20.00 H +ATOM 3635 N GLY A 230 -33.833 -48.950 21.727 1.00 52.64 N +ATOM 3636 CA GLY A 230 -34.587 -48.022 20.912 1.00 53.64 C +ATOM 3637 C GLY A 230 -34.179 -46.575 21.065 1.00 58.14 C +ATOM 3638 O GLY A 230 -34.915 -45.680 20.635 1.00 54.55 O +ATOM 3639 H GLY A 230 -34.167 -49.159 22.646 1.00 20.00 H +ATOM 3640 HA2 GLY A 230 -34.455 -48.306 19.858 1.00 20.00 H +ATOM 3641 HA3 GLY A 230 -35.649 -48.110 21.185 1.00 20.00 H +ATOM 3642 N THR A 231 -33.029 -46.317 21.683 1.00 52.19 N +ATOM 3643 CA THR A 231 -32.495 -44.974 21.847 1.00 53.63 C +ATOM 3644 C THR A 231 -31.061 -44.973 21.354 1.00 52.92 C +ATOM 3645 O THR A 231 -30.304 -45.903 21.645 1.00 53.65 O +ATOM 3646 CB THR A 231 -32.551 -44.523 23.311 1.00 53.49 C +ATOM 3647 OG1 THR A 231 -33.917 -44.414 23.728 1.00 54.98 O +ATOM 3648 CG2 THR A 231 -31.863 -43.172 23.486 1.00 54.91 C +ATOM 3649 H THR A 231 -32.506 -47.085 22.053 1.00 20.00 H +ATOM 3650 HA THR A 231 -33.079 -44.267 21.240 1.00 20.00 H +ATOM 3651 HB THR A 231 -32.028 -45.268 23.928 1.00 20.00 H +ATOM 3652 HG1 THR A 231 -34.273 -45.282 23.879 1.00 20.00 H +ATOM 3653 HG21 THR A 231 -31.915 -42.868 24.542 1.00 20.00 H +ATOM 3654 HG22 THR A 231 -30.810 -43.255 23.179 1.00 20.00 H +ATOM 3655 HG23 THR A 231 -32.368 -42.420 22.863 1.00 20.00 H +ATOM 3656 N THR A 232 -30.694 -43.944 20.596 1.00 53.01 N +ATOM 3657 CA THR A 232 -29.318 -43.848 20.128 1.00 59.39 C +ATOM 3658 C THR A 232 -28.376 -43.490 21.269 1.00 59.85 C +ATOM 3659 O THR A 232 -27.389 -44.191 21.518 1.00 60.35 O +ATOM 3660 CB THR A 232 -29.210 -42.812 19.013 1.00 57.34 C +ATOM 3661 OG1 THR A 232 -29.927 -43.267 17.860 1.00 58.20 O +ATOM 3662 CG2 THR A 232 -27.754 -42.598 18.646 1.00 51.87 C +ATOM 3663 H THR A 232 -31.359 -43.240 20.348 1.00 20.00 H +ATOM 3664 HA THR A 232 -29.009 -44.822 19.721 1.00 20.00 H +ATOM 3665 HB THR A 232 -29.632 -41.861 19.370 1.00 20.00 H +ATOM 3666 HG1 THR A 232 -29.324 -43.375 17.134 1.00 20.00 H +ATOM 3667 HG21 THR A 232 -27.684 -41.850 17.842 1.00 20.00 H +ATOM 3668 HG22 THR A 232 -27.202 -42.241 19.528 1.00 20.00 H +ATOM 3669 HG23 THR A 232 -27.319 -43.548 18.302 1.00 20.00 H +ATOM 3670 N ASN A 233 -28.690 -42.424 21.994 1.00 57.95 N +ATOM 3671 CA ASN A 233 -27.738 -41.752 22.862 1.00 54.80 C +ATOM 3672 C ASN A 233 -27.616 -42.419 24.223 1.00 55.41 C +ATOM 3673 O ASN A 233 -28.499 -43.150 24.677 1.00 57.83 O +ATOM 3674 CB ASN A 233 -28.147 -40.295 23.077 1.00 57.96 C +ATOM 3675 CG ASN A 233 -27.966 -39.449 21.839 1.00 59.34 C +ATOM 3676 OD1 ASN A 233 -27.559 -39.939 20.788 1.00 59.14 O +ATOM 3677 ND2 ASN A 233 -28.274 -38.162 21.958 1.00 59.90 N +ATOM 3678 H ASN A 233 -29.623 -42.067 21.941 1.00 20.00 H +ATOM 3679 HA ASN A 233 -26.747 -41.762 22.385 1.00 20.00 H +ATOM 3680 HB2 ASN A 233 -29.207 -40.267 23.370 1.00 20.00 H +ATOM 3681 HB3 ASN A 233 -27.531 -39.872 23.885 1.00 20.00 H +ATOM 3682 HD21 ASN A 233 -28.178 -37.550 21.173 1.00 20.00 H +ATOM 3683 HD22 ASN A 233 -28.602 -37.805 22.833 1.00 20.00 H +ATOM 3684 N LEU A 234 -26.486 -42.145 24.872 1.00 56.03 N +ATOM 3685 CA LEU A 234 -26.392 -42.226 26.321 1.00 57.02 C +ATOM 3686 C LEU A 234 -27.049 -40.970 26.880 1.00 57.78 C +ATOM 3687 O LEU A 234 -26.539 -39.859 26.695 1.00 60.67 O +ATOM 3688 CB LEU A 234 -24.936 -42.340 26.766 1.00 55.53 C +ATOM 3689 CG LEU A 234 -24.706 -42.306 28.278 1.00 56.49 C +ATOM 3690 CD1 LEU A 234 -25.477 -43.426 28.954 1.00 55.61 C +ATOM 3691 CD2 LEU A 234 -23.220 -42.385 28.622 1.00 56.43 C +ATOM 3692 H LEU A 234 -25.678 -41.876 24.348 1.00 20.00 H +ATOM 3693 HA LEU A 234 -26.944 -43.107 26.682 1.00 20.00 H +ATOM 3694 HB2 LEU A 234 -24.538 -43.292 26.384 1.00 20.00 H +ATOM 3695 HB3 LEU A 234 -24.378 -41.504 26.319 1.00 20.00 H +ATOM 3696 HG LEU A 234 -25.092 -41.348 28.658 1.00 20.00 H +ATOM 3697 HD11 LEU A 234 -25.302 -43.389 30.039 1.00 20.00 H +ATOM 3698 HD12 LEU A 234 -26.552 -43.306 28.751 1.00 20.00 H +ATOM 3699 HD13 LEU A 234 -25.136 -44.395 28.561 1.00 20.00 H +ATOM 3700 HD21 LEU A 234 -23.094 -42.358 29.714 1.00 20.00 H +ATOM 3701 HD22 LEU A 234 -22.802 -43.323 28.228 1.00 20.00 H +ATOM 3702 HD23 LEU A 234 -22.694 -41.531 28.171 1.00 20.00 H +ATOM 3703 N ARG A 235 -28.194 -41.136 27.533 1.00 58.42 N +ATOM 3704 CA ARG A 235 -28.951 -40.026 28.093 1.00 59.35 C +ATOM 3705 C ARG A 235 -28.810 -40.034 29.608 1.00 60.36 C +ATOM 3706 O ARG A 235 -28.955 -41.078 30.251 1.00 59.15 O +ATOM 3707 CB ARG A 235 -30.427 -40.106 27.680 1.00 61.35 C +ATOM 3708 CG ARG A 235 -30.610 -40.196 26.167 1.00 61.05 C +ATOM 3709 CD ARG A 235 -32.070 -40.097 25.708 1.00 64.39 C +ATOM 3710 NE ARG A 235 -32.647 -38.768 25.901 1.00 63.42 N +ATOM 3711 CZ ARG A 235 -33.757 -38.532 26.594 1.00 71.81 C +ATOM 3712 NH1 ARG A 235 -34.419 -39.538 27.150 1.00 71.69 N +ATOM 3713 NH2 ARG A 235 -34.211 -37.292 26.723 1.00 74.36 N +ATOM 3714 H ARG A 235 -28.551 -42.063 27.645 1.00 20.00 H +ATOM 3715 HA ARG A 235 -28.539 -39.079 27.712 1.00 20.00 H +ATOM 3716 HB2 ARG A 235 -30.874 -40.998 28.142 1.00 20.00 H +ATOM 3717 HB3 ARG A 235 -30.944 -39.206 28.044 1.00 20.00 H +ATOM 3718 HG2 ARG A 235 -30.045 -39.376 25.701 1.00 20.00 H +ATOM 3719 HG3 ARG A 235 -30.205 -41.160 25.826 1.00 20.00 H +ATOM 3720 HD2 ARG A 235 -32.117 -40.346 24.638 1.00 20.00 H +ATOM 3721 HD3 ARG A 235 -32.666 -40.823 26.280 1.00 20.00 H +ATOM 3722 HE ARG A 235 -32.178 -37.988 25.486 1.00 20.00 H +ATOM 3723 HH11 ARG A 235 -35.258 -39.361 27.665 1.00 20.00 H +ATOM 3724 HH12 ARG A 235 -34.079 -40.474 27.055 1.00 20.00 H +ATOM 3725 HH21 ARG A 235 -35.050 -37.118 27.238 1.00 20.00 H +ATOM 3726 HH22 ARG A 235 -33.714 -36.532 26.305 1.00 20.00 H +ATOM 3727 N LEU A 236 -28.520 -38.861 30.169 1.00 61.20 N +ATOM 3728 CA LEU A 236 -28.187 -38.716 31.574 1.00 61.69 C +ATOM 3729 C LEU A 236 -29.051 -37.641 32.221 1.00 62.21 C +ATOM 3730 O LEU A 236 -29.412 -36.652 31.569 1.00 63.72 O +ATOM 3731 CB LEU A 236 -26.705 -38.347 31.747 1.00 60.80 C +ATOM 3732 CG LEU A 236 -25.689 -39.305 31.135 1.00 55.73 C +ATOM 3733 CD1 LEU A 236 -24.314 -38.660 31.109 1.00 62.54 C +ATOM 3734 CD2 LEU A 236 -25.662 -40.596 31.929 1.00 53.89 C +ATOM 3735 H LEU A 236 -28.532 -38.042 29.595 1.00 20.00 H +ATOM 3736 HA LEU A 236 -28.369 -39.668 32.093 1.00 20.00 H +ATOM 3737 HB2 LEU A 236 -26.551 -37.359 31.288 1.00 20.00 H +ATOM 3738 HB3 LEU A 236 -26.500 -38.287 32.826 1.00 20.00 H +ATOM 3739 HG LEU A 236 -25.994 -39.530 30.102 1.00 20.00 H +ATOM 3740 HD11 LEU A 236 -23.589 -39.359 30.666 1.00 20.00 H +ATOM 3741 HD12 LEU A 236 -24.352 -37.740 30.507 1.00 20.00 H +ATOM 3742 HD13 LEU A 236 -24.005 -38.414 32.136 1.00 20.00 H +ATOM 3743 HD21 LEU A 236 -24.928 -41.285 31.485 1.00 20.00 H +ATOM 3744 HD22 LEU A 236 -25.379 -40.380 32.970 1.00 20.00 H +ATOM 3745 HD23 LEU A 236 -26.659 -41.060 31.909 1.00 20.00 H +ATOM 3746 N PRO A 237 -29.397 -37.811 33.496 1.00 62.90 N +ATOM 3747 CA PRO A 237 -30.120 -36.754 34.212 1.00 63.87 C +ATOM 3748 C PRO A 237 -29.375 -35.427 34.155 1.00 66.85 C +ATOM 3749 O PRO A 237 -28.158 -35.382 33.961 1.00 64.15 O +ATOM 3750 CB PRO A 237 -30.206 -37.295 35.641 1.00 62.96 C +ATOM 3751 CG PRO A 237 -30.195 -38.775 35.467 1.00 66.22 C +ATOM 3752 CD PRO A 237 -29.301 -39.050 34.287 1.00 64.46 C +ATOM 3753 HA PRO A 237 -31.133 -36.631 33.800 1.00 20.00 H +ATOM 3754 HB2 PRO A 237 -29.342 -36.965 36.237 1.00 20.00 H +ATOM 3755 HB3 PRO A 237 -31.135 -36.965 36.129 1.00 20.00 H +ATOM 3756 HG2 PRO A 237 -29.797 -39.263 36.369 1.00 20.00 H +ATOM 3757 HG3 PRO A 237 -31.212 -39.144 35.269 1.00 20.00 H +ATOM 3758 HD2 PRO A 237 -29.663 -39.915 33.711 1.00 20.00 H +ATOM 3759 HD3 PRO A 237 -28.266 -39.232 34.611 1.00 20.00 H +ATOM 3760 N LYS A 238 -30.132 -34.342 34.337 1.00 69.04 N +ATOM 3761 CA LYS A 238 -29.609 -32.998 34.108 1.00 74.70 C +ATOM 3762 C LYS A 238 -28.331 -32.740 34.899 1.00 73.02 C +ATOM 3763 O LYS A 238 -27.332 -32.262 34.349 1.00 72.83 O +ATOM 3764 CB LYS A 238 -30.685 -31.970 34.456 1.00 79.89 C +ATOM 3765 CG LYS A 238 -30.276 -30.522 34.248 0.00 80.08 C +ATOM 3766 CD LYS A 238 -31.456 -29.594 34.486 0.00 82.10 C +ATOM 3767 CE LYS A 238 -31.067 -28.138 34.308 0.00 83.71 C +ATOM 3768 NZ LYS A 238 -30.050 -27.706 35.305 0.00 84.28 N +ATOM 3769 H LYS A 238 -31.079 -34.452 34.637 1.00 20.00 H +ATOM 3770 HA LYS A 238 -29.372 -32.889 33.039 1.00 20.00 H +ATOM 3771 HB2 LYS A 238 -31.565 -32.170 33.827 1.00 20.00 H +ATOM 3772 HB3 LYS A 238 -30.953 -32.101 35.515 1.00 20.00 H +ATOM 3773 HG2 LYS A 238 -29.469 -30.269 34.952 0.00 20.00 H +ATOM 3774 HG3 LYS A 238 -29.916 -30.392 33.217 0.00 20.00 H +ATOM 3775 HD2 LYS A 238 -32.254 -29.840 33.770 0.00 20.00 H +ATOM 3776 HD3 LYS A 238 -31.825 -29.742 35.512 0.00 20.00 H +ATOM 3777 HE2 LYS A 238 -30.654 -28.002 33.298 0.00 20.00 H +ATOM 3778 HE3 LYS A 238 -31.965 -27.514 34.424 0.00 20.00 H +ATOM 3779 HZ1 LYS A 238 -30.166 -26.732 35.500 0.00 20.00 H +ATOM 3780 HZ2 LYS A 238 -30.167 -28.230 36.148 0.00 20.00 H +ATOM 3781 HZ3 LYS A 238 -29.134 -27.865 34.937 0.00 20.00 H +ATOM 3782 N LYS A 239 -28.339 -33.063 36.191 1.00 79.32 N +ATOM 3783 CA LYS A 239 -27.165 -32.790 37.016 1.00 75.38 C +ATOM 3784 C LYS A 239 -25.998 -33.698 36.647 1.00 76.65 C +ATOM 3785 O LYS A 239 -24.833 -33.288 36.727 1.00 79.03 O +ATOM 3786 CB LYS A 239 -27.519 -32.937 38.495 1.00 78.88 C +ATOM 3787 CG LYS A 239 -28.575 -31.956 38.980 0.00 82.02 C +ATOM 3788 CD LYS A 239 -28.015 -30.547 39.126 0.00 84.82 C +ATOM 3789 CE LYS A 239 -29.039 -29.611 39.752 0.00 86.75 C +ATOM 3790 NZ LYS A 239 -28.512 -28.229 39.922 0.00 88.02 N +ATOM 3791 H LYS A 239 -29.147 -33.492 36.595 1.00 20.00 H +ATOM 3792 HA LYS A 239 -26.850 -31.750 36.847 1.00 20.00 H +ATOM 3793 HB2 LYS A 239 -27.893 -33.958 38.661 1.00 20.00 H +ATOM 3794 HB3 LYS A 239 -26.605 -32.781 39.086 1.00 20.00 H +ATOM 3795 HG2 LYS A 239 -29.402 -31.937 38.255 0.00 20.00 H +ATOM 3796 HG3 LYS A 239 -28.951 -32.292 39.957 0.00 20.00 H +ATOM 3797 HD2 LYS A 239 -27.121 -30.581 39.766 0.00 20.00 H +ATOM 3798 HD3 LYS A 239 -27.740 -30.165 38.132 0.00 20.00 H +ATOM 3799 HE2 LYS A 239 -29.927 -29.574 39.104 0.00 20.00 H +ATOM 3800 HE3 LYS A 239 -29.322 -30.006 40.739 0.00 20.00 H +ATOM 3801 HZ1 LYS A 239 -29.265 -27.574 39.856 0.00 20.00 H +ATOM 3802 HZ2 LYS A 239 -28.076 -28.146 40.818 0.00 20.00 H +ATOM 3803 HZ3 LYS A 239 -27.840 -28.038 39.206 0.00 20.00 H +ATOM 3804 N VAL A 240 -26.286 -34.932 36.237 1.00 73.94 N +ATOM 3805 CA VAL A 240 -25.219 -35.845 35.841 1.00 73.25 C +ATOM 3806 C VAL A 240 -24.643 -35.431 34.496 1.00 71.07 C +ATOM 3807 O VAL A 240 -23.421 -35.411 34.305 1.00 67.38 O +ATOM 3808 CB VAL A 240 -25.732 -37.295 35.815 1.00 70.04 C +ATOM 3809 CG1 VAL A 240 -24.619 -38.249 35.414 1.00 66.87 C +ATOM 3810 CG2 VAL A 240 -26.300 -37.670 37.170 1.00 67.76 C +ATOM 3811 H VAL A 240 -27.239 -35.234 36.200 1.00 20.00 H +ATOM 3812 HA VAL A 240 -24.412 -35.789 36.586 1.00 20.00 H +ATOM 3813 HB VAL A 240 -26.536 -37.363 35.068 1.00 20.00 H +ATOM 3814 HG11 VAL A 240 -25.005 -39.279 35.401 1.00 20.00 H +ATOM 3815 HG12 VAL A 240 -24.251 -37.983 34.412 1.00 20.00 H +ATOM 3816 HG13 VAL A 240 -23.795 -38.175 36.139 1.00 20.00 H +ATOM 3817 HG21 VAL A 240 -26.664 -38.708 37.141 1.00 20.00 H +ATOM 3818 HG22 VAL A 240 -25.515 -37.578 37.935 1.00 20.00 H +ATOM 3819 HG23 VAL A 240 -27.133 -36.996 37.417 1.00 20.00 H +ATOM 3820 N PHE A 241 -25.515 -35.088 33.547 1.00 67.68 N +ATOM 3821 CA PHE A 241 -25.069 -34.673 32.222 1.00 67.31 C +ATOM 3822 C PHE A 241 -24.134 -33.470 32.299 1.00 70.03 C +ATOM 3823 O PHE A 241 -23.094 -33.430 31.632 1.00 77.54 O +ATOM 3824 CB PHE A 241 -26.286 -34.362 31.348 1.00 68.56 C +ATOM 3825 CG PHE A 241 -25.948 -33.663 30.066 1.00 69.41 C +ATOM 3826 CD1 PHE A 241 -25.440 -34.370 28.989 1.00 69.46 C +ATOM 3827 CD2 PHE A 241 -26.146 -32.298 29.931 1.00 73.22 C +ATOM 3828 CE1 PHE A 241 -25.130 -33.728 27.806 1.00 69.84 C +ATOM 3829 CE2 PHE A 241 -25.836 -31.653 28.752 1.00 74.86 C +ATOM 3830 CZ PHE A 241 -25.327 -32.369 27.688 1.00 72.75 C +ATOM 3831 H PHE A 241 -26.494 -35.116 33.748 1.00 20.00 H +ATOM 3832 HA PHE A 241 -24.519 -35.503 31.755 1.00 20.00 H +ATOM 3833 HB2 PHE A 241 -26.789 -35.309 31.104 1.00 20.00 H +ATOM 3834 HB3 PHE A 241 -26.971 -33.721 31.923 1.00 20.00 H +ATOM 3835 HD1 PHE A 241 -25.285 -35.435 29.075 1.00 20.00 H +ATOM 3836 HD2 PHE A 241 -26.548 -31.733 30.759 1.00 20.00 H +ATOM 3837 HE1 PHE A 241 -24.733 -34.291 26.974 1.00 20.00 H +ATOM 3838 HE2 PHE A 241 -25.992 -30.588 28.662 1.00 20.00 H +ATOM 3839 HZ PHE A 241 -25.083 -31.865 26.764 1.00 20.00 H +ATOM 3840 N GLU A 242 -24.498 -32.472 33.106 1.00 69.38 N +ATOM 3841 CA GLU A 242 -23.672 -31.274 33.218 1.00 68.39 C +ATOM 3842 C GLU A 242 -22.296 -31.596 33.787 1.00 66.86 C +ATOM 3843 O GLU A 242 -21.280 -31.106 33.283 1.00 66.68 O +ATOM 3844 CB GLU A 242 -24.382 -30.225 34.071 1.00 70.60 C +ATOM 3845 CG GLU A 242 -25.584 -29.587 33.386 1.00 71.83 C +ATOM 3846 CD GLU A 242 -26.346 -28.663 34.308 0.00 76.60 C +ATOM 3847 OE1 GLU A 242 -25.716 -28.083 35.216 0.00 79.16 O +ATOM 3848 OE2 GLU A 242 -27.575 -28.525 34.128 0.00 78.74 O +ATOM 3849 H GLU A 242 -25.342 -32.545 33.637 1.00 20.00 H +ATOM 3850 HA GLU A 242 -23.530 -30.850 32.213 1.00 20.00 H +ATOM 3851 HB2 GLU A 242 -24.726 -30.707 34.998 1.00 20.00 H +ATOM 3852 HB3 GLU A 242 -23.661 -29.431 34.316 1.00 20.00 H +ATOM 3853 HG2 GLU A 242 -25.232 -29.010 32.519 1.00 20.00 H +ATOM 3854 HG3 GLU A 242 -26.261 -30.384 33.045 1.00 20.00 H +ATOM 3855 N ALA A 243 -22.240 -32.425 34.830 1.00 65.69 N +ATOM 3856 CA ALA A 243 -20.949 -32.826 35.383 1.00 63.04 C +ATOM 3857 C ALA A 243 -20.136 -33.622 34.369 1.00 63.92 C +ATOM 3858 O ALA A 243 -18.920 -33.440 34.252 1.00 62.90 O +ATOM 3859 CB ALA A 243 -21.152 -33.632 36.665 1.00 60.36 C +ATOM 3860 H ALA A 243 -23.085 -32.773 35.235 1.00 20.00 H +ATOM 3861 HA ALA A 243 -20.378 -31.921 35.640 1.00 20.00 H +ATOM 3862 HB1 ALA A 243 -20.174 -33.928 37.071 1.00 20.00 H +ATOM 3863 HB2 ALA A 243 -21.685 -33.016 37.404 1.00 20.00 H +ATOM 3864 HB3 ALA A 243 -21.744 -34.532 36.442 1.00 20.00 H +ATOM 3865 N ALA A 244 -20.794 -34.510 33.622 1.00 66.06 N +ATOM 3866 CA ALA A 244 -20.072 -35.349 32.670 1.00 65.09 C +ATOM 3867 C ALA A 244 -19.475 -34.517 31.542 1.00 66.79 C +ATOM 3868 O ALA A 244 -18.333 -34.739 31.126 1.00 68.59 O +ATOM 3869 CB ALA A 244 -20.997 -36.432 32.112 1.00 66.59 C +ATOM 3870 H ALA A 244 -21.785 -34.601 33.714 1.00 20.00 H +ATOM 3871 HA ALA A 244 -19.246 -35.849 33.196 1.00 20.00 H +ATOM 3872 HB1 ALA A 244 -20.442 -37.056 31.397 1.00 20.00 H +ATOM 3873 HB2 ALA A 244 -21.366 -37.059 32.937 1.00 20.00 H +ATOM 3874 HB3 ALA A 244 -21.849 -35.959 31.601 1.00 20.00 H +ATOM 3875 N VAL A 245 -20.233 -33.543 31.044 1.00 68.40 N +ATOM 3876 CA VAL A 245 -19.765 -32.743 29.915 1.00 70.73 C +ATOM 3877 C VAL A 245 -18.571 -31.888 30.319 1.00 71.11 C +ATOM 3878 O VAL A 245 -17.624 -31.712 29.543 1.00 72.13 O +ATOM 3879 CB VAL A 245 -20.919 -31.892 29.353 1.00 74.12 C +ATOM 3880 CG1 VAL A 245 -20.390 -30.806 28.436 1.00 76.85 C +ATOM 3881 CG2 VAL A 245 -21.894 -32.782 28.611 1.00 69.76 C +ATOM 3882 H VAL A 245 -21.130 -33.357 31.446 1.00 20.00 H +ATOM 3883 HA VAL A 245 -19.435 -33.424 29.117 1.00 20.00 H +ATOM 3884 HB VAL A 245 -21.444 -31.418 30.196 1.00 20.00 H +ATOM 3885 HG11 VAL A 245 -21.230 -30.212 28.047 1.00 20.00 H +ATOM 3886 HG12 VAL A 245 -19.708 -30.152 28.998 1.00 20.00 H +ATOM 3887 HG13 VAL A 245 -19.848 -31.267 27.597 1.00 20.00 H +ATOM 3888 HG21 VAL A 245 -22.717 -32.172 28.211 1.00 20.00 H +ATOM 3889 HG22 VAL A 245 -21.374 -33.285 27.782 1.00 20.00 H +ATOM 3890 HG23 VAL A 245 -22.299 -33.537 29.301 1.00 20.00 H +ATOM 3891 N LYS A 246 -18.594 -31.344 31.535 1.00 71.20 N +ATOM 3892 CA LYS A 246 -17.464 -30.555 32.012 1.00 71.27 C +ATOM 3893 C LYS A 246 -16.198 -31.402 32.088 1.00 70.24 C +ATOM 3894 O LYS A 246 -15.107 -30.945 31.727 1.00 66.58 O +ATOM 3895 CB LYS A 246 -17.798 -29.942 33.374 1.00 73.50 C +ATOM 3896 CG LYS A 246 -16.699 -29.089 33.978 1.00 76.76 C +ATOM 3897 CD LYS A 246 -17.196 -28.388 35.233 1.00 80.37 C +ATOM 3898 CE LYS A 246 -16.048 -27.804 36.040 1.00 80.73 C +ATOM 3899 NZ LYS A 246 -16.526 -27.093 37.259 1.00 83.81 N +ATOM 3900 H LYS A 246 -19.391 -31.478 32.124 1.00 20.00 H +ATOM 3901 HA LYS A 246 -17.281 -29.732 31.305 1.00 20.00 H +ATOM 3902 HB2 LYS A 246 -18.692 -29.313 33.255 1.00 20.00 H +ATOM 3903 HB3 LYS A 246 -18.017 -30.762 34.073 1.00 20.00 H +ATOM 3904 HG2 LYS A 246 -15.844 -29.731 34.237 1.00 20.00 H +ATOM 3905 HG3 LYS A 246 -16.382 -28.334 33.243 1.00 20.00 H +ATOM 3906 HD2 LYS A 246 -17.877 -27.575 34.942 1.00 20.00 H +ATOM 3907 HD3 LYS A 246 -17.737 -29.114 35.857 1.00 20.00 H +ATOM 3908 HE2 LYS A 246 -15.377 -28.621 36.346 1.00 20.00 H +ATOM 3909 HE3 LYS A 246 -15.496 -27.093 35.408 1.00 20.00 H +ATOM 3910 HZ1 LYS A 246 -15.742 -26.725 37.760 1.00 20.00 H +ATOM 3911 HZ2 LYS A 246 -17.132 -26.344 36.992 1.00 20.00 H +ATOM 3912 HZ3 LYS A 246 -17.025 -27.733 37.844 1.00 20.00 H +ATOM 3913 N SER A 247 -16.331 -32.651 32.540 1.00 70.82 N +ATOM 3914 CA SER A 247 -15.168 -33.526 32.657 1.00 66.83 C +ATOM 3915 C SER A 247 -14.656 -33.961 31.292 1.00 67.47 C +ATOM 3916 O SER A 247 -13.441 -34.066 31.084 1.00 68.95 O +ATOM 3917 CB SER A 247 -15.510 -34.744 33.513 1.00 66.28 C +ATOM 3918 OG SER A 247 -14.356 -35.529 33.755 1.00 68.02 O +ATOM 3919 H SER A 247 -17.235 -32.990 32.801 1.00 20.00 H +ATOM 3920 HA SER A 247 -14.361 -32.975 33.162 1.00 20.00 H +ATOM 3921 HB2 SER A 247 -15.923 -34.405 34.474 1.00 20.00 H +ATOM 3922 HB3 SER A 247 -16.258 -35.355 32.987 1.00 20.00 H +ATOM 3923 HG SER A 247 -13.715 -35.370 33.072 1.00 20.00 H +ATOM 3924 N ILE A 248 -15.565 -34.224 30.351 1.00 65.36 N +ATOM 3925 CA ILE A 248 -15.152 -34.606 29.002 1.00 63.55 C +ATOM 3926 C ILE A 248 -14.467 -33.441 28.301 1.00 64.16 C +ATOM 3927 O ILE A 248 -13.505 -33.630 27.546 1.00 65.51 O +ATOM 3928 CB ILE A 248 -16.358 -35.117 28.192 1.00 62.38 C +ATOM 3929 CG1 ILE A 248 -16.945 -36.364 28.845 1.00 61.70 C +ATOM 3930 CG2 ILE A 248 -15.953 -35.410 26.757 1.00 58.36 C +ATOM 3931 CD1 ILE A 248 -18.216 -36.845 28.196 1.00 59.05 C +ATOM 3932 H ILE A 248 -16.538 -34.159 30.571 1.00 20.00 H +ATOM 3933 HA ILE A 248 -14.426 -35.429 29.076 1.00 20.00 H +ATOM 3934 HB ILE A 248 -17.128 -34.331 28.185 1.00 20.00 H +ATOM 3935 HG12 ILE A 248 -16.199 -37.170 28.788 1.00 20.00 H +ATOM 3936 HG13 ILE A 248 -17.158 -36.136 29.900 1.00 20.00 H +ATOM 3937 HG21 ILE A 248 -16.827 -35.773 26.196 1.00 20.00 H +ATOM 3938 HG22 ILE A 248 -15.573 -34.490 26.288 1.00 20.00 H +ATOM 3939 HG23 ILE A 248 -15.166 -36.179 26.748 1.00 20.00 H +ATOM 3940 HD11 ILE A 248 -18.578 -37.743 28.718 1.00 20.00 H +ATOM 3941 HD12 ILE A 248 -18.979 -36.055 28.254 1.00 20.00 H +ATOM 3942 HD13 ILE A 248 -18.020 -37.089 27.142 1.00 20.00 H +ATOM 3943 N LYS A 249 -14.964 -32.222 28.515 1.00 68.00 N +ATOM 3944 CA LYS A 249 -14.297 -31.043 27.974 1.00 71.65 C +ATOM 3945 C LYS A 249 -12.874 -30.925 28.502 1.00 68.01 C +ATOM 3946 O LYS A 249 -11.931 -30.701 27.736 1.00 66.64 O +ATOM 3947 CB LYS A 249 -15.086 -29.783 28.324 1.00 77.31 C +ATOM 3948 CG LYS A 249 -16.357 -29.553 27.533 1.00 75.65 C +ATOM 3949 CD LYS A 249 -17.224 -28.552 28.279 1.00 81.29 C +ATOM 3950 CE LYS A 249 -18.164 -27.791 27.362 1.00 84.26 C +ATOM 3951 NZ LYS A 249 -19.106 -26.949 28.158 1.00 85.07 N +ATOM 3952 H LYS A 249 -15.801 -32.115 29.051 1.00 20.00 H +ATOM 3953 HA LYS A 249 -14.252 -31.127 26.878 1.00 20.00 H +ATOM 3954 HB2 LYS A 249 -15.358 -29.841 29.388 1.00 20.00 H +ATOM 3955 HB3 LYS A 249 -14.427 -28.917 28.161 1.00 20.00 H +ATOM 3956 HG2 LYS A 249 -16.107 -29.156 26.538 1.00 20.00 H +ATOM 3957 HG3 LYS A 249 -16.901 -30.503 27.423 1.00 20.00 H +ATOM 3958 HD2 LYS A 249 -17.823 -29.094 29.026 1.00 20.00 H +ATOM 3959 HD3 LYS A 249 -16.569 -27.830 28.788 1.00 20.00 H +ATOM 3960 HE2 LYS A 249 -17.574 -27.143 26.696 1.00 20.00 H +ATOM 3961 HE3 LYS A 249 -18.741 -28.508 26.760 1.00 20.00 H +ATOM 3962 HZ1 LYS A 249 -19.357 -26.138 27.629 1.00 20.00 H +ATOM 3963 HZ2 LYS A 249 -19.928 -27.477 28.369 1.00 20.00 H +ATOM 3964 HZ3 LYS A 249 -18.663 -26.667 29.009 1.00 20.00 H +ATOM 3965 N ALA A 250 -12.703 -31.063 29.818 1.00 68.63 N +ATOM 3966 CA ALA A 250 -11.382 -30.883 30.412 1.00 71.87 C +ATOM 3967 C ALA A 250 -10.405 -31.950 29.934 1.00 70.05 C +ATOM 3968 O ALA A 250 -9.226 -31.659 29.696 1.00 71.27 O +ATOM 3969 CB ALA A 250 -11.486 -30.889 31.937 1.00 72.23 C +ATOM 3970 H ALA A 250 -13.484 -31.291 30.400 1.00 20.00 H +ATOM 3971 HA ALA A 250 -10.988 -29.903 30.105 1.00 20.00 H +ATOM 3972 HB1 ALA A 250 -10.486 -30.753 32.374 1.00 20.00 H +ATOM 3973 HB2 ALA A 250 -12.143 -30.069 32.263 1.00 20.00 H +ATOM 3974 HB3 ALA A 250 -11.905 -31.850 32.272 1.00 20.00 H +ATOM 3975 N ALA A 251 -10.874 -33.189 29.781 1.00 68.44 N +ATOM 3976 CA ALA A 251 -9.983 -34.260 29.346 1.00 66.79 C +ATOM 3977 C ALA A 251 -9.579 -34.102 27.886 1.00 66.57 C +ATOM 3978 O ALA A 251 -8.484 -34.523 27.499 1.00 64.14 O +ATOM 3979 CB ALA A 251 -10.644 -35.620 29.570 1.00 68.38 C +ATOM 3980 H ALA A 251 -11.837 -33.384 29.965 1.00 20.00 H +ATOM 3981 HA ALA A 251 -9.068 -34.226 29.955 1.00 20.00 H +ATOM 3982 HB1 ALA A 251 -9.963 -36.418 29.239 1.00 20.00 H +ATOM 3983 HB2 ALA A 251 -10.866 -35.748 30.640 1.00 20.00 H +ATOM 3984 HB3 ALA A 251 -11.579 -35.673 28.993 1.00 20.00 H +ATOM 3985 N SER A 252 -10.434 -33.494 27.067 1.00 65.43 N +ATOM 3986 CA SER A 252 -10.171 -33.315 25.645 1.00 65.13 C +ATOM 3987 C SER A 252 -9.694 -31.908 25.315 1.00 70.26 C +ATOM 3988 O SER A 252 -9.844 -31.459 24.174 1.00 67.40 O +ATOM 3989 CB SER A 252 -11.428 -33.649 24.839 1.00 64.30 C +ATOM 3990 OG SER A 252 -12.542 -32.928 25.337 1.00 60.38 O +ATOM 3991 H SER A 252 -11.292 -33.146 27.443 1.00 20.00 H +ATOM 3992 HA SER A 252 -9.382 -34.018 25.342 1.00 20.00 H +ATOM 3993 HB2 SER A 252 -11.264 -33.380 23.785 1.00 20.00 H +ATOM 3994 HB3 SER A 252 -11.631 -34.727 24.915 1.00 20.00 H +ATOM 3995 HG SER A 252 -12.807 -33.292 26.174 1.00 20.00 H +ATOM 3996 N SER A 253 -9.110 -31.209 26.289 1.00 77.08 N +ATOM 3997 CA SER A 253 -8.876 -29.778 26.145 1.00 80.32 C +ATOM 3998 C SER A 253 -7.729 -29.435 25.205 1.00 82.48 C +ATOM 3999 O SER A 253 -7.473 -28.246 24.991 1.00 84.10 O +ATOM 4000 CB SER A 253 -8.617 -29.151 27.515 1.00 78.89 C +ATOM 4001 OG SER A 253 -7.345 -29.534 28.008 1.00 74.70 O +ATOM 4002 H SER A 253 -8.829 -31.673 27.129 1.00 20.00 H +ATOM 4003 HA SER A 253 -9.788 -29.317 25.738 1.00 20.00 H +ATOM 4004 HB2 SER A 253 -8.654 -28.055 27.424 1.00 20.00 H +ATOM 4005 HB3 SER A 253 -9.393 -29.487 28.219 1.00 20.00 H +ATOM 4006 HG SER A 253 -7.429 -30.333 28.516 1.00 20.00 H +ATOM 4007 N THR A 254 -7.029 -30.423 24.646 1.00 80.20 N +ATOM 4008 CA THR A 254 -6.005 -30.098 23.659 1.00 81.98 C +ATOM 4009 C THR A 254 -6.610 -29.584 22.361 1.00 80.08 C +ATOM 4010 O THR A 254 -5.896 -28.981 21.553 1.00 78.66 O +ATOM 4011 CB THR A 254 -5.115 -31.309 23.374 1.00 82.60 C +ATOM 4012 OG1 THR A 254 -5.927 -32.425 22.996 1.00 80.65 O +ATOM 4013 CG2 THR A 254 -4.301 -31.661 24.609 1.00 82.98 C +ATOM 4014 H THR A 254 -7.204 -31.374 24.900 1.00 20.00 H +ATOM 4015 HA THR A 254 -5.365 -29.303 24.068 1.00 20.00 H +ATOM 4016 HB THR A 254 -4.425 -31.053 22.557 1.00 20.00 H +ATOM 4017 HG1 THR A 254 -6.194 -32.330 22.089 1.00 20.00 H +ATOM 4018 HG21 THR A 254 -3.665 -32.532 24.394 1.00 20.00 H +ATOM 4019 HG22 THR A 254 -3.668 -30.805 24.887 1.00 20.00 H +ATOM 4020 HG23 THR A 254 -4.981 -31.900 25.440 1.00 20.00 H +ATOM 4021 N GLU A 255 -7.904 -29.809 22.148 1.00 83.87 N +ATOM 4022 CA GLU A 255 -8.648 -29.210 21.051 1.00 83.84 C +ATOM 4023 C GLU A 255 -9.948 -28.637 21.595 1.00 84.04 C +ATOM 4024 O GLU A 255 -10.598 -29.250 22.447 1.00 78.95 O +ATOM 4025 CB GLU A 255 -8.939 -30.226 19.936 1.00 81.56 C +ATOM 4026 CG GLU A 255 -7.731 -30.587 19.082 1.00 83.13 C +ATOM 4027 CD GLU A 255 -8.071 -31.571 17.978 1.00 83.12 C +ATOM 4028 OE1 GLU A 255 -9.265 -31.691 17.628 1.00 82.07 O +ATOM 4029 OE2 GLU A 255 -7.144 -32.232 17.463 1.00 80.86 O +ATOM 4030 H GLU A 255 -8.389 -30.420 22.773 1.00 20.00 H +ATOM 4031 HA GLU A 255 -8.059 -28.387 20.620 1.00 20.00 H +ATOM 4032 HB2 GLU A 255 -9.319 -31.147 20.401 1.00 20.00 H +ATOM 4033 HB3 GLU A 255 -9.711 -29.802 19.278 1.00 20.00 H +ATOM 4034 HG2 GLU A 255 -7.335 -29.668 18.625 1.00 20.00 H +ATOM 4035 HG3 GLU A 255 -6.963 -31.035 19.729 1.00 20.00 H +ATOM 4036 N LYS A 256 -10.313 -27.452 21.116 1.00 87.00 N +ATOM 4037 CA LYS A 256 -11.532 -26.781 21.542 1.00 87.83 C +ATOM 4038 C LYS A 256 -12.588 -26.887 20.452 1.00 85.48 C +ATOM 4039 O LYS A 256 -12.279 -26.799 19.260 1.00 85.19 O +ATOM 4040 CB LYS A 256 -11.267 -25.311 21.874 1.00 91.33 C +ATOM 4041 CG LYS A 256 -10.335 -25.092 23.054 1.00 93.09 C +ATOM 4042 CD LYS A 256 -10.952 -25.574 24.356 1.00 94.62 C +ATOM 4043 CE LYS A 256 -10.044 -25.264 25.536 1.00 97.43 C +ATOM 4044 NZ LYS A 256 -10.566 -25.837 26.809 1.00 96.59 N +ATOM 4045 H LYS A 256 -9.729 -27.005 20.438 1.00 20.00 H +ATOM 4046 HA LYS A 256 -11.918 -27.273 22.447 1.00 20.00 H +ATOM 4047 HB2 LYS A 256 -10.820 -24.834 20.989 1.00 20.00 H +ATOM 4048 HB3 LYS A 256 -12.230 -24.831 22.103 1.00 20.00 H +ATOM 4049 HG2 LYS A 256 -9.400 -25.644 22.877 1.00 20.00 H +ATOM 4050 HG3 LYS A 256 -10.116 -24.017 23.140 1.00 20.00 H +ATOM 4051 HD2 LYS A 256 -11.919 -25.071 24.504 1.00 20.00 H +ATOM 4052 HD3 LYS A 256 -11.109 -26.661 24.299 1.00 20.00 H +ATOM 4053 HE2 LYS A 256 -9.048 -25.687 25.338 1.00 20.00 H +ATOM 4054 HE3 LYS A 256 -9.964 -24.172 25.645 1.00 20.00 H +ATOM 4055 HZ1 LYS A 256 -9.886 -25.718 27.532 1.00 20.00 H +ATOM 4056 HZ2 LYS A 256 -11.410 -25.366 27.065 1.00 20.00 H +ATOM 4057 HZ3 LYS A 256 -10.753 -26.811 26.684 1.00 20.00 H +ATOM 4058 N PHE A 257 -13.834 -27.085 20.870 1.00 84.87 N +ATOM 4059 CA PHE A 257 -14.959 -27.242 19.966 1.00 83.27 C +ATOM 4060 C PHE A 257 -16.062 -26.258 20.330 1.00 81.59 C +ATOM 4061 O PHE A 257 -16.154 -25.825 21.485 1.00 81.40 O +ATOM 4062 CB PHE A 257 -15.512 -28.672 20.017 1.00 82.87 C +ATOM 4063 CG PHE A 257 -14.457 -29.734 19.911 1.00 83.66 C +ATOM 4064 CD1 PHE A 257 -13.803 -29.966 18.712 1.00 84.60 C +ATOM 4065 CD2 PHE A 257 -14.124 -30.506 21.011 1.00 85.10 C +ATOM 4066 CE1 PHE A 257 -12.831 -30.946 18.614 1.00 86.20 C +ATOM 4067 CE2 PHE A 257 -13.156 -31.488 20.919 1.00 82.15 C +ATOM 4068 CZ PHE A 257 -12.509 -31.708 19.719 1.00 84.13 C +ATOM 4069 H PHE A 257 -14.005 -27.128 21.854 1.00 20.00 H +ATOM 4070 HA PHE A 257 -14.632 -27.034 18.936 1.00 20.00 H +ATOM 4071 HB2 PHE A 257 -16.043 -28.805 20.971 1.00 20.00 H +ATOM 4072 HB3 PHE A 257 -16.218 -28.801 19.184 1.00 20.00 H +ATOM 4073 HD1 PHE A 257 -14.055 -29.375 17.844 1.00 20.00 H +ATOM 4074 HD2 PHE A 257 -14.627 -30.339 21.952 1.00 20.00 H +ATOM 4075 HE1 PHE A 257 -12.325 -31.114 17.675 1.00 20.00 H +ATOM 4076 HE2 PHE A 257 -12.906 -32.083 21.785 1.00 20.00 H +ATOM 4077 HZ PHE A 257 -11.752 -32.475 19.645 1.00 20.00 H +ATOM 4078 N PRO A 258 -16.908 -25.875 19.372 1.00 87.90 N +ATOM 4079 CA PRO A 258 -17.991 -24.939 19.687 1.00 89.58 C +ATOM 4080 C PRO A 258 -18.949 -25.530 20.708 1.00 87.61 C +ATOM 4081 O PRO A 258 -19.103 -26.748 20.814 1.00 86.77 O +ATOM 4082 CB PRO A 258 -18.680 -24.720 18.335 1.00 88.88 C +ATOM 4083 CG PRO A 258 -17.646 -25.085 17.321 1.00 89.58 C +ATOM 4084 CD PRO A 258 -16.869 -26.205 17.936 1.00 89.58 C +ATOM 4085 HA PRO A 258 -17.587 -23.986 20.058 1.00 20.00 H +ATOM 4086 HB2 PRO A 258 -19.563 -25.369 18.240 1.00 20.00 H +ATOM 4087 HB3 PRO A 258 -18.983 -23.669 18.219 1.00 20.00 H +ATOM 4088 HG2 PRO A 258 -18.123 -25.414 16.386 1.00 20.00 H +ATOM 4089 HG3 PRO A 258 -16.989 -24.227 17.115 1.00 20.00 H +ATOM 4090 HD2 PRO A 258 -17.348 -27.175 17.739 1.00 20.00 H +ATOM 4091 HD3 PRO A 258 -15.835 -26.223 17.561 1.00 20.00 H +ATOM 4092 N ASP A 259 -19.594 -24.643 21.469 1.00 84.06 N +ATOM 4093 CA ASP A 259 -20.538 -25.091 22.487 1.00 85.85 C +ATOM 4094 C ASP A 259 -21.666 -25.922 21.888 1.00 88.76 C +ATOM 4095 O ASP A 259 -22.222 -26.796 22.567 1.00 88.52 O +ATOM 4096 CB ASP A 259 -21.106 -23.887 23.235 1.00 91.47 C +ATOM 4097 CG ASP A 259 -20.081 -23.220 24.123 0.00 92.36 C +ATOM 4098 OD1 ASP A 259 -18.900 -23.147 23.720 0.00 92.55 O +ATOM 4099 OD2 ASP A 259 -20.458 -22.760 25.223 0.00 93.47 O +ATOM 4100 H ASP A 259 -19.429 -23.665 21.340 1.00 20.00 H +ATOM 4101 HA ASP A 259 -20.003 -25.719 23.214 1.00 20.00 H +ATOM 4102 HB2 ASP A 259 -21.466 -23.153 22.499 1.00 20.00 H +ATOM 4103 HB3 ASP A 259 -21.947 -24.224 23.859 1.00 20.00 H +ATOM 4104 N GLY A 260 -22.013 -25.668 20.623 1.00 87.49 N +ATOM 4105 CA GLY A 260 -23.085 -26.414 19.986 1.00 85.20 C +ATOM 4106 C GLY A 260 -22.739 -27.867 19.731 1.00 82.93 C +ATOM 4107 O GLY A 260 -23.633 -28.709 19.607 1.00 76.53 O +ATOM 4108 H GLY A 260 -21.531 -24.958 20.110 1.00 20.00 H +ATOM 4109 HA2 GLY A 260 -23.971 -26.376 20.637 1.00 20.00 H +ATOM 4110 HA3 GLY A 260 -23.317 -25.937 19.022 1.00 20.00 H +ATOM 4111 N PHE A 261 -21.446 -28.183 19.645 1.00 80.40 N +ATOM 4112 CA PHE A 261 -21.031 -29.576 19.529 1.00 77.95 C +ATOM 4113 C PHE A 261 -21.443 -30.365 20.764 1.00 74.25 C +ATOM 4114 O PHE A 261 -21.997 -31.465 20.661 1.00 69.16 O +ATOM 4115 CB PHE A 261 -19.519 -29.647 19.313 1.00 79.79 C +ATOM 4116 CG PHE A 261 -18.955 -31.035 19.408 1.00 77.59 C +ATOM 4117 CD1 PHE A 261 -19.159 -31.953 18.389 1.00 72.50 C +ATOM 4118 CD2 PHE A 261 -18.218 -31.423 20.514 1.00 74.49 C +ATOM 4119 CE1 PHE A 261 -18.639 -33.231 18.473 1.00 72.76 C +ATOM 4120 CE2 PHE A 261 -17.699 -32.701 20.605 1.00 71.10 C +ATOM 4121 CZ PHE A 261 -17.909 -33.605 19.584 1.00 68.57 C +ATOM 4122 H PHE A 261 -20.756 -27.459 19.660 1.00 20.00 H +ATOM 4123 HA PHE A 261 -21.523 -30.025 18.654 1.00 20.00 H +ATOM 4124 HB2 PHE A 261 -19.293 -29.249 18.313 1.00 20.00 H +ATOM 4125 HB3 PHE A 261 -19.031 -29.022 20.075 1.00 20.00 H +ATOM 4126 HD1 PHE A 261 -19.731 -31.666 17.519 1.00 20.00 H +ATOM 4127 HD2 PHE A 261 -18.047 -30.719 21.315 1.00 20.00 H +ATOM 4128 HE1 PHE A 261 -18.803 -33.936 17.671 1.00 20.00 H +ATOM 4129 HE2 PHE A 261 -17.129 -32.992 21.475 1.00 20.00 H +ATOM 4130 HZ PHE A 261 -17.503 -34.603 19.654 1.00 20.00 H +ATOM 4131 N TRP A 262 -21.194 -29.802 21.946 1.00 78.30 N +ATOM 4132 CA TRP A 262 -21.506 -30.500 23.185 1.00 75.38 C +ATOM 4133 C TRP A 262 -23.004 -30.601 23.439 1.00 72.65 C +ATOM 4134 O TRP A 262 -23.425 -31.423 24.259 1.00 69.43 O +ATOM 4135 CB TRP A 262 -20.812 -29.808 24.355 1.00 73.24 C +ATOM 4136 CG TRP A 262 -19.319 -29.798 24.218 1.00 75.37 C +ATOM 4137 CD1 TRP A 262 -18.527 -28.724 23.940 1.00 81.32 C +ATOM 4138 CD2 TRP A 262 -18.442 -30.923 24.342 1.00 74.71 C +ATOM 4139 NE1 TRP A 262 -17.207 -29.107 23.893 1.00 76.16 N +ATOM 4140 CE2 TRP A 262 -17.128 -30.453 24.136 1.00 76.90 C +ATOM 4141 CE3 TRP A 262 -18.638 -32.279 24.613 1.00 73.37 C +ATOM 4142 CZ2 TRP A 262 -16.019 -31.293 24.190 1.00 76.08 C +ATOM 4143 CZ3 TRP A 262 -17.537 -33.112 24.666 1.00 74.92 C +ATOM 4144 CH2 TRP A 262 -16.244 -32.616 24.456 1.00 73.02 C +ATOM 4145 H TRP A 262 -20.788 -28.889 21.982 1.00 20.00 H +ATOM 4146 HA TRP A 262 -21.108 -31.524 23.119 1.00 20.00 H +ATOM 4147 HB2 TRP A 262 -21.167 -28.768 24.410 1.00 20.00 H +ATOM 4148 HB3 TRP A 262 -21.077 -30.336 25.283 1.00 20.00 H +ATOM 4149 HD1 TRP A 262 -18.885 -27.718 23.780 1.00 20.00 H +ATOM 4150 HE1 TRP A 262 -16.432 -28.502 23.711 1.00 20.00 H +ATOM 4151 HE3 TRP A 262 -19.632 -32.669 24.778 1.00 20.00 H +ATOM 4152 HZ2 TRP A 262 -15.020 -30.915 24.028 1.00 20.00 H +ATOM 4153 HZ3 TRP A 262 -17.676 -34.163 24.873 1.00 20.00 H +ATOM 4154 HH2 TRP A 262 -15.405 -33.294 24.505 1.00 20.00 H +ATOM 4155 N LEU A 263 -23.816 -29.791 22.765 1.00 78.73 N +ATOM 4156 CA LEU A 263 -25.266 -29.913 22.849 1.00 79.81 C +ATOM 4157 C LEU A 263 -25.836 -30.853 21.793 1.00 78.91 C +ATOM 4158 O LEU A 263 -27.053 -31.072 21.765 1.00 77.56 O +ATOM 4159 CB LEU A 263 -25.925 -28.534 22.719 1.00 83.51 C +ATOM 4160 CG LEU A 263 -25.517 -27.469 23.738 1.00 88.02 C +ATOM 4161 CD1 LEU A 263 -26.125 -26.130 23.355 1.00 90.20 C +ATOM 4162 CD2 LEU A 263 -25.939 -27.868 25.145 1.00 87.08 C +ATOM 4163 H LEU A 263 -23.421 -29.079 22.185 1.00 20.00 H +ATOM 4164 HA LEU A 263 -25.529 -30.318 23.837 1.00 20.00 H +ATOM 4165 HB2 LEU A 263 -25.685 -28.145 21.719 1.00 20.00 H +ATOM 4166 HB3 LEU A 263 -27.012 -28.677 22.806 1.00 20.00 H +ATOM 4167 HG LEU A 263 -24.421 -27.372 23.718 1.00 20.00 H +ATOM 4168 HD11 LEU A 263 -25.828 -25.368 24.091 1.00 20.00 H +ATOM 4169 HD12 LEU A 263 -25.765 -25.836 22.358 1.00 20.00 H +ATOM 4170 HD13 LEU A 263 -27.222 -26.217 23.339 1.00 20.00 H +ATOM 4171 HD21 LEU A 263 -25.634 -27.086 25.856 1.00 20.00 H +ATOM 4172 HD22 LEU A 263 -27.032 -27.988 25.180 1.00 20.00 H +ATOM 4173 HD23 LEU A 263 -25.457 -28.819 25.417 1.00 20.00 H +ATOM 4174 N GLY A 264 -24.989 -31.414 20.931 1.00 79.19 N +ATOM 4175 CA GLY A 264 -25.454 -32.293 19.878 1.00 82.61 C +ATOM 4176 C GLY A 264 -26.040 -31.588 18.677 1.00 83.05 C +ATOM 4177 O GLY A 264 -26.759 -32.216 17.892 1.00 81.79 O +ATOM 4178 H GLY A 264 -24.011 -31.224 21.013 1.00 20.00 H +ATOM 4179 HA2 GLY A 264 -24.602 -32.899 19.537 1.00 20.00 H +ATOM 4180 HA3 GLY A 264 -26.228 -32.952 20.299 1.00 20.00 H +ATOM 4181 N GLU A 265 -25.747 -30.301 18.499 1.00 84.52 N +ATOM 4182 CA GLU A 265 -26.354 -29.513 17.435 1.00 86.46 C +ATOM 4183 C GLU A 265 -25.416 -29.237 16.267 1.00 84.67 C +ATOM 4184 O GLU A 265 -25.880 -28.757 15.229 1.00 80.77 O +ATOM 4185 CB GLU A 265 -26.872 -28.180 17.995 1.00 87.53 C +ATOM 4186 CG GLU A 265 -27.908 -28.333 19.102 1.00 90.30 C +ATOM 4187 CD GLU A 265 -28.350 -27.001 19.684 1.00 94.27 C +ATOM 4188 OE1 GLU A 265 -27.487 -26.124 19.899 1.00 98.16 O +ATOM 4189 OE2 GLU A 265 -29.564 -26.829 19.922 1.00 95.35 O +ATOM 4190 H GLU A 265 -25.091 -29.863 19.114 1.00 20.00 H +ATOM 4191 HA GLU A 265 -27.221 -30.066 17.043 1.00 20.00 H +ATOM 4192 HB2 GLU A 265 -26.016 -27.618 18.397 1.00 20.00 H +ATOM 4193 HB3 GLU A 265 -27.328 -27.612 17.170 1.00 20.00 H +ATOM 4194 HG2 GLU A 265 -28.789 -28.846 18.690 1.00 20.00 H +ATOM 4195 HG3 GLU A 265 -27.473 -28.942 19.908 1.00 20.00 H +ATOM 4196 N GLN A 266 -24.123 -29.531 16.399 1.00 83.27 N +ATOM 4197 CA GLN A 266 -23.164 -29.235 15.344 1.00 79.61 C +ATOM 4198 C GLN A 266 -22.158 -30.372 15.231 1.00 78.81 C +ATOM 4199 O GLN A 266 -21.862 -31.058 16.212 1.00 79.32 O +ATOM 4200 CB GLN A 266 -22.449 -27.899 15.606 1.00 82.22 C +ATOM 4201 CG GLN A 266 -21.667 -27.358 14.420 0.00 83.31 C +ATOM 4202 CD GLN A 266 -20.957 -26.058 14.735 0.00 86.00 C +ATOM 4203 OE1 GLN A 266 -19.791 -25.879 14.387 0.00 86.52 O +ATOM 4204 NE2 GLN A 266 -21.661 -25.139 15.387 0.00 87.56 N +ATOM 4205 H GLN A 266 -23.804 -29.965 17.242 1.00 20.00 H +ATOM 4206 HA GLN A 266 -23.698 -29.153 14.386 1.00 20.00 H +ATOM 4207 HB2 GLN A 266 -23.207 -27.153 15.886 1.00 20.00 H +ATOM 4208 HB3 GLN A 266 -21.749 -28.042 16.442 1.00 20.00 H +ATOM 4209 HG2 GLN A 266 -20.917 -28.106 14.122 0.00 20.00 H +ATOM 4210 HG3 GLN A 266 -22.365 -27.186 13.587 0.00 20.00 H +ATOM 4211 HE21 GLN A 266 -21.245 -24.258 15.614 0.00 20.00 H +ATOM 4212 HE22 GLN A 266 -22.607 -25.328 15.651 0.00 20.00 H +ATOM 4213 N LEU A 267 -21.643 -30.572 14.020 1.00 77.47 N +ATOM 4214 CA LEU A 267 -20.680 -31.630 13.748 1.00 72.65 C +ATOM 4215 C LEU A 267 -19.257 -31.089 13.799 1.00 75.01 C +ATOM 4216 O LEU A 267 -18.986 -29.977 13.338 1.00 76.68 O +ATOM 4217 CB LEU A 267 -20.933 -32.260 12.377 1.00 74.26 C +ATOM 4218 CG LEU A 267 -22.300 -32.867 12.060 1.00 73.45 C +ATOM 4219 CD1 LEU A 267 -22.293 -33.441 10.653 1.00 72.81 C +ATOM 4220 CD2 LEU A 267 -22.667 -33.936 13.073 1.00 75.99 C +ATOM 4221 H LEU A 267 -21.927 -29.975 13.270 1.00 20.00 H +ATOM 4222 HA LEU A 267 -20.779 -32.415 14.512 1.00 20.00 H +ATOM 4223 HB2 LEU A 267 -20.751 -31.476 11.628 1.00 20.00 H +ATOM 4224 HB3 LEU A 267 -20.192 -33.063 12.254 1.00 20.00 H +ATOM 4225 HG LEU A 267 -23.054 -32.067 12.107 1.00 20.00 H +ATOM 4226 HD11 LEU A 267 -23.278 -33.876 10.429 1.00 20.00 H +ATOM 4227 HD12 LEU A 267 -22.074 -32.640 9.932 1.00 20.00 H +ATOM 4228 HD13 LEU A 267 -21.522 -34.222 10.580 1.00 20.00 H +ATOM 4229 HD21 LEU A 267 -23.653 -34.356 12.823 1.00 20.00 H +ATOM 4230 HD22 LEU A 267 -21.912 -34.736 13.052 1.00 20.00 H +ATOM 4231 HD23 LEU A 267 -22.702 -33.491 14.078 1.00 20.00 H +ATOM 4232 N VAL A 268 -18.350 -31.886 14.364 1.00 72.97 N +ATOM 4233 CA VAL A 268 -16.917 -31.613 14.328 1.00 73.05 C +ATOM 4234 C VAL A 268 -16.273 -32.594 13.361 1.00 68.79 C +ATOM 4235 O VAL A 268 -16.620 -33.782 13.340 1.00 68.55 O +ATOM 4236 CB VAL A 268 -16.291 -31.710 15.733 1.00 76.30 C +ATOM 4237 CG1 VAL A 268 -14.776 -31.807 15.643 1.00 73.13 C +ATOM 4238 CG2 VAL A 268 -16.684 -30.501 16.564 1.00 79.72 C +ATOM 4239 H VAL A 268 -18.667 -32.710 14.835 1.00 20.00 H +ATOM 4240 HA VAL A 268 -16.752 -30.594 13.949 1.00 20.00 H +ATOM 4241 HB VAL A 268 -16.675 -32.617 16.224 1.00 20.00 H +ATOM 4242 HG11 VAL A 268 -14.352 -31.875 16.656 1.00 20.00 H +ATOM 4243 HG12 VAL A 268 -14.500 -32.703 15.069 1.00 20.00 H +ATOM 4244 HG13 VAL A 268 -14.381 -30.913 15.139 1.00 20.00 H +ATOM 4245 HG21 VAL A 268 -16.232 -30.580 17.564 1.00 20.00 H +ATOM 4246 HG22 VAL A 268 -16.325 -29.585 16.071 1.00 20.00 H +ATOM 4247 HG23 VAL A 268 -17.779 -30.462 16.659 1.00 20.00 H +ATOM 4248 N CYS A 269 -15.341 -32.100 12.546 1.00 68.12 N +ATOM 4249 CA CYS A 269 -14.764 -32.883 11.465 1.00 70.22 C +ATOM 4250 C CYS A 269 -13.246 -32.899 11.559 1.00 69.30 C +ATOM 4251 O CYS A 269 -12.630 -32.007 12.147 1.00 77.74 O +ATOM 4252 CB CYS A 269 -15.166 -32.332 10.091 1.00 74.95 C +ATOM 4253 SG CYS A 269 -16.943 -32.170 9.812 1.00 82.02 S +ATOM 4254 H CYS A 269 -15.028 -31.160 12.682 1.00 20.00 H +ATOM 4255 HA CYS A 269 -15.125 -33.919 11.537 1.00 20.00 H +ATOM 4256 HB2 CYS A 269 -14.712 -31.336 9.979 1.00 20.00 H +ATOM 4257 HB3 CYS A 269 -14.762 -33.008 9.323 1.00 20.00 H +ATOM 4258 N TRP A 270 -12.653 -33.929 10.960 1.00 66.82 N +ATOM 4259 CA TRP A 270 -11.213 -34.023 10.787 1.00 67.44 C +ATOM 4260 C TRP A 270 -10.926 -34.597 9.408 1.00 70.22 C +ATOM 4261 O TRP A 270 -11.799 -35.184 8.764 1.00 74.85 O +ATOM 4262 CB TRP A 270 -10.554 -34.900 11.863 1.00 68.20 C +ATOM 4263 CG TRP A 270 -10.569 -34.314 13.238 1.00 68.46 C +ATOM 4264 CD1 TRP A 270 -9.679 -33.420 13.758 1.00 66.55 C +ATOM 4265 CD2 TRP A 270 -11.512 -34.594 14.278 1.00 67.00 C +ATOM 4266 NE1 TRP A 270 -10.015 -33.119 15.056 1.00 65.75 N +ATOM 4267 CE2 TRP A 270 -11.138 -33.826 15.399 1.00 67.66 C +ATOM 4268 CE3 TRP A 270 -12.641 -35.415 14.369 1.00 64.21 C +ATOM 4269 CZ2 TRP A 270 -11.849 -33.858 16.597 1.00 67.14 C +ATOM 4270 CZ3 TRP A 270 -13.348 -35.445 15.558 1.00 62.02 C +ATOM 4271 CH2 TRP A 270 -12.949 -34.672 16.656 1.00 64.34 C +ATOM 4272 H TRP A 270 -13.225 -34.673 10.613 1.00 20.00 H +ATOM 4273 HA TRP A 270 -10.772 -33.017 10.844 1.00 20.00 H +ATOM 4274 HB2 TRP A 270 -11.086 -35.862 11.894 1.00 20.00 H +ATOM 4275 HB3 TRP A 270 -9.506 -35.069 11.573 1.00 20.00 H +ATOM 4276 HD1 TRP A 270 -8.833 -33.009 13.227 1.00 20.00 H +ATOM 4277 HE1 TRP A 270 -9.521 -32.487 15.653 1.00 20.00 H +ATOM 4278 HE3 TRP A 270 -12.955 -36.014 13.527 1.00 20.00 H +ATOM 4279 HZ2 TRP A 270 -11.545 -33.264 17.446 1.00 20.00 H +ATOM 4280 HZ3 TRP A 270 -14.222 -36.075 15.641 1.00 20.00 H +ATOM 4281 HH2 TRP A 270 -13.522 -34.719 17.570 1.00 20.00 H +ATOM 4282 N GLN A 271 -9.688 -34.408 8.958 1.00 69.82 N +ATOM 4283 CA GLN A 271 -9.247 -35.018 7.713 1.00 71.00 C +ATOM 4284 C GLN A 271 -9.405 -36.529 7.806 1.00 73.47 C +ATOM 4285 O GLN A 271 -9.101 -37.132 8.840 1.00 76.19 O +ATOM 4286 CB GLN A 271 -7.791 -34.641 7.429 1.00 73.41 C +ATOM 4287 CG GLN A 271 -7.308 -34.993 6.030 1.00 74.38 C +ATOM 4288 CD GLN A 271 -5.902 -34.493 5.759 0.00 70.35 C +ATOM 4289 OE1 GLN A 271 -5.106 -34.325 6.682 0.00 69.60 O +ATOM 4290 NE2 GLN A 271 -5.593 -34.243 4.491 0.00 69.66 N +ATOM 4291 H GLN A 271 -9.053 -33.840 9.482 1.00 20.00 H +ATOM 4292 HA GLN A 271 -9.870 -34.651 6.884 1.00 20.00 H +ATOM 4293 HB2 GLN A 271 -7.685 -33.555 7.566 1.00 20.00 H +ATOM 4294 HB3 GLN A 271 -7.153 -35.166 8.155 1.00 20.00 H +ATOM 4295 HG2 GLN A 271 -7.321 -36.087 5.917 1.00 20.00 H +ATOM 4296 HG3 GLN A 271 -7.991 -34.540 5.296 1.00 20.00 H +ATOM 4297 HE21 GLN A 271 -4.682 -33.904 4.256 0.00 20.00 H +ATOM 4298 HE22 GLN A 271 -6.271 -34.394 3.772 0.00 20.00 H +ATOM 4299 N ALA A 272 -9.909 -37.129 6.727 1.00 72.56 N +ATOM 4300 CA ALA A 272 -10.279 -38.540 6.733 1.00 71.08 C +ATOM 4301 C ALA A 272 -9.145 -39.410 7.249 1.00 70.54 C +ATOM 4302 O ALA A 272 -8.016 -39.338 6.758 1.00 72.89 O +ATOM 4303 CB ALA A 272 -10.681 -38.982 5.326 1.00 72.85 C +ATOM 4304 H ALA A 272 -10.037 -36.597 5.890 1.00 20.00 H +ATOM 4305 HA ALA A 272 -11.146 -38.679 7.395 1.00 20.00 H +ATOM 4306 HB1 ALA A 272 -10.958 -40.046 5.341 1.00 20.00 H +ATOM 4307 HB2 ALA A 272 -11.539 -38.384 4.985 1.00 20.00 H +ATOM 4308 HB3 ALA A 272 -9.835 -38.833 4.639 1.00 20.00 H +ATOM 4309 N GLY A 273 -9.454 -40.227 8.257 1.00 71.27 N +ATOM 4310 CA GLY A 273 -8.477 -41.104 8.865 1.00 64.10 C +ATOM 4311 C GLY A 273 -7.678 -40.497 9.997 1.00 65.38 C +ATOM 4312 O GLY A 273 -6.965 -41.233 10.692 1.00 68.57 O +ATOM 4313 H GLY A 273 -10.392 -40.234 8.604 1.00 20.00 H +ATOM 4314 HA2 GLY A 273 -9.008 -41.984 9.258 1.00 20.00 H +ATOM 4315 HA3 GLY A 273 -7.771 -41.421 8.083 1.00 20.00 H +ATOM 4316 N THR A 274 -7.775 -39.186 10.219 1.00 67.40 N +ATOM 4317 CA THR A 274 -6.955 -38.505 11.211 1.00 68.44 C +ATOM 4318 C THR A 274 -7.731 -38.148 12.472 1.00 69.98 C +ATOM 4319 O THR A 274 -7.301 -37.267 13.226 1.00 70.10 O +ATOM 4320 CB THR A 274 -6.330 -37.249 10.604 1.00 70.75 C +ATOM 4321 OG1 THR A 274 -7.334 -36.237 10.461 1.00 69.15 O +ATOM 4322 CG2 THR A 274 -5.749 -37.566 9.239 1.00 70.65 C +ATOM 4323 H THR A 274 -8.433 -38.653 9.687 1.00 20.00 H +ATOM 4324 HA THR A 274 -6.134 -39.176 11.504 1.00 20.00 H +ATOM 4325 HB THR A 274 -5.524 -36.896 11.265 1.00 20.00 H +ATOM 4326 HG1 THR A 274 -8.172 -36.645 10.276 1.00 20.00 H +ATOM 4327 HG21 THR A 274 -5.302 -36.657 8.810 1.00 20.00 H +ATOM 4328 HG22 THR A 274 -4.976 -38.342 9.341 1.00 20.00 H +ATOM 4329 HG23 THR A 274 -6.548 -37.929 8.576 1.00 20.00 H +ATOM 4330 N THR A 275 -8.856 -38.805 12.714 1.00 68.50 N +ATOM 4331 CA THR A 275 -9.646 -38.522 13.903 1.00 64.55 C +ATOM 4332 C THR A 275 -8.825 -38.826 15.152 1.00 61.67 C +ATOM 4333 O THR A 275 -8.344 -39.959 15.306 1.00 58.07 O +ATOM 4334 CB THR A 275 -10.930 -39.343 13.905 1.00 62.27 C +ATOM 4335 OG1 THR A 275 -11.648 -39.105 12.690 1.00 65.46 O +ATOM 4336 CG2 THR A 275 -11.801 -38.949 15.090 1.00 55.54 C +ATOM 4337 H THR A 275 -9.166 -39.505 12.071 1.00 20.00 H +ATOM 4338 HA THR A 275 -9.915 -37.456 13.916 1.00 20.00 H +ATOM 4339 HB THR A 275 -10.672 -40.409 13.991 1.00 20.00 H +ATOM 4340 HG1 THR A 275 -11.739 -38.169 12.554 1.00 20.00 H +ATOM 4341 HG21 THR A 275 -12.724 -39.547 15.082 1.00 20.00 H +ATOM 4342 HG22 THR A 275 -11.253 -39.134 16.025 1.00 20.00 H +ATOM 4343 HG23 THR A 275 -12.055 -37.881 15.019 1.00 20.00 H +ATOM 4344 N PRO A 276 -8.630 -37.858 16.058 1.00 58.52 N +ATOM 4345 CA PRO A 276 -7.725 -38.052 17.210 1.00 60.85 C +ATOM 4346 C PRO A 276 -8.442 -38.678 18.402 1.00 56.41 C +ATOM 4347 O PRO A 276 -8.730 -38.026 19.416 1.00 56.42 O +ATOM 4348 CB PRO A 276 -7.253 -36.623 17.489 1.00 61.59 C +ATOM 4349 CG PRO A 276 -8.461 -35.790 17.163 1.00 65.96 C +ATOM 4350 CD PRO A 276 -9.211 -36.505 16.048 1.00 59.13 C +ATOM 4351 HA PRO A 276 -6.866 -38.676 16.923 1.00 20.00 H +ATOM 4352 HB2 PRO A 276 -6.964 -36.502 18.544 1.00 20.00 H +ATOM 4353 HB3 PRO A 276 -6.404 -36.355 16.843 1.00 20.00 H +ATOM 4354 HG2 PRO A 276 -9.104 -35.695 18.050 1.00 20.00 H +ATOM 4355 HG3 PRO A 276 -8.150 -34.790 16.827 1.00 20.00 H +ATOM 4356 HD2 PRO A 276 -10.290 -36.539 16.258 1.00 20.00 H +ATOM 4357 HD3 PRO A 276 -9.041 -36.011 15.080 1.00 20.00 H +ATOM 4358 N TRP A 277 -8.745 -39.973 18.280 1.00 53.86 N +ATOM 4359 CA TRP A 277 -9.511 -40.661 19.314 1.00 54.40 C +ATOM 4360 C TRP A 277 -8.850 -40.543 20.680 1.00 53.23 C +ATOM 4361 O TRP A 277 -9.536 -40.462 21.705 1.00 51.56 O +ATOM 4362 CB TRP A 277 -9.684 -42.134 18.944 1.00 52.20 C +ATOM 4363 CG TRP A 277 -10.328 -42.377 17.612 1.00 58.51 C +ATOM 4364 CD1 TRP A 277 -9.722 -42.846 16.484 1.00 60.68 C +ATOM 4365 CD2 TRP A 277 -11.704 -42.167 17.270 1.00 53.03 C +ATOM 4366 NE1 TRP A 277 -10.634 -42.941 15.460 1.00 53.55 N +ATOM 4367 CE2 TRP A 277 -11.858 -42.527 15.916 1.00 54.33 C +ATOM 4368 CE3 TRP A 277 -12.820 -41.705 17.976 1.00 56.56 C +ATOM 4369 CZ2 TRP A 277 -13.083 -42.443 15.254 1.00 54.75 C +ATOM 4370 CZ3 TRP A 277 -14.040 -41.621 17.314 1.00 50.32 C +ATOM 4371 CH2 TRP A 277 -14.158 -41.987 15.968 1.00 52.57 C +ATOM 4372 H TRP A 277 -8.443 -40.477 17.471 1.00 20.00 H +ATOM 4373 HA TRP A 277 -10.511 -40.207 19.378 1.00 20.00 H +ATOM 4374 HB2 TRP A 277 -8.689 -42.603 18.934 1.00 20.00 H +ATOM 4375 HB3 TRP A 277 -10.306 -42.610 19.716 1.00 20.00 H +ATOM 4376 HD1 TRP A 277 -8.677 -43.105 16.406 1.00 20.00 H +ATOM 4377 HE1 TRP A 277 -10.436 -43.260 14.533 1.00 20.00 H +ATOM 4378 HE3 TRP A 277 -12.736 -41.419 19.014 1.00 20.00 H +ATOM 4379 HZ2 TRP A 277 -13.180 -42.727 14.217 1.00 20.00 H +ATOM 4380 HZ3 TRP A 277 -14.910 -41.268 17.847 1.00 20.00 H +ATOM 4381 HH2 TRP A 277 -15.119 -41.908 15.482 1.00 20.00 H +ATOM 4382 N ASN A 278 -7.515 -40.509 20.716 1.00 55.78 N +ATOM 4383 CA ASN A 278 -6.822 -40.647 21.992 1.00 56.21 C +ATOM 4384 C ASN A 278 -6.982 -39.414 22.877 1.00 57.23 C +ATOM 4385 O ASN A 278 -6.844 -39.513 24.100 1.00 56.71 O +ATOM 4386 CB ASN A 278 -5.342 -40.943 21.758 1.00 55.91 C +ATOM 4387 CG ASN A 278 -4.597 -39.760 21.180 1.00 59.52 C +ATOM 4388 OD1 ASN A 278 -4.529 -39.590 19.965 1.00 58.00 O +ATOM 4389 ND2 ASN A 278 -4.029 -38.935 22.051 1.00 66.46 N +ATOM 4390 H ASN A 278 -6.993 -40.389 19.872 1.00 20.00 H +ATOM 4391 HA ASN A 278 -7.252 -41.503 22.532 1.00 20.00 H +ATOM 4392 HB2 ASN A 278 -4.881 -41.215 22.719 1.00 20.00 H +ATOM 4393 HB3 ASN A 278 -5.258 -41.788 21.059 1.00 20.00 H +ATOM 4394 HD21 ASN A 278 -3.521 -38.138 21.726 1.00 20.00 H +ATOM 4395 HD22 ASN A 278 -4.109 -39.111 23.032 1.00 20.00 H +ATOM 4396 N ILE A 279 -7.286 -38.249 22.302 1.00 55.35 N +ATOM 4397 CA ILE A 279 -7.441 -37.073 23.150 1.00 56.97 C +ATOM 4398 C ILE A 279 -8.784 -37.069 23.863 1.00 57.50 C +ATOM 4399 O ILE A 279 -8.968 -36.311 24.821 1.00 61.70 O +ATOM 4400 CB ILE A 279 -7.245 -35.780 22.341 1.00 61.98 C +ATOM 4401 CG1 ILE A 279 -8.458 -35.521 21.450 1.00 67.61 C +ATOM 4402 CG2 ILE A 279 -5.977 -35.860 21.512 1.00 57.74 C +ATOM 4403 CD1 ILE A 279 -8.317 -34.282 20.615 1.00 68.62 C +ATOM 4404 H ILE A 279 -7.405 -38.184 21.311 1.00 20.00 H +ATOM 4405 HA ILE A 279 -6.657 -37.098 23.921 1.00 20.00 H +ATOM 4406 HB ILE A 279 -7.148 -34.943 23.048 1.00 20.00 H +ATOM 4407 HG12 ILE A 279 -8.591 -36.383 20.779 1.00 20.00 H +ATOM 4408 HG13 ILE A 279 -9.347 -35.414 22.090 1.00 20.00 H +ATOM 4409 HG21 ILE A 279 -5.852 -34.928 20.941 1.00 20.00 H +ATOM 4410 HG22 ILE A 279 -5.112 -36.000 22.177 1.00 20.00 H +ATOM 4411 HG23 ILE A 279 -6.047 -36.710 20.817 1.00 20.00 H +ATOM 4412 HD11 ILE A 279 -9.218 -34.151 19.998 1.00 20.00 H +ATOM 4413 HD12 ILE A 279 -8.192 -33.409 21.273 1.00 20.00 H +ATOM 4414 HD13 ILE A 279 -7.437 -34.378 19.962 1.00 20.00 H +ATOM 4415 N PHE A 280 -9.726 -37.907 23.432 1.00 56.86 N +ATOM 4416 CA PHE A 280 -11.023 -38.015 24.086 1.00 55.35 C +ATOM 4417 C PHE A 280 -10.989 -39.097 25.164 1.00 55.33 C +ATOM 4418 O PHE A 280 -10.338 -40.131 24.986 1.00 54.66 O +ATOM 4419 CB PHE A 280 -12.117 -38.341 23.070 1.00 57.00 C +ATOM 4420 CG PHE A 280 -12.460 -37.197 22.156 1.00 58.59 C +ATOM 4421 CD1 PHE A 280 -13.380 -36.235 22.543 1.00 58.82 C +ATOM 4422 CD2 PHE A 280 -11.871 -37.089 20.906 1.00 59.48 C +ATOM 4423 CE1 PHE A 280 -13.702 -35.183 21.703 1.00 58.92 C +ATOM 4424 CE2 PHE A 280 -12.189 -36.037 20.061 1.00 61.24 C +ATOM 4425 CZ PHE A 280 -13.105 -35.084 20.461 1.00 64.44 C +ATOM 4426 H PHE A 280 -9.537 -38.480 22.635 1.00 20.00 H +ATOM 4427 HA PHE A 280 -11.270 -37.056 24.565 1.00 20.00 H +ATOM 4428 HB2 PHE A 280 -11.777 -39.187 22.454 1.00 20.00 H +ATOM 4429 HB3 PHE A 280 -13.025 -38.630 23.619 1.00 20.00 H +ATOM 4430 HD1 PHE A 280 -13.851 -36.307 23.512 1.00 20.00 H +ATOM 4431 HD2 PHE A 280 -11.156 -37.833 20.587 1.00 20.00 H +ATOM 4432 HE1 PHE A 280 -14.420 -34.440 22.018 1.00 20.00 H +ATOM 4433 HE2 PHE A 280 -11.721 -35.963 19.091 1.00 20.00 H +ATOM 4434 HZ PHE A 280 -13.354 -34.263 19.805 1.00 20.00 H +ATOM 4435 N PRO A 281 -11.691 -38.885 26.271 1.00 54.33 N +ATOM 4436 CA PRO A 281 -11.640 -39.841 27.378 1.00 54.08 C +ATOM 4437 C PRO A 281 -12.572 -41.026 27.179 1.00 55.29 C +ATOM 4438 O PRO A 281 -13.496 -41.010 26.363 1.00 55.38 O +ATOM 4439 CB PRO A 281 -12.083 -38.998 28.576 1.00 54.85 C +ATOM 4440 CG PRO A 281 -13.026 -38.013 27.985 1.00 55.23 C +ATOM 4441 CD PRO A 281 -12.469 -37.682 26.619 1.00 56.74 C +ATOM 4442 HA PRO A 281 -10.611 -40.197 27.535 1.00 20.00 H +ATOM 4443 HB2 PRO A 281 -12.588 -39.621 29.329 1.00 20.00 H +ATOM 4444 HB3 PRO A 281 -11.223 -38.490 29.037 1.00 20.00 H +ATOM 4445 HG2 PRO A 281 -14.031 -38.451 27.894 1.00 20.00 H +ATOM 4446 HG3 PRO A 281 -13.076 -37.108 28.608 1.00 20.00 H +ATOM 4447 HD2 PRO A 281 -11.823 -36.793 26.662 1.00 20.00 H +ATOM 4448 HD3 PRO A 281 -13.278 -37.512 25.894 1.00 20.00 H +ATOM 4449 N VAL A 282 -12.298 -42.074 27.955 1.00 53.84 N +ATOM 4450 CA VAL A 282 -13.236 -43.177 28.083 1.00 53.99 C +ATOM 4451 C VAL A 282 -14.272 -42.838 29.148 1.00 56.32 C +ATOM 4452 O VAL A 282 -14.076 -41.962 29.995 1.00 56.71 O +ATOM 4453 CB VAL A 282 -12.513 -44.492 28.414 1.00 52.74 C +ATOM 4454 CG1 VAL A 282 -11.506 -44.828 27.337 1.00 50.53 C +ATOM 4455 CG2 VAL A 282 -11.841 -44.395 29.773 1.00 53.92 C +ATOM 4456 H VAL A 282 -11.434 -42.102 28.457 1.00 20.00 H +ATOM 4457 HA VAL A 282 -13.762 -43.312 27.126 1.00 20.00 H +ATOM 4458 HB VAL A 282 -13.263 -45.296 28.454 1.00 20.00 H +ATOM 4459 HG11 VAL A 282 -10.999 -45.771 27.590 1.00 20.00 H +ATOM 4460 HG12 VAL A 282 -12.024 -44.938 26.373 1.00 20.00 H +ATOM 4461 HG13 VAL A 282 -10.763 -44.020 27.265 1.00 20.00 H +ATOM 4462 HG21 VAL A 282 -11.328 -45.342 29.997 1.00 20.00 H +ATOM 4463 HG22 VAL A 282 -11.108 -43.575 29.762 1.00 20.00 H +ATOM 4464 HG23 VAL A 282 -12.600 -44.198 30.544 1.00 20.00 H +ATOM 4465 N ILE A 283 -15.394 -43.546 29.104 1.00 56.98 N +ATOM 4466 CA ILE A 283 -16.496 -43.326 30.030 1.00 58.74 C +ATOM 4467 C ILE A 283 -16.839 -44.657 30.674 1.00 58.04 C +ATOM 4468 O ILE A 283 -17.088 -45.648 29.975 1.00 56.88 O +ATOM 4469 CB ILE A 283 -17.722 -42.721 29.333 1.00 63.35 C +ATOM 4470 CG1 ILE A 283 -17.356 -41.377 28.722 1.00 71.58 C +ATOM 4471 CG2 ILE A 283 -18.865 -42.560 30.318 1.00 60.38 C +ATOM 4472 CD1 ILE A 283 -18.485 -40.719 28.036 1.00 71.97 C +ATOM 4473 H ILE A 283 -15.486 -44.258 28.408 1.00 20.00 H +ATOM 4474 HA ILE A 283 -16.172 -42.632 30.819 1.00 20.00 H +ATOM 4475 HB ILE A 283 -18.040 -43.401 28.529 1.00 20.00 H +ATOM 4476 HG12 ILE A 283 -17.001 -40.714 29.525 1.00 20.00 H +ATOM 4477 HG13 ILE A 283 -16.548 -41.534 27.992 1.00 20.00 H +ATOM 4478 HG21 ILE A 283 -19.735 -42.126 29.803 1.00 20.00 H +ATOM 4479 HG22 ILE A 283 -19.136 -43.544 30.729 1.00 20.00 H +ATOM 4480 HG23 ILE A 283 -18.553 -41.894 31.136 1.00 20.00 H +ATOM 4481 HD11 ILE A 283 -18.151 -39.757 27.620 1.00 20.00 H +ATOM 4482 HD12 ILE A 283 -18.846 -41.365 27.222 1.00 20.00 H +ATOM 4483 HD13 ILE A 283 -19.299 -40.545 28.755 1.00 20.00 H +ATOM 4484 N SER A 284 -16.863 -44.678 31.999 1.00 56.50 N +ATOM 4485 CA SER A 284 -17.105 -45.892 32.761 1.00 57.29 C +ATOM 4486 C SER A 284 -18.362 -45.730 33.601 1.00 57.17 C +ATOM 4487 O SER A 284 -18.522 -44.726 34.302 1.00 61.21 O +ATOM 4488 CB SER A 284 -15.905 -46.223 33.654 1.00 56.10 C +ATOM 4489 OG SER A 284 -14.761 -46.503 32.872 1.00 58.43 O +ATOM 4490 H SER A 284 -16.708 -43.824 32.495 1.00 20.00 H +ATOM 4491 HA SER A 284 -17.258 -46.731 32.067 1.00 20.00 H +ATOM 4492 HB2 SER A 284 -15.694 -45.364 34.308 1.00 20.00 H +ATOM 4493 HB3 SER A 284 -16.145 -47.102 34.270 1.00 20.00 H +ATOM 4494 HG SER A 284 -13.980 -46.248 33.349 1.00 20.00 H +ATOM 4495 N LEU A 285 -19.255 -46.710 33.507 1.00 56.92 N +ATOM 4496 CA LEU A 285 -20.383 -46.854 34.414 1.00 53.83 C +ATOM 4497 C LEU A 285 -20.166 -48.109 35.246 1.00 53.70 C +ATOM 4498 O LEU A 285 -19.916 -49.186 34.692 1.00 53.80 O +ATOM 4499 CB LEU A 285 -21.711 -46.957 33.656 1.00 53.38 C +ATOM 4500 CG LEU A 285 -22.094 -45.914 32.604 1.00 54.87 C +ATOM 4501 CD1 LEU A 285 -23.488 -46.208 32.057 1.00 53.32 C +ATOM 4502 CD2 LEU A 285 -22.024 -44.505 33.171 1.00 55.18 C +ATOM 4503 H LEU A 285 -19.146 -47.383 32.775 1.00 20.00 H +ATOM 4504 HA LEU A 285 -20.429 -45.986 35.088 1.00 20.00 H +ATOM 4505 HB2 LEU A 285 -21.706 -47.931 33.145 1.00 20.00 H +ATOM 4506 HB3 LEU A 285 -22.507 -46.945 34.415 1.00 20.00 H +ATOM 4507 HG LEU A 285 -21.377 -45.987 31.773 1.00 20.00 H +ATOM 4508 HD11 LEU A 285 -23.753 -45.453 31.302 1.00 20.00 H +ATOM 4509 HD12 LEU A 285 -23.498 -47.207 31.596 1.00 20.00 H +ATOM 4510 HD13 LEU A 285 -24.218 -46.177 32.879 1.00 20.00 H +ATOM 4511 HD21 LEU A 285 -22.304 -43.781 32.392 1.00 20.00 H +ATOM 4512 HD22 LEU A 285 -22.718 -44.417 34.020 1.00 20.00 H +ATOM 4513 HD23 LEU A 285 -20.999 -44.298 33.512 1.00 20.00 H +ATOM 4514 N TYR A 286 -20.245 -47.967 36.565 1.00 53.50 N +ATOM 4515 CA TYR A 286 -20.219 -49.102 37.478 1.00 52.35 C +ATOM 4516 C TYR A 286 -21.652 -49.555 37.731 1.00 53.02 C +ATOM 4517 O TYR A 286 -22.504 -48.744 38.110 1.00 57.15 O +ATOM 4518 CB TYR A 286 -19.546 -48.742 38.804 1.00 50.55 C +ATOM 4519 CG TYR A 286 -18.039 -48.573 38.745 1.00 51.48 C +ATOM 4520 CD1 TYR A 286 -17.466 -47.484 38.106 1.00 51.57 C +ATOM 4521 CD2 TYR A 286 -17.191 -49.490 39.356 1.00 53.14 C +ATOM 4522 CE1 TYR A 286 -16.088 -47.318 38.059 1.00 48.74 C +ATOM 4523 CE2 TYR A 286 -15.808 -49.334 39.317 1.00 49.36 C +ATOM 4524 CZ TYR A 286 -15.264 -48.245 38.666 1.00 49.03 C +ATOM 4525 OH TYR A 286 -13.898 -48.072 38.616 1.00 50.76 O +ATOM 4526 H TYR A 286 -20.325 -47.046 36.945 1.00 20.00 H +ATOM 4527 HA TYR A 286 -19.664 -49.932 37.017 1.00 20.00 H +ATOM 4528 HB2 TYR A 286 -19.980 -47.796 39.159 1.00 20.00 H +ATOM 4529 HB3 TYR A 286 -19.770 -49.541 39.526 1.00 20.00 H +ATOM 4530 HD1 TYR A 286 -18.104 -46.750 37.636 1.00 20.00 H +ATOM 4531 HD2 TYR A 286 -17.614 -50.340 39.871 1.00 20.00 H +ATOM 4532 HE1 TYR A 286 -15.662 -46.466 37.549 1.00 20.00 H +ATOM 4533 HE2 TYR A 286 -15.165 -50.060 39.793 1.00 20.00 H +ATOM 4534 HH TYR A 286 -13.696 -47.144 38.610 1.00 20.00 H +ATOM 4535 N LEU A 287 -21.916 -50.841 37.526 1.00 49.54 N +ATOM 4536 CA LEU A 287 -23.239 -51.405 37.744 1.00 55.89 C +ATOM 4537 C LEU A 287 -23.231 -52.320 38.961 1.00 60.93 C +ATOM 4538 O LEU A 287 -22.222 -52.962 39.269 1.00 50.25 O +ATOM 4539 CB LEU A 287 -23.719 -52.185 36.516 1.00 53.36 C +ATOM 4540 CG LEU A 287 -23.780 -51.380 35.218 1.00 55.57 C +ATOM 4541 CD1 LEU A 287 -23.997 -52.298 34.030 1.00 56.44 C +ATOM 4542 CD2 LEU A 287 -24.870 -50.321 35.293 1.00 61.83 C +ATOM 4543 H LEU A 287 -21.181 -51.441 37.211 1.00 20.00 H +ATOM 4544 HA LEU A 287 -23.952 -50.589 37.931 1.00 20.00 H +ATOM 4545 HB2 LEU A 287 -23.033 -53.031 36.360 1.00 20.00 H +ATOM 4546 HB3 LEU A 287 -24.729 -52.566 36.728 1.00 20.00 H +ATOM 4547 HG LEU A 287 -22.814 -50.870 35.087 1.00 20.00 H +ATOM 4548 HD11 LEU A 287 -24.038 -51.701 33.107 1.00 20.00 H +ATOM 4549 HD12 LEU A 287 -23.166 -53.016 33.965 1.00 20.00 H +ATOM 4550 HD13 LEU A 287 -24.944 -52.843 34.156 1.00 20.00 H +ATOM 4551 HD21 LEU A 287 -24.897 -49.754 34.351 1.00 20.00 H +ATOM 4552 HD22 LEU A 287 -25.843 -50.807 35.456 1.00 20.00 H +ATOM 4553 HD23 LEU A 287 -24.658 -49.636 36.127 1.00 20.00 H +ATOM 4554 N MET A 288 -24.372 -52.377 39.645 1.00 64.28 N +ATOM 4555 CA MET A 288 -24.508 -53.248 40.806 1.00 62.60 C +ATOM 4556 C MET A 288 -24.302 -54.705 40.404 1.00 56.34 C +ATOM 4557 O MET A 288 -24.785 -55.155 39.362 1.00 49.67 O +ATOM 4558 CB MET A 288 -25.886 -53.061 41.446 1.00 63.25 C +ATOM 4559 CG MET A 288 -26.148 -53.956 42.650 1.00 65.55 C +ATOM 4560 SD MET A 288 -27.869 -53.946 43.193 1.00 68.30 S +ATOM 4561 CE MET A 288 -27.919 -52.484 44.230 1.00 60.12 C +ATOM 4562 H MET A 288 -25.147 -51.814 39.358 1.00 20.00 H +ATOM 4563 HA MET A 288 -23.743 -52.982 41.550 1.00 20.00 H +ATOM 4564 HB2 MET A 288 -25.975 -52.014 41.770 1.00 20.00 H +ATOM 4565 HB3 MET A 288 -26.651 -53.276 40.685 1.00 20.00 H +ATOM 4566 HG2 MET A 288 -25.873 -54.987 42.384 1.00 20.00 H +ATOM 4567 HG3 MET A 288 -25.518 -53.612 43.483 1.00 20.00 H +ATOM 4568 HE1 MET A 288 -28.955 -52.295 44.548 1.00 20.00 H +ATOM 4569 HE2 MET A 288 -27.286 -52.641 45.116 1.00 20.00 H +ATOM 4570 HE3 MET A 288 -27.546 -51.619 43.662 1.00 20.00 H +ATOM 4571 N GLY A 289 -23.553 -55.441 41.228 1.00 53.49 N +ATOM 4572 CA GLY A 289 -23.248 -56.826 40.943 1.00 53.48 C +ATOM 4573 C GLY A 289 -24.296 -57.767 41.507 1.00 53.65 C +ATOM 4574 O GLY A 289 -25.298 -57.356 42.092 1.00 56.40 O +ATOM 4575 H GLY A 289 -23.194 -55.025 42.063 1.00 20.00 H +ATOM 4576 HA2 GLY A 289 -23.199 -56.962 39.853 1.00 20.00 H +ATOM 4577 HA3 GLY A 289 -22.273 -57.074 41.387 1.00 20.00 H +ATOM 4578 N GLU A 290 -24.049 -59.066 41.317 1.00 53.70 N +ATOM 4579 CA GLU A 290 -24.965 -60.071 41.846 1.00 56.69 C +ATOM 4580 C GLU A 290 -24.635 -60.440 43.288 1.00 61.02 C +ATOM 4581 O GLU A 290 -25.520 -60.877 44.032 1.00 61.93 O +ATOM 4582 CB GLU A 290 -24.956 -61.317 40.956 1.00 60.53 C +ATOM 4583 CG GLU A 290 -25.664 -61.122 39.618 1.00 58.97 C +ATOM 4584 CD GLU A 290 -26.433 -62.354 39.169 1.00 66.66 C +ATOM 4585 OE1 GLU A 290 -25.827 -63.237 38.527 1.00 67.84 O +ATOM 4586 OE2 GLU A 290 -27.644 -62.441 39.464 1.00 67.14 O +ATOM 4587 H GLU A 290 -23.235 -59.350 40.811 1.00 20.00 H +ATOM 4588 HA GLU A 290 -25.984 -59.658 41.831 1.00 20.00 H +ATOM 4589 HB2 GLU A 290 -23.910 -61.595 40.758 1.00 20.00 H +ATOM 4590 HB3 GLU A 290 -25.456 -62.134 41.497 1.00 20.00 H +ATOM 4591 HG2 GLU A 290 -26.370 -60.284 39.714 1.00 20.00 H +ATOM 4592 HG3 GLU A 290 -24.910 -60.881 38.854 1.00 20.00 H +ATOM 4593 N VAL A 291 -23.393 -60.252 43.700 1.00 60.55 N +ATOM 4594 CA VAL A 291 -22.952 -60.555 45.055 1.00 59.80 C +ATOM 4595 C VAL A 291 -23.043 -59.290 45.893 1.00 64.01 C +ATOM 4596 O VAL A 291 -22.949 -58.168 45.380 1.00 68.63 O +ATOM 4597 CB VAL A 291 -21.522 -61.143 45.029 1.00 59.32 C +ATOM 4598 CG1 VAL A 291 -20.898 -61.188 46.417 1.00 59.75 C +ATOM 4599 CG2 VAL A 291 -21.544 -62.534 44.422 1.00 60.89 C +ATOM 4600 H VAL A 291 -22.726 -59.885 43.052 1.00 20.00 H +ATOM 4601 HA VAL A 291 -23.622 -61.309 45.493 1.00 20.00 H +ATOM 4602 HB VAL A 291 -20.900 -60.497 44.392 1.00 20.00 H +ATOM 4603 HG11 VAL A 291 -19.885 -61.612 46.351 1.00 20.00 H +ATOM 4604 HG12 VAL A 291 -20.843 -60.169 46.827 1.00 20.00 H +ATOM 4605 HG13 VAL A 291 -21.515 -61.816 47.076 1.00 20.00 H +ATOM 4606 HG21 VAL A 291 -20.524 -62.944 44.407 1.00 20.00 H +ATOM 4607 HG22 VAL A 291 -22.193 -63.187 45.025 1.00 20.00 H +ATOM 4608 HG23 VAL A 291 -21.932 -62.479 43.394 1.00 20.00 H +ATOM 4609 N THR A 292 -23.265 -59.472 47.194 1.00 64.78 N +ATOM 4610 CA THR A 292 -23.288 -58.349 48.118 1.00 65.69 C +ATOM 4611 C THR A 292 -21.973 -57.582 48.063 1.00 62.58 C +ATOM 4612 O THR A 292 -20.889 -58.174 48.117 1.00 68.64 O +ATOM 4613 CB THR A 292 -23.544 -58.847 49.538 1.00 68.04 C +ATOM 4614 OG1 THR A 292 -24.572 -59.846 49.521 1.00 70.84 O +ATOM 4615 CG2 THR A 292 -23.981 -57.697 50.427 1.00 69.26 C +ATOM 4616 H THR A 292 -23.419 -60.397 47.541 1.00 20.00 H +ATOM 4617 HA THR A 292 -24.102 -57.664 47.839 1.00 20.00 H +ATOM 4618 HB THR A 292 -22.611 -59.272 49.938 1.00 20.00 H +ATOM 4619 HG1 THR A 292 -25.423 -59.425 49.500 1.00 20.00 H +ATOM 4620 HG21 THR A 292 -24.162 -58.069 51.446 1.00 20.00 H +ATOM 4621 HG22 THR A 292 -23.191 -56.932 50.451 1.00 20.00 H +ATOM 4622 HG23 THR A 292 -24.906 -57.256 50.028 1.00 20.00 H +ATOM 4623 N ASN A 293 -22.077 -56.256 47.946 1.00 56.82 N +ATOM 4624 CA ASN A 293 -20.936 -55.339 47.985 1.00 61.72 C +ATOM 4625 C ASN A 293 -19.976 -55.533 46.817 1.00 59.46 C +ATOM 4626 O ASN A 293 -18.795 -55.188 46.920 1.00 60.94 O +ATOM 4627 CB ASN A 293 -20.172 -55.451 49.312 1.00 61.64 C +ATOM 4628 CG ASN A 293 -21.016 -55.056 50.507 1.00 67.86 C +ATOM 4629 OD1 ASN A 293 -22.014 -54.347 50.375 1.00 68.76 O +ATOM 4630 ND2 ASN A 293 -20.610 -55.508 51.686 1.00 69.73 N +ATOM 4631 H ASN A 293 -22.990 -55.865 47.824 1.00 20.00 H +ATOM 4632 HA ASN A 293 -21.324 -54.312 47.921 1.00 20.00 H +ATOM 4633 HB2 ASN A 293 -19.843 -56.493 49.442 1.00 20.00 H +ATOM 4634 HB3 ASN A 293 -19.293 -54.792 49.269 1.00 20.00 H +ATOM 4635 HD21 ASN A 293 -21.121 -55.275 52.514 1.00 20.00 H +ATOM 4636 HD22 ASN A 293 -19.793 -56.082 51.747 1.00 20.00 H +ATOM 4637 N GLN A 294 -20.450 -56.084 45.707 1.00 57.89 N +ATOM 4638 CA GLN A 294 -19.644 -56.211 44.503 1.00 56.09 C +ATOM 4639 C GLN A 294 -20.287 -55.425 43.373 1.00 60.69 C +ATOM 4640 O GLN A 294 -21.512 -55.444 43.210 1.00 67.25 O +ATOM 4641 CB GLN A 294 -19.474 -57.676 44.081 1.00 53.73 C +ATOM 4642 CG GLN A 294 -18.304 -58.391 44.736 1.00 62.10 C +ATOM 4643 CD GLN A 294 -18.052 -59.756 44.122 1.00 65.39 C +ATOM 4644 OE1 GLN A 294 -18.475 -60.030 42.997 1.00 63.75 O +ATOM 4645 NE2 GLN A 294 -17.362 -60.619 44.858 1.00 66.91 N +ATOM 4646 H GLN A 294 -21.391 -56.423 45.698 1.00 20.00 H +ATOM 4647 HA GLN A 294 -18.645 -55.791 44.691 1.00 20.00 H +ATOM 4648 HB2 GLN A 294 -20.396 -58.217 44.341 1.00 20.00 H +ATOM 4649 HB3 GLN A 294 -19.327 -57.704 42.991 1.00 20.00 H +ATOM 4650 HG2 GLN A 294 -17.400 -57.776 44.616 1.00 20.00 H +ATOM 4651 HG3 GLN A 294 -18.521 -58.519 45.807 1.00 20.00 H +ATOM 4652 HE21 GLN A 294 -17.167 -61.534 44.504 1.00 20.00 H +ATOM 4653 HE22 GLN A 294 -17.038 -60.354 45.766 1.00 20.00 H +ATOM 4654 N SER A 295 -19.453 -54.725 42.606 1.00 53.69 N +ATOM 4655 CA SER A 295 -19.868 -54.093 41.366 1.00 50.26 C +ATOM 4656 C SER A 295 -18.875 -54.457 40.274 1.00 49.71 C +ATOM 4657 O SER A 295 -17.758 -54.909 40.541 1.00 60.86 O +ATOM 4658 CB SER A 295 -19.965 -52.563 41.501 1.00 51.38 C +ATOM 4659 OG SER A 295 -18.718 -52.000 41.875 1.00 48.47 O +ATOM 4660 H SER A 295 -18.501 -54.631 42.896 1.00 20.00 H +ATOM 4661 HA SER A 295 -20.858 -54.475 41.077 1.00 20.00 H +ATOM 4662 HB2 SER A 295 -20.276 -52.137 40.536 1.00 20.00 H +ATOM 4663 HB3 SER A 295 -20.714 -52.318 42.268 1.00 20.00 H +ATOM 4664 HG SER A 295 -18.438 -52.372 42.703 1.00 20.00 H +ATOM 4665 N PHE A 296 -19.308 -54.286 39.034 1.00 46.27 N +ATOM 4666 CA PHE A 296 -18.415 -54.327 37.891 1.00 45.27 C +ATOM 4667 C PHE A 296 -18.582 -53.016 37.140 1.00 47.97 C +ATOM 4668 O PHE A 296 -19.447 -52.202 37.465 1.00 53.02 O +ATOM 4669 CB PHE A 296 -18.692 -55.540 36.991 1.00 45.67 C +ATOM 4670 CG PHE A 296 -20.045 -55.522 36.342 1.00 47.70 C +ATOM 4671 CD1 PHE A 296 -21.165 -55.981 37.018 1.00 48.53 C +ATOM 4672 CD2 PHE A 296 -20.193 -55.060 35.047 1.00 51.17 C +ATOM 4673 CE1 PHE A 296 -22.410 -55.969 36.411 1.00 53.07 C +ATOM 4674 CE2 PHE A 296 -21.433 -55.048 34.435 1.00 54.34 C +ATOM 4675 CZ PHE A 296 -22.540 -55.501 35.118 1.00 53.19 C +ATOM 4676 H PHE A 296 -20.283 -54.123 38.880 1.00 20.00 H +ATOM 4677 HA PHE A 296 -17.376 -54.393 38.245 1.00 20.00 H +ATOM 4678 HB2 PHE A 296 -17.929 -55.565 36.199 1.00 20.00 H +ATOM 4679 HB3 PHE A 296 -18.614 -56.450 37.604 1.00 20.00 H +ATOM 4680 HD1 PHE A 296 -21.066 -56.352 38.028 1.00 20.00 H +ATOM 4681 HD2 PHE A 296 -19.329 -54.704 34.506 1.00 20.00 H +ATOM 4682 HE1 PHE A 296 -23.277 -56.325 36.947 1.00 20.00 H +ATOM 4683 HE2 PHE A 296 -21.533 -54.684 33.423 1.00 20.00 H +ATOM 4684 HZ PHE A 296 -23.510 -55.490 34.643 1.00 20.00 H +ATOM 4685 N ARG A 297 -17.735 -52.792 36.144 1.00 48.94 N +ATOM 4686 CA ARG A 297 -17.786 -51.558 35.378 1.00 51.49 C +ATOM 4687 C ARG A 297 -17.650 -51.862 33.897 1.00 50.02 C +ATOM 4688 O ARG A 297 -16.902 -52.754 33.490 1.00 48.89 O +ATOM 4689 CB ARG A 297 -16.697 -50.561 35.815 1.00 54.55 C +ATOM 4690 CG ARG A 297 -15.402 -50.650 35.031 1.00 54.74 C +ATOM 4691 CD ARG A 297 -14.325 -49.773 35.618 1.00 57.18 C +ATOM 4692 NE ARG A 297 -13.000 -50.173 35.158 1.00 56.09 N +ATOM 4693 CZ ARG A 297 -11.893 -50.024 35.878 1.00 54.77 C +ATOM 4694 NH1 ARG A 297 -11.959 -49.488 37.091 1.00 50.70 N +ATOM 4695 NH2 ARG A 297 -10.726 -50.422 35.392 1.00 58.20 N +ATOM 4696 H ARG A 297 -17.050 -53.484 35.916 1.00 20.00 H +ATOM 4697 HA ARG A 297 -18.763 -51.079 35.539 1.00 20.00 H +ATOM 4698 HB2 ARG A 297 -17.098 -49.543 35.699 1.00 20.00 H +ATOM 4699 HB3 ARG A 297 -16.469 -50.746 36.875 1.00 20.00 H +ATOM 4700 HG2 ARG A 297 -15.054 -51.693 35.038 1.00 20.00 H +ATOM 4701 HG3 ARG A 297 -15.592 -50.334 33.995 1.00 20.00 H +ATOM 4702 HD2 ARG A 297 -14.509 -48.731 35.316 1.00 20.00 H +ATOM 4703 HD3 ARG A 297 -14.361 -49.849 36.715 1.00 20.00 H +ATOM 4704 HE ARG A 297 -12.920 -50.583 34.249 1.00 20.00 H +ATOM 4705 HH11 ARG A 297 -11.128 -49.385 37.638 1.00 20.00 H +ATOM 4706 HH12 ARG A 297 -12.840 -49.188 37.458 1.00 20.00 H +ATOM 4707 HH21 ARG A 297 -9.895 -50.319 35.939 1.00 20.00 H +ATOM 4708 HH22 ARG A 297 -10.676 -50.826 34.479 1.00 20.00 H +ATOM 4709 N ILE A 298 -18.405 -51.115 33.102 1.00 50.24 N +ATOM 4710 CA ILE A 298 -18.337 -51.169 31.651 1.00 51.83 C +ATOM 4711 C ILE A 298 -17.792 -49.835 31.167 1.00 52.39 C +ATOM 4712 O ILE A 298 -18.126 -48.778 31.715 1.00 53.04 O +ATOM 4713 CB ILE A 298 -19.713 -51.481 31.033 1.00 49.37 C +ATOM 4714 CG1 ILE A 298 -20.708 -50.368 31.352 1.00 55.36 C +ATOM 4715 CG2 ILE A 298 -20.237 -52.806 31.562 1.00 47.01 C +ATOM 4716 CD1 ILE A 298 -22.098 -50.636 30.839 1.00 53.17 C +ATOM 4717 H ILE A 298 -19.055 -50.482 33.523 1.00 20.00 H +ATOM 4718 HA ILE A 298 -17.637 -51.962 31.348 1.00 20.00 H +ATOM 4719 HB ILE A 298 -19.600 -51.553 29.941 1.00 20.00 H +ATOM 4720 HG12 ILE A 298 -20.758 -50.249 32.444 1.00 20.00 H +ATOM 4721 HG13 ILE A 298 -20.344 -49.435 30.897 1.00 20.00 H +ATOM 4722 HG21 ILE A 298 -21.219 -53.018 31.114 1.00 20.00 H +ATOM 4723 HG22 ILE A 298 -19.533 -53.610 31.299 1.00 20.00 H +ATOM 4724 HG23 ILE A 298 -20.338 -52.750 32.656 1.00 20.00 H +ATOM 4725 HD11 ILE A 298 -22.756 -49.796 31.105 1.00 20.00 H +ATOM 4726 HD12 ILE A 298 -22.070 -50.748 29.745 1.00 20.00 H +ATOM 4727 HD13 ILE A 298 -22.484 -51.561 31.292 1.00 20.00 H +ATOM 4728 N THR A 299 -16.940 -49.885 30.150 1.00 52.39 N +ATOM 4729 CA THR A 299 -16.202 -48.715 29.699 1.00 53.45 C +ATOM 4730 C THR A 299 -16.342 -48.592 28.193 1.00 52.56 C +ATOM 4731 O THR A 299 -16.020 -49.532 27.461 1.00 49.21 O +ATOM 4732 CB THR A 299 -14.726 -48.817 30.097 1.00 53.65 C +ATOM 4733 OG1 THR A 299 -14.616 -48.787 31.525 1.00 51.14 O +ATOM 4734 CG2 THR A 299 -13.929 -47.675 29.501 1.00 54.47 C +ATOM 4735 H THR A 299 -16.801 -50.756 29.678 1.00 20.00 H +ATOM 4736 HA THR A 299 -16.626 -47.813 30.165 1.00 20.00 H +ATOM 4737 HB THR A 299 -14.325 -49.766 29.712 1.00 20.00 H +ATOM 4738 HG1 THR A 299 -14.800 -47.909 31.839 1.00 20.00 H +ATOM 4739 HG21 THR A 299 -12.874 -47.768 29.799 1.00 20.00 H +ATOM 4740 HG22 THR A 299 -14.004 -47.709 28.404 1.00 20.00 H +ATOM 4741 HG23 THR A 299 -14.330 -46.718 29.867 1.00 20.00 H +ATOM 4742 N ILE A 300 -16.824 -47.443 27.734 1.00 53.94 N +ATOM 4743 CA ILE A 300 -16.959 -47.179 26.311 1.00 55.54 C +ATOM 4744 C ILE A 300 -15.936 -46.131 25.901 1.00 56.27 C +ATOM 4745 O ILE A 300 -15.350 -45.425 26.727 1.00 55.31 O +ATOM 4746 CB ILE A 300 -18.379 -46.725 25.925 1.00 57.32 C +ATOM 4747 CG1 ILE A 300 -18.714 -45.410 26.626 1.00 57.79 C +ATOM 4748 CG2 ILE A 300 -19.394 -47.803 26.262 1.00 55.73 C +ATOM 4749 CD1 ILE A 300 -19.881 -44.681 26.008 1.00 53.87 C +ATOM 4750 H ILE A 300 -17.102 -46.738 28.387 1.00 20.00 H +ATOM 4751 HA ILE A 300 -16.740 -48.103 25.756 1.00 20.00 H +ATOM 4752 HB ILE A 300 -18.401 -46.554 24.839 1.00 20.00 H +ATOM 4753 HG12 ILE A 300 -18.956 -45.627 27.677 1.00 20.00 H +ATOM 4754 HG13 ILE A 300 -17.831 -44.756 26.580 1.00 20.00 H +ATOM 4755 HG21 ILE A 300 -20.400 -47.461 25.979 1.00 20.00 H +ATOM 4756 HG22 ILE A 300 -19.150 -48.722 25.708 1.00 20.00 H +ATOM 4757 HG23 ILE A 300 -19.366 -48.008 27.342 1.00 20.00 H +ATOM 4758 HD11 ILE A 300 -20.065 -43.748 26.560 1.00 20.00 H +ATOM 4759 HD12 ILE A 300 -19.652 -44.446 24.958 1.00 20.00 H +ATOM 4760 HD13 ILE A 300 -20.777 -45.317 26.055 1.00 20.00 H +ATOM 4761 N LEU A 301 -15.738 -46.029 24.599 1.00 54.78 N +ATOM 4762 CA LEU A 301 -14.741 -45.186 23.970 1.00 54.36 C +ATOM 4763 C LEU A 301 -15.391 -44.043 23.209 1.00 54.55 C +ATOM 4764 O LEU A 301 -16.620 -44.029 22.997 1.00 51.49 O +ATOM 4765 CB LEU A 301 -13.880 -46.024 23.015 1.00 54.22 C +ATOM 4766 CG LEU A 301 -13.343 -47.364 23.522 1.00 52.56 C +ATOM 4767 CD1 LEU A 301 -12.500 -48.019 22.443 1.00 50.61 C +ATOM 4768 CD2 LEU A 301 -12.539 -47.191 24.800 1.00 49.12 C +ATOM 4769 H LEU A 301 -16.322 -46.577 24.000 1.00 20.00 H +ATOM 4770 HA LEU A 301 -14.084 -44.760 24.742 1.00 20.00 H +ATOM 4771 HB2 LEU A 301 -14.489 -46.232 22.123 1.00 20.00 H +ATOM 4772 HB3 LEU A 301 -13.012 -45.410 22.732 1.00 20.00 H +ATOM 4773 HG LEU A 301 -14.200 -48.019 23.738 1.00 20.00 H +ATOM 4774 HD11 LEU A 301 -12.116 -48.982 22.811 1.00 20.00 H +ATOM 4775 HD12 LEU A 301 -13.117 -48.188 21.548 1.00 20.00 H +ATOM 4776 HD13 LEU A 301 -11.656 -47.361 22.187 1.00 20.00 H +ATOM 4777 HD21 LEU A 301 -12.169 -48.171 25.136 1.00 20.00 H +ATOM 4778 HD22 LEU A 301 -11.686 -46.523 24.609 1.00 20.00 H +ATOM 4779 HD23 LEU A 301 -13.180 -46.754 25.580 1.00 20.00 H +ATOM 4780 N PRO A 302 -14.621 -43.040 22.779 1.00 55.58 N +ATOM 4781 CA PRO A 302 -15.173 -42.024 21.875 1.00 54.96 C +ATOM 4782 C PRO A 302 -15.669 -42.594 20.562 1.00 55.94 C +ATOM 4783 O PRO A 302 -16.489 -41.950 19.898 1.00 57.71 O +ATOM 4784 CB PRO A 302 -14.001 -41.055 21.659 1.00 55.16 C +ATOM 4785 CG PRO A 302 -12.784 -41.802 22.103 1.00 52.02 C +ATOM 4786 CD PRO A 302 -13.246 -42.701 23.199 1.00 53.78 C +ATOM 4787 HA PRO A 302 -15.995 -41.487 22.372 1.00 20.00 H +ATOM 4788 HB2 PRO A 302 -13.919 -40.781 20.597 1.00 20.00 H +ATOM 4789 HB3 PRO A 302 -14.137 -40.146 22.263 1.00 20.00 H +ATOM 4790 HG2 PRO A 302 -12.370 -42.391 21.271 1.00 20.00 H +ATOM 4791 HG3 PRO A 302 -12.019 -41.104 22.475 1.00 20.00 H +ATOM 4792 HD2 PRO A 302 -13.244 -42.180 24.168 1.00 20.00 H +ATOM 4793 HD3 PRO A 302 -12.618 -43.601 23.266 1.00 20.00 H +ATOM 4794 N GLN A 303 -15.198 -43.775 20.157 1.00 53.72 N +ATOM 4795 CA GLN A 303 -15.765 -44.421 18.981 1.00 52.19 C +ATOM 4796 C GLN A 303 -17.232 -44.776 19.181 1.00 51.15 C +ATOM 4797 O GLN A 303 -17.951 -44.976 18.196 1.00 48.87 O +ATOM 4798 CB GLN A 303 -14.962 -45.671 18.623 1.00 52.23 C +ATOM 4799 CG GLN A 303 -13.648 -45.379 17.925 1.00 54.38 C +ATOM 4800 CD GLN A 303 -12.472 -45.266 18.881 1.00 50.42 C +ATOM 4801 OE1 GLN A 303 -12.641 -45.023 20.075 1.00 52.29 O +ATOM 4802 NE2 GLN A 303 -11.270 -45.458 18.354 1.00 45.16 N +ATOM 4803 H GLN A 303 -14.456 -44.217 20.661 1.00 20.00 H +ATOM 4804 HA GLN A 303 -15.700 -43.725 18.131 1.00 20.00 H +ATOM 4805 HB2 GLN A 303 -14.746 -46.221 19.551 1.00 20.00 H +ATOM 4806 HB3 GLN A 303 -15.575 -46.298 17.959 1.00 20.00 H +ATOM 4807 HG2 GLN A 303 -13.443 -46.192 17.213 1.00 20.00 H +ATOM 4808 HG3 GLN A 303 -13.746 -44.429 17.379 1.00 20.00 H +ATOM 4809 HE21 GLN A 303 -10.456 -45.408 18.933 1.00 20.00 H +ATOM 4810 HE22 GLN A 303 -11.177 -45.653 17.378 1.00 20.00 H +ATOM 4811 N GLN A 304 -17.689 -44.854 20.431 1.00 50.35 N +ATOM 4812 CA GLN A 304 -19.089 -45.109 20.736 1.00 50.06 C +ATOM 4813 C GLN A 304 -19.902 -43.824 20.844 1.00 55.92 C +ATOM 4814 O GLN A 304 -21.020 -43.753 20.325 1.00 55.14 O +ATOM 4815 CB GLN A 304 -19.214 -45.913 22.035 1.00 50.62 C +ATOM 4816 CG GLN A 304 -19.086 -47.416 21.855 1.00 50.27 C +ATOM 4817 CD GLN A 304 -17.661 -47.855 21.591 1.00 51.32 C +ATOM 4818 OE1 GLN A 304 -16.768 -47.633 22.410 1.00 49.51 O +ATOM 4819 NE2 GLN A 304 -17.440 -48.482 20.443 1.00 48.73 N +ATOM 4820 H GLN A 304 -17.046 -44.733 21.187 1.00 20.00 H +ATOM 4821 HA GLN A 304 -19.522 -45.714 19.925 1.00 20.00 H +ATOM 4822 HB2 GLN A 304 -18.424 -45.580 22.724 1.00 20.00 H +ATOM 4823 HB3 GLN A 304 -20.199 -45.702 22.478 1.00 20.00 H +ATOM 4824 HG2 GLN A 304 -19.443 -47.911 22.770 1.00 20.00 H +ATOM 4825 HG3 GLN A 304 -19.712 -47.723 21.004 1.00 20.00 H +ATOM 4826 HE21 GLN A 304 -16.518 -48.795 20.214 1.00 20.00 H +ATOM 4827 HE22 GLN A 304 -18.195 -48.641 19.807 1.00 20.00 H +ATOM 4828 N TYR A 305 -19.373 -42.801 21.513 1.00 52.83 N +ATOM 4829 CA TYR A 305 -20.181 -41.611 21.750 1.00 54.05 C +ATOM 4830 C TYR A 305 -19.926 -40.487 20.753 1.00 55.00 C +ATOM 4831 O TYR A 305 -20.612 -39.462 20.818 1.00 56.65 O +ATOM 4832 CB TYR A 305 -20.008 -41.105 23.196 1.00 55.36 C +ATOM 4833 CG TYR A 305 -18.637 -40.618 23.633 1.00 56.09 C +ATOM 4834 CD1 TYR A 305 -18.187 -39.347 23.301 1.00 55.52 C +ATOM 4835 CD2 TYR A 305 -17.831 -41.399 24.453 1.00 55.79 C +ATOM 4836 CE1 TYR A 305 -16.948 -38.888 23.732 1.00 61.67 C +ATOM 4837 CE2 TYR A 305 -16.595 -40.948 24.889 1.00 58.00 C +ATOM 4838 CZ TYR A 305 -16.159 -39.693 24.525 1.00 60.23 C +ATOM 4839 OH TYR A 305 -14.932 -39.246 24.958 1.00 61.81 O +ATOM 4840 H TYR A 305 -18.432 -42.849 21.849 1.00 20.00 H +ATOM 4841 HA TYR A 305 -21.237 -41.899 21.642 1.00 20.00 H +ATOM 4842 HB2 TYR A 305 -20.709 -40.269 23.334 1.00 20.00 H +ATOM 4843 HB3 TYR A 305 -20.288 -41.932 23.865 1.00 20.00 H +ATOM 4844 HD1 TYR A 305 -18.810 -38.704 22.698 1.00 20.00 H +ATOM 4845 HD2 TYR A 305 -18.175 -42.377 24.757 1.00 20.00 H +ATOM 4846 HE1 TYR A 305 -16.605 -37.904 23.447 1.00 20.00 H +ATOM 4847 HE2 TYR A 305 -15.976 -41.578 25.511 1.00 20.00 H +ATOM 4848 HH TYR A 305 -14.497 -39.936 25.445 1.00 20.00 H +ATOM 4849 N LEU A 306 -18.976 -40.650 19.838 1.00 54.44 N +ATOM 4850 CA LEU A 306 -18.840 -39.769 18.683 1.00 58.90 C +ATOM 4851 C LEU A 306 -19.411 -40.523 17.489 1.00 60.82 C +ATOM 4852 O LEU A 306 -18.811 -41.493 17.016 1.00 56.78 O +ATOM 4853 CB LEU A 306 -17.385 -39.366 18.446 1.00 54.70 C +ATOM 4854 CG LEU A 306 -16.692 -38.558 19.544 1.00 56.92 C +ATOM 4855 CD1 LEU A 306 -15.243 -38.316 19.158 1.00 60.47 C +ATOM 4856 CD2 LEU A 306 -17.415 -37.242 19.792 1.00 53.91 C +ATOM 4857 H LEU A 306 -18.330 -41.405 19.945 1.00 20.00 H +ATOM 4858 HA LEU A 306 -19.436 -38.858 18.843 1.00 20.00 H +ATOM 4859 HB2 LEU A 306 -16.806 -40.290 18.301 1.00 20.00 H +ATOM 4860 HB3 LEU A 306 -17.355 -38.765 17.525 1.00 20.00 H +ATOM 4861 HG LEU A 306 -16.712 -39.147 20.473 1.00 20.00 H +ATOM 4862 HD11 LEU A 306 -14.745 -37.735 19.948 1.00 20.00 H +ATOM 4863 HD12 LEU A 306 -14.730 -39.281 19.035 1.00 20.00 H +ATOM 4864 HD13 LEU A 306 -15.204 -37.757 18.212 1.00 20.00 H +ATOM 4865 HD21 LEU A 306 -16.897 -36.682 20.584 1.00 20.00 H +ATOM 4866 HD22 LEU A 306 -17.421 -36.647 18.867 1.00 20.00 H +ATOM 4867 HD23 LEU A 306 -18.450 -37.445 20.104 1.00 20.00 H +ATOM 4868 N ARG A 307 -20.578 -40.093 17.015 1.00 62.62 N +ATOM 4869 CA ARG A 307 -21.230 -40.960 16.043 1.00 59.89 C +ATOM 4870 C ARG A 307 -21.058 -40.419 14.637 1.00 60.35 C +ATOM 4871 O ARG A 307 -21.301 -39.228 14.398 1.00 66.40 O +ATOM 4872 CB ARG A 307 -22.709 -41.123 16.377 1.00 60.43 C +ATOM 4873 CG ARG A 307 -22.912 -41.622 17.792 1.00 64.07 C +ATOM 4874 CD ARG A 307 -24.327 -42.080 18.043 1.00 74.57 C +ATOM 4875 NE ARG A 307 -24.696 -43.259 17.268 1.00 76.43 N +ATOM 4876 CZ ARG A 307 -24.293 -44.496 17.544 1.00 72.62 C +ATOM 4877 NH1 ARG A 307 -24.696 -45.503 16.783 1.00 66.58 N +ATOM 4878 NH2 ARG A 307 -23.479 -44.729 18.567 1.00 73.62 N +ATOM 4879 H ARG A 307 -20.983 -39.227 17.309 1.00 20.00 H +ATOM 4880 HA ARG A 307 -20.762 -41.954 16.085 1.00 20.00 H +ATOM 4881 HB2 ARG A 307 -23.209 -40.149 16.267 1.00 20.00 H +ATOM 4882 HB3 ARG A 307 -23.155 -41.845 15.677 1.00 20.00 H +ATOM 4883 HG2 ARG A 307 -22.230 -42.467 17.970 1.00 20.00 H +ATOM 4884 HG3 ARG A 307 -22.675 -40.807 18.491 1.00 20.00 H +ATOM 4885 HD2 ARG A 307 -24.433 -42.317 19.112 1.00 20.00 H +ATOM 4886 HD3 ARG A 307 -25.012 -41.260 17.779 1.00 20.00 H +ATOM 4887 HE ARG A 307 -25.292 -43.129 16.476 1.00 20.00 H +ATOM 4888 HH11 ARG A 307 -24.387 -46.433 16.980 1.00 20.00 H +ATOM 4889 HH12 ARG A 307 -25.309 -45.333 16.011 1.00 20.00 H +ATOM 4890 HH21 ARG A 307 -23.173 -45.661 18.760 1.00 20.00 H +ATOM 4891 HH22 ARG A 307 -23.172 -43.972 19.144 1.00 20.00 H +ATOM 4892 N PRO A 308 -20.646 -41.273 13.701 1.00 57.83 N +ATOM 4893 CA PRO A 308 -20.279 -40.794 12.363 1.00 60.59 C +ATOM 4894 C PRO A 308 -21.489 -40.353 11.558 1.00 59.51 C +ATOM 4895 O PRO A 308 -22.557 -40.966 11.613 1.00 57.34 O +ATOM 4896 CB PRO A 308 -19.603 -42.012 11.724 1.00 59.76 C +ATOM 4897 CG PRO A 308 -20.184 -43.178 12.446 1.00 60.87 C +ATOM 4898 CD PRO A 308 -20.435 -42.722 13.851 1.00 58.41 C +ATOM 4899 HA PRO A 308 -19.558 -39.967 12.434 1.00 20.00 H +ATOM 4900 HB2 PRO A 308 -19.832 -42.066 10.649 1.00 20.00 H +ATOM 4901 HB3 PRO A 308 -18.513 -41.971 11.865 1.00 20.00 H +ATOM 4902 HG2 PRO A 308 -21.127 -43.488 11.972 1.00 20.00 H +ATOM 4903 HG3 PRO A 308 -19.477 -44.020 12.440 1.00 20.00 H +ATOM 4904 HD2 PRO A 308 -21.327 -43.209 14.271 1.00 20.00 H +ATOM 4905 HD3 PRO A 308 -19.567 -42.930 14.494 1.00 20.00 H +ATOM 4906 N VAL A 309 -21.253 -39.194 10.862 1.00 66.42 N +ATOM 4907 CA VAL A 309 -22.249 -38.582 10.044 1.00 70.20 C +ATOM 4908 C VAL A 309 -22.006 -38.575 8.560 1.00 71.88 C +ATOM 4909 O VAL A 309 -20.966 -38.153 8.049 1.00 71.60 O +ATOM 4910 CB VAL A 309 -23.413 -37.893 10.661 1.00 69.50 C +ATOM 4911 CG1 VAL A 309 -24.171 -36.862 9.897 1.00 68.49 C +ATOM 4912 CG2 VAL A 309 -23.841 -38.164 12.077 1.00 67.59 C +ATOM 4913 H VAL A 309 -20.353 -38.765 10.930 1.00 20.00 H +ATOM 4914 HA VAL A 309 -22.811 -39.525 9.974 1.00 20.00 H +ATOM 4915 HB VAL A 309 -24.088 -38.679 10.293 1.00 20.00 H +ATOM 4916 HG11 VAL A 309 -24.989 -36.472 10.520 1.00 20.00 H +ATOM 4917 HG12 VAL A 309 -23.495 -36.039 9.622 1.00 20.00 H +ATOM 4918 HG13 VAL A 309 -24.588 -37.315 8.985 1.00 20.00 H +ATOM 4919 HG21 VAL A 309 -24.719 -37.546 12.319 1.00 20.00 H +ATOM 4920 HG22 VAL A 309 -24.101 -39.227 12.184 1.00 20.00 H +ATOM 4921 HG23 VAL A 309 -23.018 -37.916 12.763 1.00 20.00 H +ATOM 4922 N GLU A 310 -23.062 -39.100 7.843 0.00 99.99 N +ATOM 4923 CA GLU A 310 -22.932 -39.196 6.428 0.00 99.99 C +ATOM 4924 C GLU A 310 -23.132 -37.980 5.577 0.00 99.99 C +ATOM 4925 O GLU A 310 -24.128 -37.256 5.652 0.00 99.99 O +ATOM 4926 CB GLU A 310 -22.627 -40.527 5.795 0.00 99.99 C +ATOM 4927 CG GLU A 310 -21.160 -40.916 5.922 0.00 99.99 C +ATOM 4928 CD GLU A 310 -20.819 -41.467 7.288 0.00 99.99 C +ATOM 4929 OE1 GLU A 310 -21.747 -42.016 7.961 0.00 99.99 O +ATOM 4930 OE2 GLU A 310 -19.608 -41.331 7.646 0.00 99.99 O +ATOM 4931 H GLU A 310 -23.895 -39.404 8.304 0.00 20.00 H +ATOM 4932 HA GLU A 310 -21.857 -38.976 6.503 0.00 20.00 H +ATOM 4933 HB2 GLU A 310 -23.239 -41.299 6.285 0.00 20.00 H +ATOM 4934 HB3 GLU A 310 -22.886 -40.477 4.727 0.00 20.00 H +ATOM 4935 HG2 GLU A 310 -20.932 -41.682 5.167 0.00 20.00 H +ATOM 4936 HG3 GLU A 310 -20.542 -40.024 5.738 0.00 20.00 H +ATOM 4937 N ASP A 311 -22.044 -37.737 4.770 0.00 99.99 N +ATOM 4938 CA ASP A 311 -21.888 -36.527 4.018 0.00 99.99 C +ATOM 4939 C ASP A 311 -21.344 -36.656 2.615 0.00 99.99 C +ATOM 4940 O ASP A 311 -20.162 -36.960 2.404 0.00 99.99 O +ATOM 4941 CB ASP A 311 -22.077 -35.234 4.740 0.00 99.99 C +ATOM 4942 CG ASP A 311 -22.097 -33.981 3.927 0.00 99.99 C +ATOM 4943 OD1 ASP A 311 -22.781 -33.966 2.866 0.00 99.99 O +ATOM 4944 OD2 ASP A 311 -21.449 -32.994 4.416 0.00 99.99 O +ATOM 4945 H ASP A 311 -21.331 -38.435 4.705 0.00 20.00 H +ATOM 4946 HA ASP A 311 -22.932 -36.545 3.670 0.00 20.00 H +ATOM 4947 HB2 ASP A 311 -23.036 -35.293 5.276 0.00 20.00 H +ATOM 4948 HB3 ASP A 311 -21.257 -35.141 5.467 0.00 20.00 H +ATOM 4949 N VAL A 312 -22.275 -36.459 1.616 0.00 99.99 N +ATOM 4950 CA VAL A 312 -21.854 -36.466 0.244 0.00 99.99 C +ATOM 4951 C VAL A 312 -20.913 -35.414 -0.284 0.00 99.99 C +ATOM 4952 O VAL A 312 -19.948 -35.660 -1.018 0.00 99.99 O +ATOM 4953 CB VAL A 312 -22.399 -37.500 -0.673 0.00 99.99 C +ATOM 4954 CG1 VAL A 312 -23.800 -37.385 -1.179 0.00 99.99 C +ATOM 4955 CG2 VAL A 312 -21.543 -38.642 -1.119 0.00 99.99 C +ATOM 4956 H VAL A 312 -23.237 -36.313 1.847 0.00 20.00 H +ATOM 4957 HA VAL A 312 -21.004 -37.118 0.495 0.00 20.00 H +ATOM 4958 HB VAL A 312 -22.750 -38.089 0.187 0.00 20.00 H +ATOM 4959 HG11 VAL A 312 -24.023 -38.236 -1.840 0.00 20.00 H +ATOM 4960 HG12 VAL A 312 -24.498 -37.389 -0.329 0.00 20.00 H +ATOM 4961 HG13 VAL A 312 -23.911 -36.446 -1.741 0.00 20.00 H +ATOM 4962 HG21 VAL A 312 -22.121 -39.295 -1.789 0.00 20.00 H +ATOM 4963 HG22 VAL A 312 -20.663 -38.255 -1.654 0.00 20.00 H +ATOM 4964 HG23 VAL A 312 -21.213 -39.218 -0.241 0.00 20.00 H +ATOM 4965 N ALA A 313 -21.233 -34.145 0.139 0.00 99.99 N +ATOM 4966 CA ALA A 313 -20.252 -33.110 0.058 0.00 99.99 C +ATOM 4967 C ALA A 313 -19.091 -33.046 1.024 0.00 99.99 C +ATOM 4968 O ALA A 313 -18.207 -32.185 1.005 0.00 99.99 O +ATOM 4969 CB ALA A 313 -20.438 -32.027 -0.969 0.00 99.99 C +ATOM 4970 H ALA A 313 -22.145 -33.948 0.500 0.00 20.00 H +ATOM 4971 HA ALA A 313 -19.655 -33.704 -0.649 0.00 20.00 H +ATOM 4972 HB1 ALA A 313 -19.604 -31.312 -0.904 0.00 20.00 H +ATOM 4973 HB2 ALA A 313 -20.459 -32.474 -1.973 0.00 20.00 H +ATOM 4974 HB3 ALA A 313 -21.386 -31.502 -0.781 0.00 20.00 H +ATOM 4975 N THR A 314 -19.136 -34.072 1.944 0.00 99.99 N +ATOM 4976 CA THR A 314 -18.129 -34.288 2.926 0.00 99.99 C +ATOM 4977 C THR A 314 -17.043 -35.313 2.770 0.00 99.99 C +ATOM 4978 O THR A 314 -16.398 -35.757 3.729 0.00 99.99 O +ATOM 4979 CB THR A 314 -18.241 -33.601 4.236 0.00 99.99 C +ATOM 4980 OG1 THR A 314 -18.673 -34.333 5.352 0.00 99.99 O +ATOM 4981 CG2 THR A 314 -17.941 -32.144 4.416 0.00 99.99 C +ATOM 4982 H THR A 314 -19.916 -34.697 1.919 0.00 20.00 H +ATOM 4983 HA THR A 314 -17.493 -33.490 2.514 0.00 20.00 H +ATOM 4984 HB THR A 314 -17.195 -33.852 4.466 0.00 20.00 H +ATOM 4985 HG1 THR A 314 -19.493 -33.972 5.670 0.00 20.00 H +ATOM 4986 HG21 THR A 314 -18.094 -31.865 5.469 0.00 20.00 H +ATOM 4987 HG22 THR A 314 -16.897 -31.947 4.132 0.00 20.00 H +ATOM 4988 HG23 THR A 314 -18.612 -31.550 3.779 0.00 20.00 H +ATOM 4989 N SER A 315 -16.782 -35.679 1.469 1.00 98.19 N +ATOM 4990 CA SER A 315 -16.033 -36.876 1.222 1.00 93.06 C +ATOM 4991 C SER A 315 -14.640 -37.154 1.720 1.00 91.42 C +ATOM 4992 O SER A 315 -14.229 -38.296 1.985 1.00 92.16 O +ATOM 4993 CB SER A 315 -16.569 -37.882 0.248 1.00 92.45 C +ATOM 4994 OG SER A 315 -17.957 -38.141 0.490 0.00 92.60 O +ATOM 4995 H SER A 315 -17.110 -35.119 0.708 1.00 20.00 H +ATOM 4996 HA SER A 315 -16.490 -37.394 2.077 1.00 20.00 H +ATOM 4997 HB2 SER A 315 -16.449 -37.492 -0.774 1.00 20.00 H +ATOM 4998 HB3 SER A 315 -16.004 -38.820 0.351 1.00 20.00 H +ATOM 4999 HG SER A 315 -18.276 -37.554 1.166 0.00 20.00 H +ATOM 5000 N GLN A 316 -13.836 -36.034 1.773 1.00 89.06 N +ATOM 5001 CA GLN A 316 -12.474 -36.158 2.276 1.00 89.60 C +ATOM 5002 C GLN A 316 -12.370 -35.936 3.781 1.00 88.92 C +ATOM 5003 O GLN A 316 -11.256 -35.954 4.316 1.00 88.14 O +ATOM 5004 CB GLN A 316 -11.549 -35.179 1.540 1.00 90.37 C +ATOM 5005 CG GLN A 316 -11.384 -35.474 0.053 0.00 88.44 C +ATOM 5006 CD GLN A 316 -10.315 -34.612 -0.599 0.00 90.32 C +ATOM 5007 OE1 GLN A 316 -10.013 -33.515 -0.129 0.00 91.82 O +ATOM 5008 NE2 GLN A 316 -9.732 -35.112 -1.683 0.00 90.39 N +ATOM 5009 H GLN A 316 -14.184 -35.147 1.469 1.00 20.00 H +ATOM 5010 HA GLN A 316 -12.115 -37.176 2.064 1.00 20.00 H +ATOM 5011 HB2 GLN A 316 -11.964 -34.166 1.647 1.00 20.00 H +ATOM 5012 HB3 GLN A 316 -10.556 -35.221 2.012 1.00 20.00 H +ATOM 5013 HG2 GLN A 316 -11.106 -36.531 -0.068 0.00 20.00 H +ATOM 5014 HG3 GLN A 316 -12.343 -35.287 -0.452 0.00 20.00 H +ATOM 5015 HE21 GLN A 316 -9.017 -34.592 -2.151 0.00 20.00 H +ATOM 5016 HE22 GLN A 316 -10.008 -36.008 -2.031 0.00 20.00 H +ATOM 5017 N ASP A 317 -13.490 -35.737 4.472 1.00 83.89 N +ATOM 5018 CA ASP A 317 -13.507 -35.497 5.909 1.00 82.40 C +ATOM 5019 C ASP A 317 -14.390 -36.520 6.611 1.00 80.15 C +ATOM 5020 O ASP A 317 -15.423 -36.936 6.075 1.00 79.85 O +ATOM 5021 CB ASP A 317 -14.015 -34.086 6.235 1.00 82.17 C +ATOM 5022 CG ASP A 317 -12.974 -33.016 5.989 1.00 85.06 C +ATOM 5023 OD1 ASP A 317 -11.818 -33.362 5.665 1.00 85.32 O +ATOM 5024 OD2 ASP A 317 -13.318 -31.822 6.126 1.00 88.32 O +ATOM 5025 H ASP A 317 -14.361 -35.753 3.981 1.00 20.00 H +ATOM 5026 HA ASP A 317 -12.485 -35.593 6.304 1.00 20.00 H +ATOM 5027 HB2 ASP A 317 -14.892 -33.874 5.606 1.00 20.00 H +ATOM 5028 HB3 ASP A 317 -14.308 -34.054 7.295 1.00 20.00 H +ATOM 5029 N ASP A 318 -13.974 -36.927 7.810 1.00 78.66 N +ATOM 5030 CA ASP A 318 -14.811 -37.702 8.718 1.00 72.54 C +ATOM 5031 C ASP A 318 -15.424 -36.738 9.728 1.00 69.54 C +ATOM 5032 O ASP A 318 -14.700 -35.974 10.375 1.00 71.20 O +ATOM 5033 CB ASP A 318 -14.007 -38.788 9.438 1.00 72.59 C +ATOM 5034 CG ASP A 318 -13.371 -39.785 8.487 1.00 72.18 C +ATOM 5035 OD1 ASP A 318 -13.873 -39.948 7.354 1.00 73.77 O +ATOM 5036 OD2 ASP A 318 -12.369 -40.416 8.885 1.00 71.82 O +ATOM 5037 H ASP A 318 -13.047 -36.690 8.100 1.00 20.00 H +ATOM 5038 HA ASP A 318 -15.622 -38.183 8.152 1.00 20.00 H +ATOM 5039 HB2 ASP A 318 -13.211 -38.305 10.023 1.00 20.00 H +ATOM 5040 HB3 ASP A 318 -14.681 -39.332 10.116 1.00 20.00 H +ATOM 5041 N CYS A 319 -16.748 -36.764 9.857 1.00 67.56 N +ATOM 5042 CA CYS A 319 -17.465 -35.865 10.752 1.00 68.00 C +ATOM 5043 C CYS A 319 -18.319 -36.667 11.724 1.00 61.49 C +ATOM 5044 O CYS A 319 -18.741 -37.786 11.422 1.00 58.68 O +ATOM 5045 CB CYS A 319 -18.347 -34.883 9.972 1.00 77.68 C +ATOM 5046 SG CYS A 319 -17.466 -33.841 8.779 1.00 83.99 S +ATOM 5047 H CYS A 319 -17.271 -37.425 9.319 1.00 20.00 H +ATOM 5048 HA CYS A 319 -16.737 -35.282 11.335 1.00 20.00 H +ATOM 5049 HB2 CYS A 319 -19.103 -35.465 9.424 1.00 20.00 H +ATOM 5050 HB3 CYS A 319 -18.847 -34.224 10.697 1.00 20.00 H +ATOM 5051 N TYR A 320 -18.578 -36.084 12.896 1.00 63.65 N +ATOM 5052 CA TYR A 320 -19.195 -36.815 13.995 1.00 65.50 C +ATOM 5053 C TYR A 320 -20.105 -35.911 14.814 1.00 64.55 C +ATOM 5054 O TYR A 320 -19.908 -34.695 14.879 1.00 70.33 O +ATOM 5055 CB TYR A 320 -18.139 -37.421 14.934 1.00 64.33 C +ATOM 5056 CG TYR A 320 -17.092 -38.265 14.247 1.00 62.44 C +ATOM 5057 CD1 TYR A 320 -15.951 -37.689 13.707 1.00 62.05 C +ATOM 5058 CD2 TYR A 320 -17.239 -39.640 14.151 1.00 58.51 C +ATOM 5059 CE1 TYR A 320 -14.992 -38.457 13.080 1.00 61.50 C +ATOM 5060 CE2 TYR A 320 -16.284 -40.417 13.528 1.00 56.60 C +ATOM 5061 CZ TYR A 320 -15.163 -39.822 12.995 1.00 62.58 C +ATOM 5062 OH TYR A 320 -14.210 -40.596 12.375 1.00 67.60 O +ATOM 5063 H TYR A 320 -18.343 -35.120 13.023 1.00 20.00 H +ATOM 5064 HA TYR A 320 -19.801 -37.637 13.586 1.00 20.00 H +ATOM 5065 HB2 TYR A 320 -17.628 -36.596 15.452 1.00 20.00 H +ATOM 5066 HB3 TYR A 320 -18.658 -38.052 15.671 1.00 20.00 H +ATOM 5067 HD1 TYR A 320 -15.811 -36.620 13.779 1.00 20.00 H +ATOM 5068 HD2 TYR A 320 -18.116 -40.111 14.571 1.00 20.00 H +ATOM 5069 HE1 TYR A 320 -14.113 -37.992 12.658 1.00 20.00 H +ATOM 5070 HE2 TYR A 320 -16.415 -41.487 13.459 1.00 20.00 H +ATOM 5071 HH TYR A 320 -13.385 -40.126 12.353 1.00 20.00 H +ATOM 5072 N LYS A 321 -21.088 -36.533 15.464 1.00 64.98 N +ATOM 5073 CA LYS A 321 -21.992 -35.866 16.390 1.00 66.86 C +ATOM 5074 C LYS A 321 -21.781 -36.409 17.798 1.00 65.03 C +ATOM 5075 O LYS A 321 -21.630 -37.620 17.992 1.00 64.80 O +ATOM 5076 CB LYS A 321 -23.457 -36.057 15.973 1.00 68.91 C +ATOM 5077 CG LYS A 321 -24.475 -35.712 17.067 1.00 74.51 C +ATOM 5078 CD LYS A 321 -25.915 -35.854 16.577 1.00 79.20 C +ATOM 5079 CE LYS A 321 -26.921 -35.642 17.707 1.00 83.62 C +ATOM 5080 NZ LYS A 321 -28.333 -35.634 17.223 1.00 87.37 N +ATOM 5081 H LYS A 321 -21.212 -37.513 15.307 1.00 20.00 H +ATOM 5082 HA LYS A 321 -21.774 -34.788 16.397 1.00 20.00 H +ATOM 5083 HB2 LYS A 321 -23.654 -35.413 15.103 1.00 20.00 H +ATOM 5084 HB3 LYS A 321 -23.600 -37.110 15.689 1.00 20.00 H +ATOM 5085 HG2 LYS A 321 -24.322 -36.389 17.920 1.00 20.00 H +ATOM 5086 HG3 LYS A 321 -24.311 -34.673 17.389 1.00 20.00 H +ATOM 5087 HD2 LYS A 321 -26.099 -35.107 15.791 1.00 20.00 H +ATOM 5088 HD3 LYS A 321 -26.052 -36.864 16.163 1.00 20.00 H +ATOM 5089 HE2 LYS A 321 -26.804 -36.454 18.440 1.00 20.00 H +ATOM 5090 HE3 LYS A 321 -26.709 -34.677 18.191 1.00 20.00 H +ATOM 5091 HZ1 LYS A 321 -28.885 -35.045 17.813 1.00 20.00 H +ATOM 5092 HZ2 LYS A 321 -28.362 -35.287 16.286 1.00 20.00 H +ATOM 5093 HZ3 LYS A 321 -28.698 -36.565 17.245 1.00 20.00 H +ATOM 5094 N PHE A 322 -21.764 -35.505 18.775 1.00 66.13 N +ATOM 5095 CA PHE A 322 -21.671 -35.890 20.178 1.00 63.56 C +ATOM 5096 C PHE A 322 -23.002 -36.485 20.621 1.00 66.39 C +ATOM 5097 O PHE A 322 -24.050 -35.846 20.481 1.00 64.92 O +ATOM 5098 CB PHE A 322 -21.303 -34.667 21.016 1.00 64.81 C +ATOM 5099 CG PHE A 322 -21.070 -34.959 22.473 1.00 65.93 C +ATOM 5100 CD1 PHE A 322 -19.988 -35.724 22.881 1.00 63.30 C +ATOM 5101 CD2 PHE A 322 -21.910 -34.428 23.440 1.00 66.69 C +ATOM 5102 CE1 PHE A 322 -19.766 -35.978 24.220 1.00 63.23 C +ATOM 5103 CE2 PHE A 322 -21.690 -34.677 24.783 1.00 65.90 C +ATOM 5104 CZ PHE A 322 -20.615 -35.452 25.173 1.00 60.85 C +ATOM 5105 H PHE A 322 -21.816 -34.534 18.540 1.00 20.00 H +ATOM 5106 HA PHE A 322 -20.886 -36.651 20.301 1.00 20.00 H +ATOM 5107 HB2 PHE A 322 -20.383 -34.230 20.601 1.00 20.00 H +ATOM 5108 HB3 PHE A 322 -22.123 -33.937 20.938 1.00 20.00 H +ATOM 5109 HD1 PHE A 322 -19.310 -36.126 22.142 1.00 20.00 H +ATOM 5110 HD2 PHE A 322 -22.746 -33.813 23.141 1.00 20.00 H +ATOM 5111 HE1 PHE A 322 -18.928 -36.589 24.522 1.00 20.00 H +ATOM 5112 HE2 PHE A 322 -22.358 -34.266 25.526 1.00 20.00 H +ATOM 5113 HZ PHE A 322 -20.439 -35.646 26.221 1.00 20.00 H +ATOM 5114 N ALA A 323 -22.971 -37.710 21.146 1.00 60.80 N +ATOM 5115 CA ALA A 323 -24.194 -38.461 21.403 1.00 61.71 C +ATOM 5116 C ALA A 323 -24.388 -38.776 22.880 1.00 62.04 C +ATOM 5117 O ALA A 323 -24.906 -39.836 23.233 1.00 60.51 O +ATOM 5118 CB ALA A 323 -24.223 -39.743 20.577 1.00 58.53 C +ATOM 5119 H ALA A 323 -22.088 -38.124 21.369 1.00 20.00 H +ATOM 5120 HA ALA A 323 -25.048 -37.846 21.083 1.00 20.00 H +ATOM 5121 HB1 ALA A 323 -25.152 -40.293 20.786 1.00 20.00 H +ATOM 5122 HB2 ALA A 323 -24.179 -39.491 19.507 1.00 20.00 H +ATOM 5123 HB3 ALA A 323 -23.359 -40.369 20.842 1.00 20.00 H +ATOM 5124 N ILE A 324 -23.964 -37.872 23.754 1.00 64.66 N +ATOM 5125 CA ILE A 324 -24.372 -37.872 25.151 1.00 64.18 C +ATOM 5126 C ILE A 324 -25.264 -36.662 25.355 1.00 65.41 C +ATOM 5127 O ILE A 324 -24.907 -35.548 24.956 1.00 65.17 O +ATOM 5128 CB ILE A 324 -23.169 -37.837 26.105 1.00 63.33 C +ATOM 5129 CG1 ILE A 324 -22.209 -38.973 25.776 1.00 64.92 C +ATOM 5130 CG2 ILE A 324 -23.633 -37.956 27.547 1.00 61.99 C +ATOM 5131 CD1 ILE A 324 -20.999 -38.957 26.625 1.00 64.43 C +ATOM 5132 H ILE A 324 -23.337 -37.160 23.439 1.00 20.00 H +ATOM 5133 HA ILE A 324 -24.957 -38.779 25.362 1.00 20.00 H +ATOM 5134 HB ILE A 324 -22.644 -36.879 25.977 1.00 20.00 H +ATOM 5135 HG12 ILE A 324 -22.731 -39.930 25.924 1.00 20.00 H +ATOM 5136 HG13 ILE A 324 -21.902 -38.882 24.723 1.00 20.00 H +ATOM 5137 HG21 ILE A 324 -22.761 -37.929 28.217 1.00 20.00 H +ATOM 5138 HG22 ILE A 324 -24.305 -37.118 27.786 1.00 20.00 H +ATOM 5139 HG23 ILE A 324 -24.170 -38.907 27.682 1.00 20.00 H +ATOM 5140 HD11 ILE A 324 -20.344 -39.795 26.346 1.00 20.00 H +ATOM 5141 HD12 ILE A 324 -20.462 -38.008 26.480 1.00 20.00 H +ATOM 5142 HD13 ILE A 324 -21.291 -39.056 27.681 1.00 20.00 H +ATOM 5143 N SER A 325 -26.425 -36.876 25.964 1.00 68.91 N +ATOM 5144 CA SER A 325 -27.430 -35.828 26.015 1.00 66.83 C +ATOM 5145 C SER A 325 -28.208 -35.924 27.317 1.00 65.98 C +ATOM 5146 O SER A 325 -28.036 -36.854 28.107 1.00 64.29 O +ATOM 5147 CB SER A 325 -28.362 -35.908 24.804 1.00 66.40 C +ATOM 5148 OG SER A 325 -28.927 -37.202 24.694 1.00 65.94 O +ATOM 5149 H SER A 325 -26.608 -37.762 26.389 1.00 20.00 H +ATOM 5150 HA SER A 325 -26.927 -34.850 25.990 1.00 20.00 H +ATOM 5151 HB2 SER A 325 -29.169 -35.170 24.920 1.00 20.00 H +ATOM 5152 HB3 SER A 325 -27.789 -35.685 23.892 1.00 20.00 H +ATOM 5153 HG SER A 325 -28.550 -37.770 25.356 1.00 20.00 H +ATOM 5154 N GLN A 326 -29.073 -34.938 27.524 1.00 69.51 N +ATOM 5155 CA GLN A 326 -29.797 -34.783 28.774 1.00 73.01 C +ATOM 5156 C GLN A 326 -31.135 -35.504 28.712 1.00 72.03 C +ATOM 5157 O GLN A 326 -31.782 -35.558 27.662 1.00 70.90 O +ATOM 5158 CB GLN A 326 -30.013 -33.301 29.086 1.00 77.42 C +ATOM 5159 CG GLN A 326 -30.803 -33.043 30.362 1.00 78.81 C +ATOM 5160 CD GLN A 326 -30.930 -31.570 30.693 1.00 83.42 C +ATOM 5161 OE1 GLN A 326 -29.951 -30.824 30.655 1.00 85.79 O +ATOM 5162 NE2 GLN A 326 -32.145 -31.142 31.021 1.00 84.26 N +ATOM 5163 H GLN A 326 -29.232 -34.277 26.791 1.00 20.00 H +ATOM 5164 HA GLN A 326 -29.206 -35.223 29.591 1.00 20.00 H +ATOM 5165 HB2 GLN A 326 -29.028 -32.822 29.187 1.00 20.00 H +ATOM 5166 HB3 GLN A 326 -30.557 -32.847 28.245 1.00 20.00 H +ATOM 5167 HG2 GLN A 326 -31.812 -33.463 30.240 1.00 20.00 H +ATOM 5168 HG3 GLN A 326 -30.294 -33.547 31.197 1.00 20.00 H +ATOM 5169 HE21 GLN A 326 -32.291 -30.180 31.250 1.00 20.00 H +ATOM 5170 HE22 GLN A 326 -32.913 -31.782 31.039 1.00 20.00 H +ATOM 5171 N SER A 327 -31.540 -36.060 29.847 1.00 72.97 N +ATOM 5172 CA SER A 327 -32.808 -36.754 29.975 1.00 75.40 C +ATOM 5173 C SER A 327 -33.587 -36.189 31.152 1.00 78.79 C +ATOM 5174 O SER A 327 -33.004 -35.821 32.177 1.00 77.42 O +ATOM 5175 CB SER A 327 -32.594 -38.254 30.164 1.00 71.78 C +ATOM 5176 OG SER A 327 -33.756 -38.871 30.691 1.00 66.36 O +ATOM 5177 H SER A 327 -30.946 -35.998 30.649 1.00 20.00 H +ATOM 5178 HA SER A 327 -33.400 -36.602 29.061 1.00 20.00 H +ATOM 5179 HB2 SER A 327 -32.355 -38.709 29.191 1.00 20.00 H +ATOM 5180 HB3 SER A 327 -31.756 -38.413 30.859 1.00 20.00 H +ATOM 5181 HG SER A 327 -33.511 -39.656 31.166 1.00 20.00 H +ATOM 5182 N SER A 328 -34.906 -36.116 30.991 1.00 79.85 N +ATOM 5183 CA SER A 328 -35.807 -35.734 32.068 1.00 86.09 C +ATOM 5184 C SER A 328 -36.442 -36.936 32.749 1.00 83.11 C +ATOM 5185 O SER A 328 -37.212 -36.760 33.700 1.00 86.76 O +ATOM 5186 CB SER A 328 -36.903 -34.806 31.536 1.00 90.74 C +ATOM 5187 OG SER A 328 -36.345 -33.633 30.973 1.00 94.71 O +ATOM 5188 H SER A 328 -35.293 -36.332 30.095 1.00 20.00 H +ATOM 5189 HA SER A 328 -35.236 -35.179 32.826 1.00 20.00 H +ATOM 5190 HB2 SER A 328 -37.480 -35.336 30.764 1.00 20.00 H +ATOM 5191 HB3 SER A 328 -37.570 -34.525 32.364 1.00 20.00 H +ATOM 5192 HG SER A 328 -35.478 -33.825 30.636 1.00 20.00 H +ATOM 5193 N THR A 329 -36.131 -38.152 32.296 1.00 76.14 N +ATOM 5194 CA THR A 329 -36.784 -39.360 32.787 1.00 72.87 C +ATOM 5195 C THR A 329 -35.787 -40.390 33.300 1.00 70.31 C +ATOM 5196 O THR A 329 -36.106 -41.582 33.355 1.00 64.57 O +ATOM 5197 CB THR A 329 -37.649 -39.979 31.689 1.00 72.83 C +ATOM 5198 OG1 THR A 329 -36.838 -40.243 30.536 1.00 72.96 O +ATOM 5199 CG2 THR A 329 -38.783 -39.036 31.308 1.00 77.63 C +ATOM 5200 H THR A 329 -35.424 -38.238 31.594 1.00 20.00 H +ATOM 5201 HA THR A 329 -37.446 -39.087 33.622 1.00 20.00 H +ATOM 5202 HB THR A 329 -38.081 -40.917 32.067 1.00 20.00 H +ATOM 5203 HG1 THR A 329 -36.657 -39.428 30.082 1.00 20.00 H +ATOM 5204 HG21 THR A 329 -39.394 -39.497 30.518 1.00 20.00 H +ATOM 5205 HG22 THR A 329 -39.410 -38.842 32.190 1.00 20.00 H +ATOM 5206 HG23 THR A 329 -38.363 -38.088 30.941 1.00 20.00 H +ATOM 5207 N GLY A 330 -34.590 -39.963 33.667 1.00 69.55 N +ATOM 5208 CA GLY A 330 -33.584 -40.875 34.162 1.00 66.75 C +ATOM 5209 C GLY A 330 -32.565 -41.235 33.103 1.00 64.12 C +ATOM 5210 O GLY A 330 -32.578 -40.740 31.974 1.00 65.13 O +ATOM 5211 H GLY A 330 -34.377 -38.988 33.600 1.00 20.00 H +ATOM 5212 HA2 GLY A 330 -33.063 -40.402 35.008 1.00 20.00 H +ATOM 5213 HA3 GLY A 330 -34.079 -41.796 34.504 1.00 20.00 H +ATOM 5214 N THR A 331 -31.660 -42.127 33.491 1.00 71.06 N +ATOM 5215 CA THR A 331 -30.588 -42.550 32.601 1.00 61.52 C +ATOM 5216 C THR A 331 -31.104 -43.537 31.564 1.00 57.99 C +ATOM 5217 O THR A 331 -31.830 -44.479 31.888 1.00 52.41 O +ATOM 5218 CB THR A 331 -29.450 -43.197 33.391 1.00 59.60 C +ATOM 5219 OG1 THR A 331 -28.970 -42.281 34.382 1.00 59.98 O +ATOM 5220 CG2 THR A 331 -28.311 -43.577 32.460 1.00 59.81 C +ATOM 5221 H THR A 331 -31.716 -42.515 34.411 1.00 20.00 H +ATOM 5222 HA THR A 331 -30.187 -41.672 32.074 1.00 20.00 H +ATOM 5223 HB THR A 331 -29.831 -44.108 33.875 1.00 20.00 H +ATOM 5224 HG1 THR A 331 -28.950 -42.711 35.229 1.00 20.00 H +ATOM 5225 HG21 THR A 331 -27.501 -44.041 33.042 1.00 20.00 H +ATOM 5226 HG22 THR A 331 -28.676 -44.290 31.706 1.00 20.00 H +ATOM 5227 HG23 THR A 331 -27.932 -42.675 31.958 1.00 20.00 H +ATOM 5228 N VAL A 332 -30.711 -43.327 30.313 1.00 55.30 N +ATOM 5229 CA VAL A 332 -31.024 -44.239 29.222 1.00 55.48 C +ATOM 5230 C VAL A 332 -29.704 -44.727 28.643 1.00 53.38 C +ATOM 5231 O VAL A 332 -28.971 -43.953 28.015 1.00 54.27 O +ATOM 5232 CB VAL A 332 -31.883 -43.575 28.138 1.00 55.74 C +ATOM 5233 CG1 VAL A 332 -32.250 -44.592 27.070 1.00 58.37 C +ATOM 5234 CG2 VAL A 332 -33.131 -42.957 28.741 1.00 56.34 C +ATOM 5235 H VAL A 332 -30.177 -42.506 30.111 1.00 20.00 H +ATOM 5236 HA VAL A 332 -31.574 -45.106 29.617 1.00 20.00 H +ATOM 5237 HB VAL A 332 -31.290 -42.776 27.669 1.00 20.00 H +ATOM 5238 HG11 VAL A 332 -32.865 -44.107 26.298 1.00 20.00 H +ATOM 5239 HG12 VAL A 332 -31.332 -44.989 26.612 1.00 20.00 H +ATOM 5240 HG13 VAL A 332 -32.818 -45.416 27.528 1.00 20.00 H +ATOM 5241 HG21 VAL A 332 -33.729 -42.488 27.946 1.00 20.00 H +ATOM 5242 HG22 VAL A 332 -33.726 -43.740 29.234 1.00 20.00 H +ATOM 5243 HG23 VAL A 332 -32.842 -42.195 29.480 1.00 20.00 H +ATOM 5244 N MET A 333 -29.398 -46.004 28.854 1.00 52.82 N +ATOM 5245 CA MET A 333 -28.222 -46.623 28.246 1.00 55.17 C +ATOM 5246 C MET A 333 -28.628 -47.119 26.867 1.00 54.99 C +ATOM 5247 O MET A 333 -29.100 -48.244 26.697 1.00 56.22 O +ATOM 5248 CB MET A 333 -27.683 -47.748 29.122 1.00 56.62 C +ATOM 5249 CG MET A 333 -27.090 -47.264 30.438 1.00 61.92 C +ATOM 5250 SD MET A 333 -27.042 -48.509 31.743 1.00 62.83 S +ATOM 5251 CE MET A 333 -25.793 -49.633 31.130 1.00 62.66 C +ATOM 5252 H MET A 333 -29.988 -46.555 29.444 1.00 20.00 H +ATOM 5253 HA MET A 333 -27.433 -45.866 28.127 1.00 20.00 H +ATOM 5254 HB2 MET A 333 -28.508 -48.440 29.346 1.00 20.00 H +ATOM 5255 HB3 MET A 333 -26.900 -48.280 28.562 1.00 20.00 H +ATOM 5256 HG2 MET A 333 -26.060 -46.927 30.247 1.00 20.00 H +ATOM 5257 HG3 MET A 333 -27.693 -46.416 30.795 1.00 20.00 H +ATOM 5258 HE1 MET A 333 -25.537 -50.361 31.914 1.00 20.00 H +ATOM 5259 HE2 MET A 333 -26.180 -50.165 30.248 1.00 20.00 H +ATOM 5260 HE3 MET A 333 -24.894 -49.064 30.850 1.00 20.00 H +ATOM 5261 N GLY A 334 -28.455 -46.253 25.875 1.00 56.86 N +ATOM 5262 CA GLY A 334 -28.850 -46.536 24.513 1.00 57.01 C +ATOM 5263 C GLY A 334 -27.758 -47.198 23.706 1.00 54.52 C +ATOM 5264 O GLY A 334 -26.861 -47.855 24.240 1.00 53.95 O +ATOM 5265 H GLY A 334 -28.034 -45.369 26.078 1.00 20.00 H +ATOM 5266 HA2 GLY A 334 -29.724 -47.203 24.533 1.00 20.00 H +ATOM 5267 HA3 GLY A 334 -29.123 -45.589 24.023 1.00 20.00 H +ATOM 5268 N ALA A 335 -27.841 -47.015 22.386 1.00 52.58 N +ATOM 5269 CA ALA A 335 -26.877 -47.632 21.479 1.00 51.61 C +ATOM 5270 C ALA A 335 -25.453 -47.197 21.785 1.00 52.85 C +ATOM 5271 O ALA A 335 -24.509 -47.960 21.557 1.00 53.04 O +ATOM 5272 CB ALA A 335 -27.226 -47.297 20.025 1.00 47.58 C +ATOM 5273 H ALA A 335 -28.574 -46.447 22.013 1.00 20.00 H +ATOM 5274 HA ALA A 335 -26.931 -48.724 21.595 1.00 20.00 H +ATOM 5275 HB1 ALA A 335 -26.493 -47.768 19.354 1.00 20.00 H +ATOM 5276 HB2 ALA A 335 -28.232 -47.676 19.793 1.00 20.00 H +ATOM 5277 HB3 ALA A 335 -27.204 -46.206 19.885 1.00 20.00 H +ATOM 5278 N VAL A 336 -25.280 -45.977 22.298 1.00 55.61 N +ATOM 5279 CA VAL A 336 -23.945 -45.506 22.666 1.00 57.51 C +ATOM 5280 C VAL A 336 -23.295 -46.484 23.634 1.00 57.95 C +ATOM 5281 O VAL A 336 -22.124 -46.852 23.489 1.00 61.23 O +ATOM 5282 CB VAL A 336 -24.016 -44.082 23.250 1.00 60.21 C +ATOM 5283 CG1 VAL A 336 -22.684 -43.688 23.879 1.00 56.67 C +ATOM 5284 CG2 VAL A 336 -24.395 -43.099 22.164 1.00 58.12 C +ATOM 5285 H VAL A 336 -26.070 -45.379 22.432 1.00 20.00 H +ATOM 5286 HA VAL A 336 -23.324 -45.465 21.759 1.00 20.00 H +ATOM 5287 HB VAL A 336 -24.792 -44.064 24.030 1.00 20.00 H +ATOM 5288 HG11 VAL A 336 -22.758 -42.670 24.288 1.00 20.00 H +ATOM 5289 HG12 VAL A 336 -22.438 -44.391 24.688 1.00 20.00 H +ATOM 5290 HG13 VAL A 336 -21.894 -43.719 23.114 1.00 20.00 H +ATOM 5291 HG21 VAL A 336 -24.444 -42.085 22.587 1.00 20.00 H +ATOM 5292 HG22 VAL A 336 -23.640 -43.126 21.365 1.00 20.00 H +ATOM 5293 HG23 VAL A 336 -25.377 -43.371 21.750 1.00 20.00 H +ATOM 5294 N ILE A 337 -24.057 -46.938 24.627 1.00 58.20 N +ATOM 5295 CA ILE A 337 -23.551 -47.951 25.546 1.00 56.31 C +ATOM 5296 C ILE A 337 -23.514 -49.318 24.870 1.00 52.67 C +ATOM 5297 O ILE A 337 -22.469 -49.976 24.821 1.00 50.41 O +ATOM 5298 CB ILE A 337 -24.399 -47.985 26.829 1.00 58.55 C +ATOM 5299 CG1 ILE A 337 -24.201 -46.700 27.638 1.00 60.82 C +ATOM 5300 CG2 ILE A 337 -24.065 -49.221 27.652 1.00 58.59 C +ATOM 5301 CD1 ILE A 337 -22.783 -46.513 28.155 1.00 60.82 C +ATOM 5302 H ILE A 337 -24.984 -46.581 24.744 1.00 20.00 H +ATOM 5303 HA ILE A 337 -22.522 -47.687 25.831 1.00 20.00 H +ATOM 5304 HB ILE A 337 -25.457 -48.044 26.535 1.00 20.00 H +ATOM 5305 HG12 ILE A 337 -24.452 -45.843 26.995 1.00 20.00 H +ATOM 5306 HG13 ILE A 337 -24.884 -46.724 28.500 1.00 20.00 H +ATOM 5307 HG21 ILE A 337 -24.679 -49.231 28.565 1.00 20.00 H +ATOM 5308 HG22 ILE A 337 -24.275 -50.124 27.059 1.00 20.00 H +ATOM 5309 HG23 ILE A 337 -23.000 -49.202 27.926 1.00 20.00 H +ATOM 5310 HD11 ILE A 337 -22.720 -45.573 28.723 1.00 20.00 H +ATOM 5311 HD12 ILE A 337 -22.518 -47.356 28.810 1.00 20.00 H +ATOM 5312 HD13 ILE A 337 -22.085 -46.475 27.306 1.00 20.00 H +ATOM 5313 N MET A 338 -24.654 -49.759 24.328 1.00 51.20 N +ATOM 5314 CA MET A 338 -24.792 -51.144 23.882 1.00 49.07 C +ATOM 5315 C MET A 338 -23.824 -51.505 22.764 1.00 47.59 C +ATOM 5316 O MET A 338 -23.469 -52.679 22.613 1.00 47.69 O +ATOM 5317 CB MET A 338 -26.229 -51.411 23.429 1.00 49.05 C +ATOM 5318 CG MET A 338 -27.279 -51.231 24.516 1.00 51.84 C +ATOM 5319 SD MET A 338 -28.948 -51.713 24.026 1.00 50.89 S +ATOM 5320 CE MET A 338 -28.750 -53.468 23.724 1.00 47.55 C +ATOM 5321 H MET A 338 -25.425 -49.131 24.226 1.00 20.00 H +ATOM 5322 HA MET A 338 -24.582 -51.807 24.734 1.00 20.00 H +ATOM 5323 HB2 MET A 338 -26.464 -50.719 22.607 1.00 20.00 H +ATOM 5324 HB3 MET A 338 -26.287 -52.447 23.064 1.00 20.00 H +ATOM 5325 HG2 MET A 338 -26.985 -51.841 25.383 1.00 20.00 H +ATOM 5326 HG3 MET A 338 -27.298 -50.169 24.804 1.00 20.00 H +ATOM 5327 HE1 MET A 338 -29.644 -54.004 24.074 1.00 20.00 H +ATOM 5328 HE2 MET A 338 -28.617 -53.642 22.646 1.00 20.00 H +ATOM 5329 HE3 MET A 338 -27.866 -53.836 24.266 1.00 20.00 H +ATOM 5330 N GLU A 339 -23.389 -50.531 21.966 1.00 47.66 N +ATOM 5331 CA GLU A 339 -22.510 -50.871 20.853 1.00 46.76 C +ATOM 5332 C GLU A 339 -21.107 -51.252 21.303 1.00 46.16 C +ATOM 5333 O GLU A 339 -20.336 -51.792 20.499 1.00 46.36 O +ATOM 5334 CB GLU A 339 -22.450 -49.720 19.853 1.00 51.42 C +ATOM 5335 CG GLU A 339 -23.678 -49.650 18.968 1.00 50.57 C +ATOM 5336 CD GLU A 339 -23.690 -48.435 18.072 1.00 55.39 C +ATOM 5337 OE1 GLU A 339 -22.645 -47.760 17.970 1.00 53.34 O +ATOM 5338 OE2 GLU A 339 -24.751 -48.158 17.470 1.00 52.07 O +ATOM 5339 H GLU A 339 -23.661 -49.582 22.128 1.00 20.00 H +ATOM 5340 HA GLU A 339 -22.936 -51.740 20.330 1.00 20.00 H +ATOM 5341 HB2 GLU A 339 -22.362 -48.775 20.409 1.00 20.00 H +ATOM 5342 HB3 GLU A 339 -21.564 -49.854 19.215 1.00 20.00 H +ATOM 5343 HG2 GLU A 339 -23.708 -50.551 18.338 1.00 20.00 H +ATOM 5344 HG3 GLU A 339 -24.571 -49.622 19.609 1.00 20.00 H +ATOM 5345 N GLY A 340 -20.751 -50.984 22.560 1.00 47.85 N +ATOM 5346 CA GLY A 340 -19.487 -51.486 23.060 1.00 49.82 C +ATOM 5347 C GLY A 340 -19.529 -52.930 23.502 1.00 46.59 C +ATOM 5348 O GLY A 340 -18.471 -53.538 23.701 1.00 44.47 O +ATOM 5349 H GLY A 340 -21.350 -50.443 23.151 1.00 20.00 H +ATOM 5350 HA2 GLY A 340 -18.737 -51.391 22.261 1.00 20.00 H +ATOM 5351 HA3 GLY A 340 -19.186 -50.870 23.920 1.00 20.00 H +ATOM 5352 N PHE A 341 -20.726 -53.506 23.625 1.00 47.33 N +ATOM 5353 CA PHE A 341 -20.890 -54.724 24.399 1.00 45.99 C +ATOM 5354 C PHE A 341 -21.865 -55.698 23.755 1.00 46.10 C +ATOM 5355 O PHE A 341 -22.684 -55.345 22.903 1.00 43.05 O +ATOM 5356 CB PHE A 341 -21.361 -54.400 25.818 1.00 48.00 C +ATOM 5357 CG PHE A 341 -20.565 -53.313 26.470 1.00 53.95 C +ATOM 5358 CD1 PHE A 341 -19.274 -53.551 26.910 1.00 51.90 C +ATOM 5359 CD2 PHE A 341 -21.098 -52.046 26.623 1.00 50.92 C +ATOM 5360 CE1 PHE A 341 -18.535 -52.548 27.502 1.00 51.52 C +ATOM 5361 CE2 PHE A 341 -20.366 -51.040 27.216 1.00 51.71 C +ATOM 5362 CZ PHE A 341 -19.078 -51.291 27.654 1.00 52.30 C +ATOM 5363 H PHE A 341 -21.520 -53.094 23.179 1.00 20.00 H +ATOM 5364 HA PHE A 341 -19.914 -55.226 24.477 1.00 20.00 H +ATOM 5365 HB2 PHE A 341 -22.414 -54.084 25.773 1.00 20.00 H +ATOM 5366 HB3 PHE A 341 -21.277 -55.310 26.430 1.00 20.00 H +ATOM 5367 HD1 PHE A 341 -18.841 -54.533 26.788 1.00 20.00 H +ATOM 5368 HD2 PHE A 341 -22.100 -51.843 26.274 1.00 20.00 H +ATOM 5369 HE1 PHE A 341 -17.531 -52.748 27.846 1.00 20.00 H +ATOM 5370 HE2 PHE A 341 -20.797 -50.057 27.338 1.00 20.00 H +ATOM 5371 HZ PHE A 341 -18.500 -50.504 28.114 1.00 20.00 H +ATOM 5372 N TYR A 342 -21.724 -56.948 24.177 1.00 41.79 N +ATOM 5373 CA TYR A 342 -22.722 -57.989 23.997 1.00 42.20 C +ATOM 5374 C TYR A 342 -23.552 -58.015 25.274 1.00 43.50 C +ATOM 5375 O TYR A 342 -23.011 -58.240 26.363 1.00 40.02 O +ATOM 5376 CB TYR A 342 -22.040 -59.333 23.741 1.00 40.82 C +ATOM 5377 CG TYR A 342 -22.934 -60.500 23.377 1.00 41.87 C +ATOM 5378 CD1 TYR A 342 -24.065 -60.336 22.583 1.00 41.17 C +ATOM 5379 CD2 TYR A 342 -22.612 -61.783 23.797 1.00 43.37 C +ATOM 5380 CE1 TYR A 342 -24.860 -61.423 22.241 1.00 44.00 C +ATOM 5381 CE2 TYR A 342 -23.397 -62.869 23.462 1.00 43.49 C +ATOM 5382 CZ TYR A 342 -24.522 -62.685 22.686 1.00 48.30 C +ATOM 5383 OH TYR A 342 -25.297 -63.774 22.357 1.00 46.85 O +ATOM 5384 H TYR A 342 -20.876 -57.189 24.649 1.00 20.00 H +ATOM 5385 HA TYR A 342 -23.375 -57.747 23.145 1.00 20.00 H +ATOM 5386 HB2 TYR A 342 -21.327 -59.191 22.916 1.00 20.00 H +ATOM 5387 HB3 TYR A 342 -21.493 -59.607 24.655 1.00 20.00 H +ATOM 5388 HD1 TYR A 342 -24.328 -59.351 22.228 1.00 20.00 H +ATOM 5389 HD2 TYR A 342 -21.728 -61.936 24.399 1.00 20.00 H +ATOM 5390 HE1 TYR A 342 -25.739 -61.281 21.629 1.00 20.00 H +ATOM 5391 HE2 TYR A 342 -23.131 -63.857 23.806 1.00 20.00 H +ATOM 5392 HH TYR A 342 -26.181 -63.487 22.162 1.00 20.00 H +ATOM 5393 N VAL A 343 -24.847 -57.746 25.148 1.00 39.18 N +ATOM 5394 CA VAL A 343 -25.723 -57.528 26.294 1.00 40.83 C +ATOM 5395 C VAL A 343 -26.708 -58.686 26.372 1.00 46.39 C +ATOM 5396 O VAL A 343 -27.446 -58.950 25.414 1.00 45.18 O +ATOM 5397 CB VAL A 343 -26.452 -56.179 26.195 1.00 38.85 C +ATOM 5398 CG1 VAL A 343 -27.349 -55.968 27.405 1.00 42.85 C +ATOM 5399 CG2 VAL A 343 -25.448 -55.045 26.059 1.00 38.49 C +ATOM 5400 H VAL A 343 -25.238 -57.691 24.229 1.00 20.00 H +ATOM 5401 HA VAL A 343 -25.120 -57.525 27.214 1.00 20.00 H +ATOM 5402 HB VAL A 343 -27.083 -56.194 25.294 1.00 20.00 H +ATOM 5403 HG11 VAL A 343 -27.862 -54.999 27.317 1.00 20.00 H +ATOM 5404 HG12 VAL A 343 -28.095 -56.775 27.453 1.00 20.00 H +ATOM 5405 HG13 VAL A 343 -26.739 -55.978 28.320 1.00 20.00 H +ATOM 5406 HG21 VAL A 343 -25.984 -54.087 25.989 1.00 20.00 H +ATOM 5407 HG22 VAL A 343 -24.788 -55.033 26.939 1.00 20.00 H +ATOM 5408 HG23 VAL A 343 -24.846 -55.195 25.151 1.00 20.00 H +ATOM 5409 N VAL A 344 -26.736 -59.362 27.515 1.00 46.32 N +ATOM 5410 CA VAL A 344 -27.569 -60.542 27.713 1.00 49.21 C +ATOM 5411 C VAL A 344 -28.741 -60.154 28.602 1.00 45.65 C +ATOM 5412 O VAL A 344 -28.561 -59.828 29.779 1.00 41.69 O +ATOM 5413 CB VAL A 344 -26.769 -61.702 28.318 1.00 53.34 C +ATOM 5414 CG1 VAL A 344 -27.702 -62.857 28.659 1.00 55.28 C +ATOM 5415 CG2 VAL A 344 -25.693 -62.154 27.348 1.00 44.25 C +ATOM 5416 H VAL A 344 -26.162 -59.049 28.271 1.00 20.00 H +ATOM 5417 HA VAL A 344 -27.966 -60.870 26.741 1.00 20.00 H +ATOM 5418 HB VAL A 344 -26.288 -61.352 29.243 1.00 20.00 H +ATOM 5419 HG11 VAL A 344 -27.120 -63.684 29.092 1.00 20.00 H +ATOM 5420 HG12 VAL A 344 -28.454 -62.518 29.386 1.00 20.00 H +ATOM 5421 HG13 VAL A 344 -28.206 -63.203 27.745 1.00 20.00 H +ATOM 5422 HG21 VAL A 344 -25.125 -62.986 27.791 1.00 20.00 H +ATOM 5423 HG22 VAL A 344 -26.162 -62.488 26.411 1.00 20.00 H +ATOM 5424 HG23 VAL A 344 -25.012 -61.316 27.139 1.00 20.00 H +ATOM 5425 N PHE A 345 -29.945 -60.197 28.038 1.00 49.35 N +ATOM 5426 CA PHE A 345 -31.172 -59.950 28.792 1.00 54.19 C +ATOM 5427 C PHE A 345 -31.657 -61.295 29.315 1.00 50.10 C +ATOM 5428 O PHE A 345 -32.464 -61.981 28.689 1.00 43.84 O +ATOM 5429 CB PHE A 345 -32.212 -59.254 27.923 1.00 49.28 C +ATOM 5430 CG PHE A 345 -31.775 -57.906 27.425 1.00 44.04 C +ATOM 5431 CD1 PHE A 345 -30.929 -57.797 26.333 1.00 41.83 C +ATOM 5432 CD2 PHE A 345 -32.209 -56.748 28.047 1.00 44.24 C +ATOM 5433 CE1 PHE A 345 -30.525 -56.558 25.870 1.00 40.46 C +ATOM 5434 CE2 PHE A 345 -31.809 -55.504 27.585 1.00 44.78 C +ATOM 5435 CZ PHE A 345 -30.965 -55.412 26.496 1.00 49.55 C +ATOM 5436 H PHE A 345 -30.013 -60.406 27.062 1.00 20.00 H +ATOM 5437 HA PHE A 345 -30.946 -59.302 29.652 1.00 20.00 H +ATOM 5438 HB2 PHE A 345 -32.423 -59.894 27.054 1.00 20.00 H +ATOM 5439 HB3 PHE A 345 -33.130 -59.125 28.515 1.00 20.00 H +ATOM 5440 HD1 PHE A 345 -30.581 -58.691 25.837 1.00 20.00 H +ATOM 5441 HD2 PHE A 345 -32.866 -56.815 28.901 1.00 20.00 H +ATOM 5442 HE1 PHE A 345 -29.865 -56.489 25.018 1.00 20.00 H +ATOM 5443 HE2 PHE A 345 -32.157 -54.607 28.076 1.00 20.00 H +ATOM 5444 HZ PHE A 345 -30.650 -54.444 26.136 1.00 20.00 H +ATOM 5445 N ASP A 346 -31.138 -61.676 30.479 1.00 50.53 N +ATOM 5446 CA ASP A 346 -31.432 -62.966 31.101 1.00 48.54 C +ATOM 5447 C ASP A 346 -32.690 -62.799 31.941 1.00 46.69 C +ATOM 5448 O ASP A 346 -32.631 -62.543 33.143 1.00 45.49 O +ATOM 5449 CB ASP A 346 -30.244 -63.435 31.936 1.00 52.99 C +ATOM 5450 CG ASP A 346 -30.439 -64.819 32.527 1.00 56.63 C +ATOM 5451 OD1 ASP A 346 -31.548 -65.384 32.417 1.00 53.83 O +ATOM 5452 OD2 ASP A 346 -29.467 -65.350 33.105 1.00 55.31 O +ATOM 5453 H ASP A 346 -30.517 -61.050 30.951 1.00 20.00 H +ATOM 5454 HA ASP A 346 -31.628 -63.714 30.319 1.00 20.00 H +ATOM 5455 HB2 ASP A 346 -29.350 -63.451 31.295 1.00 20.00 H +ATOM 5456 HB3 ASP A 346 -30.092 -62.721 32.759 1.00 20.00 H +ATOM 5457 N ARG A 347 -33.849 -62.956 31.298 1.00 48.66 N +ATOM 5458 CA ARG A 347 -35.112 -62.781 32.007 1.00 46.44 C +ATOM 5459 C ARG A 347 -35.359 -63.903 33.011 1.00 43.29 C +ATOM 5460 O ARG A 347 -35.991 -63.681 34.050 1.00 43.07 O +ATOM 5461 CB ARG A 347 -36.263 -62.686 31.004 1.00 47.01 C +ATOM 5462 CG ARG A 347 -36.229 -61.437 30.138 1.00 48.20 C +ATOM 5463 CD ARG A 347 -36.859 -61.684 28.776 1.00 51.57 C +ATOM 5464 NE ARG A 347 -38.263 -62.084 28.853 1.00 49.64 N +ATOM 5465 CZ ARG A 347 -39.291 -61.245 28.759 1.00 54.43 C +ATOM 5466 NH1 ARG A 347 -39.083 -59.945 28.587 1.00 51.42 N +ATOM 5467 NH2 ARG A 347 -40.533 -61.706 28.834 1.00 52.27 N +ATOM 5468 H ARG A 347 -33.852 -63.194 30.327 1.00 20.00 H +ATOM 5469 HA ARG A 347 -35.074 -61.833 32.564 1.00 20.00 H +ATOM 5470 HB2 ARG A 347 -36.220 -63.565 30.344 1.00 20.00 H +ATOM 5471 HB3 ARG A 347 -37.210 -62.693 31.563 1.00 20.00 H +ATOM 5472 HG2 ARG A 347 -36.782 -60.634 30.647 1.00 20.00 H +ATOM 5473 HG3 ARG A 347 -35.183 -61.129 29.997 1.00 20.00 H +ATOM 5474 HD2 ARG A 347 -36.792 -60.757 28.187 1.00 20.00 H +ATOM 5475 HD3 ARG A 347 -36.296 -62.482 28.270 1.00 20.00 H +ATOM 5476 HE ARG A 347 -38.464 -63.055 28.985 1.00 20.00 H +ATOM 5477 HH11 ARG A 347 -39.860 -59.320 28.515 1.00 20.00 H +ATOM 5478 HH12 ARG A 347 -38.149 -59.591 28.530 1.00 20.00 H +ATOM 5479 HH21 ARG A 347 -41.306 -61.075 28.761 1.00 20.00 H +ATOM 5480 HH22 ARG A 347 -40.696 -62.684 28.963 1.00 20.00 H +ATOM 5481 N ALA A 348 -34.872 -65.112 32.720 1.00 45.59 N +ATOM 5482 CA ALA A 348 -35.094 -66.236 33.626 1.00 49.80 C +ATOM 5483 C ALA A 348 -34.456 -65.992 34.989 1.00 54.63 C +ATOM 5484 O ALA A 348 -35.040 -66.327 36.026 1.00 54.94 O +ATOM 5485 CB ALA A 348 -34.555 -67.528 33.011 1.00 46.04 C +ATOM 5486 H ALA A 348 -34.352 -65.249 31.877 1.00 20.00 H +ATOM 5487 HA ALA A 348 -36.177 -66.360 33.776 1.00 20.00 H +ATOM 5488 HB1 ALA A 348 -34.729 -68.365 33.703 1.00 20.00 H +ATOM 5489 HB2 ALA A 348 -35.072 -67.725 32.061 1.00 20.00 H +ATOM 5490 HB3 ALA A 348 -33.476 -67.424 32.826 1.00 20.00 H +ATOM 5491 N ARG A 349 -33.262 -65.397 35.010 1.00 54.34 N +ATOM 5492 CA ARG A 349 -32.546 -65.133 36.253 1.00 53.29 C +ATOM 5493 C ARG A 349 -32.546 -63.651 36.624 1.00 50.96 C +ATOM 5494 O ARG A 349 -31.743 -63.228 37.463 1.00 49.47 O +ATOM 5495 CB ARG A 349 -31.116 -65.671 36.167 1.00 52.00 C +ATOM 5496 CG ARG A 349 -31.043 -67.189 36.022 1.00 54.76 C +ATOM 5497 CD ARG A 349 -29.611 -67.683 35.832 1.00 62.76 C +ATOM 5498 NE ARG A 349 -28.832 -67.683 37.070 1.00 66.14 N +ATOM 5499 CZ ARG A 349 -27.623 -68.225 37.187 1.00 69.05 C +ATOM 5500 NH1 ARG A 349 -27.054 -68.811 36.141 1.00 68.01 N +ATOM 5501 NH2 ARG A 349 -26.981 -68.187 38.347 1.00 72.65 N +ATOM 5502 H ARG A 349 -32.844 -65.123 34.144 1.00 20.00 H +ATOM 5503 HA ARG A 349 -33.053 -65.675 37.065 1.00 20.00 H +ATOM 5504 HB2 ARG A 349 -30.624 -65.214 35.296 1.00 20.00 H +ATOM 5505 HB3 ARG A 349 -30.580 -65.383 37.083 1.00 20.00 H +ATOM 5506 HG2 ARG A 349 -31.460 -67.652 36.929 1.00 20.00 H +ATOM 5507 HG3 ARG A 349 -31.640 -67.490 35.149 1.00 20.00 H +ATOM 5508 HD2 ARG A 349 -29.645 -68.710 35.440 1.00 20.00 H +ATOM 5509 HD3 ARG A 349 -29.109 -67.029 35.103 1.00 20.00 H +ATOM 5510 HE ARG A 349 -29.233 -67.249 37.877 1.00 20.00 H +ATOM 5511 HH11 ARG A 349 -26.146 -69.221 36.230 1.00 20.00 H +ATOM 5512 HH12 ARG A 349 -27.533 -68.843 35.264 1.00 20.00 H +ATOM 5513 HH21 ARG A 349 -26.073 -68.599 38.430 1.00 20.00 H +ATOM 5514 HH22 ARG A 349 -27.405 -67.747 39.139 1.00 20.00 H +ATOM 5515 N LYS A 350 -33.436 -62.862 36.015 1.00 47.48 N +ATOM 5516 CA LYS A 350 -33.692 -61.473 36.410 1.00 51.33 C +ATOM 5517 C LYS A 350 -32.391 -60.677 36.536 1.00 50.31 C +ATOM 5518 O LYS A 350 -32.104 -60.050 37.560 1.00 50.78 O +ATOM 5519 CB LYS A 350 -34.501 -61.427 37.710 1.00 56.00 C +ATOM 5520 CG LYS A 350 -35.292 -60.138 37.944 1.00 60.20 C +ATOM 5521 CD LYS A 350 -36.098 -60.220 39.237 1.00 63.33 C +ATOM 5522 CE LYS A 350 -36.776 -58.897 39.570 1.00 66.31 C +ATOM 5523 NZ LYS A 350 -37.530 -58.949 40.858 1.00 71.02 N +ATOM 5524 H LYS A 350 -33.956 -63.239 35.248 1.00 20.00 H +ATOM 5525 HA LYS A 350 -34.298 -60.996 35.625 1.00 20.00 H +ATOM 5526 HB2 LYS A 350 -35.214 -62.265 37.696 1.00 20.00 H +ATOM 5527 HB3 LYS A 350 -33.802 -61.554 38.550 1.00 20.00 H +ATOM 5528 HG2 LYS A 350 -34.591 -59.292 38.009 1.00 20.00 H +ATOM 5529 HG3 LYS A 350 -35.980 -59.980 37.100 1.00 20.00 H +ATOM 5530 HD2 LYS A 350 -36.869 -60.997 39.126 1.00 20.00 H +ATOM 5531 HD3 LYS A 350 -35.421 -60.490 40.061 1.00 20.00 H +ATOM 5532 HE2 LYS A 350 -36.006 -58.115 39.643 1.00 20.00 H +ATOM 5533 HE3 LYS A 350 -37.477 -58.646 38.761 1.00 20.00 H +ATOM 5534 HZ1 LYS A 350 -38.054 -58.105 40.972 1.00 20.00 H +ATOM 5535 HZ2 LYS A 350 -38.154 -59.730 40.847 1.00 20.00 H +ATOM 5536 HZ3 LYS A 350 -36.887 -59.047 41.617 1.00 20.00 H +ATOM 5537 N ARG A 351 -31.593 -60.719 35.473 1.00 50.16 N +ATOM 5538 CA ARG A 351 -30.295 -60.066 35.461 1.00 54.08 C +ATOM 5539 C ARG A 351 -29.951 -59.696 34.027 1.00 54.57 C +ATOM 5540 O ARG A 351 -30.515 -60.241 33.074 1.00 51.45 O +ATOM 5541 CB ARG A 351 -29.209 -60.969 36.061 1.00 49.89 C +ATOM 5542 CG ARG A 351 -29.041 -62.286 35.311 1.00 49.75 C +ATOM 5543 CD ARG A 351 -28.029 -63.221 35.968 1.00 48.00 C +ATOM 5544 NE ARG A 351 -27.720 -64.370 35.117 1.00 46.38 N +ATOM 5545 CZ ARG A 351 -26.749 -65.248 35.356 1.00 52.83 C +ATOM 5546 NH1 ARG A 351 -25.976 -65.117 36.427 1.00 52.55 N +ATOM 5547 NH2 ARG A 351 -26.546 -66.257 34.517 1.00 53.19 N +ATOM 5548 H ARG A 351 -31.895 -61.214 34.658 1.00 20.00 H +ATOM 5549 HA ARG A 351 -30.345 -59.143 36.057 1.00 20.00 H +ATOM 5550 HB2 ARG A 351 -28.251 -60.428 36.036 1.00 20.00 H +ATOM 5551 HB3 ARG A 351 -29.477 -61.193 37.104 1.00 20.00 H +ATOM 5552 HG2 ARG A 351 -30.015 -62.795 35.273 1.00 20.00 H +ATOM 5553 HG3 ARG A 351 -28.702 -62.066 34.288 1.00 20.00 H +ATOM 5554 HD2 ARG A 351 -27.102 -62.662 36.162 1.00 20.00 H +ATOM 5555 HD3 ARG A 351 -28.445 -63.584 36.919 1.00 20.00 H +ATOM 5556 HE ARG A 351 -28.278 -64.505 34.298 1.00 20.00 H +ATOM 5557 HH11 ARG A 351 -25.244 -65.777 36.599 1.00 20.00 H +ATOM 5558 HH12 ARG A 351 -26.125 -64.359 37.062 1.00 20.00 H +ATOM 5559 HH21 ARG A 351 -25.813 -66.914 34.693 1.00 20.00 H +ATOM 5560 HH22 ARG A 351 -27.126 -66.360 33.709 1.00 20.00 H +ATOM 5561 N ILE A 352 -29.023 -58.754 33.882 1.00 51.58 N +ATOM 5562 CA ILE A 352 -28.551 -58.294 32.578 1.00 51.74 C +ATOM 5563 C ILE A 352 -27.033 -58.432 32.538 1.00 48.76 C +ATOM 5564 O ILE A 352 -26.330 -57.841 33.370 1.00 50.84 O +ATOM 5565 CB ILE A 352 -28.967 -56.844 32.288 1.00 51.16 C +ATOM 5566 CG1 ILE A 352 -30.481 -56.711 32.181 1.00 57.82 C +ATOM 5567 CG2 ILE A 352 -28.337 -56.367 31.001 1.00 45.77 C +ATOM 5568 CD1 ILE A 352 -30.922 -55.321 31.763 1.00 62.49 C +ATOM 5569 H ILE A 352 -28.630 -58.341 34.704 1.00 20.00 H +ATOM 5570 HA ILE A 352 -28.977 -58.936 31.793 1.00 20.00 H +ATOM 5571 HB ILE A 352 -28.615 -56.208 33.113 1.00 20.00 H +ATOM 5572 HG12 ILE A 352 -30.845 -57.434 31.436 1.00 20.00 H +ATOM 5573 HG13 ILE A 352 -30.924 -56.940 33.161 1.00 20.00 H +ATOM 5574 HG21 ILE A 352 -28.643 -55.329 30.805 1.00 20.00 H +ATOM 5575 HG22 ILE A 352 -27.242 -56.416 31.089 1.00 20.00 H +ATOM 5576 HG23 ILE A 352 -28.668 -57.009 30.171 1.00 20.00 H +ATOM 5577 HD11 ILE A 352 -32.020 -55.287 31.703 1.00 20.00 H +ATOM 5578 HD12 ILE A 352 -30.572 -54.587 32.504 1.00 20.00 H +ATOM 5579 HD13 ILE A 352 -30.494 -55.081 30.779 1.00 20.00 H +ATOM 5580 N GLY A 353 -26.530 -59.191 31.567 1.00 45.65 N +ATOM 5581 CA GLY A 353 -25.101 -59.423 31.442 1.00 48.09 C +ATOM 5582 C GLY A 353 -24.464 -58.515 30.406 1.00 48.39 C +ATOM 5583 O GLY A 353 -25.080 -58.162 29.403 1.00 49.09 O +ATOM 5584 H GLY A 353 -27.152 -59.612 30.907 1.00 20.00 H +ATOM 5585 HA2 GLY A 353 -24.625 -59.238 32.416 1.00 20.00 H +ATOM 5586 HA3 GLY A 353 -24.936 -60.470 31.146 1.00 20.00 H +ATOM 5587 N PHE A 354 -23.212 -58.147 30.669 1.00 46.36 N +ATOM 5588 CA PHE A 354 -22.409 -57.322 29.781 1.00 45.68 C +ATOM 5589 C PHE A 354 -21.072 -58.003 29.538 1.00 47.23 C +ATOM 5590 O PHE A 354 -20.482 -58.580 30.459 1.00 46.12 O +ATOM 5591 CB PHE A 354 -22.164 -55.928 30.373 1.00 47.80 C +ATOM 5592 CG PHE A 354 -23.402 -55.093 30.511 1.00 47.29 C +ATOM 5593 CD1 PHE A 354 -24.251 -55.262 31.590 1.00 47.58 C +ATOM 5594 CD2 PHE A 354 -23.706 -54.125 29.571 1.00 43.70 C +ATOM 5595 CE1 PHE A 354 -25.394 -54.488 31.718 1.00 45.13 C +ATOM 5596 CE2 PHE A 354 -24.837 -53.347 29.695 1.00 41.54 C +ATOM 5597 CZ PHE A 354 -25.684 -53.530 30.770 1.00 48.82 C +ATOM 5598 H PHE A 354 -22.800 -58.456 31.526 1.00 20.00 H +ATOM 5599 HA PHE A 354 -22.926 -57.206 28.817 1.00 20.00 H +ATOM 5600 HB2 PHE A 354 -21.717 -56.050 31.371 1.00 20.00 H +ATOM 5601 HB3 PHE A 354 -21.459 -55.394 29.719 1.00 20.00 H +ATOM 5602 HD1 PHE A 354 -24.021 -56.004 32.340 1.00 20.00 H +ATOM 5603 HD2 PHE A 354 -23.048 -53.977 28.728 1.00 20.00 H +ATOM 5604 HE1 PHE A 354 -26.056 -54.635 32.559 1.00 20.00 H +ATOM 5605 HE2 PHE A 354 -25.060 -52.595 28.952 1.00 20.00 H +ATOM 5606 HZ PHE A 354 -26.572 -52.924 30.868 1.00 20.00 H +ATOM 5607 N ALA A 355 -20.598 -57.932 28.299 1.00 44.72 N +ATOM 5608 CA ALA A 355 -19.283 -58.440 27.951 1.00 45.69 C +ATOM 5609 C ALA A 355 -18.767 -57.629 26.776 1.00 47.09 C +ATOM 5610 O ALA A 355 -19.542 -57.050 26.009 1.00 46.79 O +ATOM 5611 CB ALA A 355 -19.316 -59.935 27.617 1.00 42.07 C +ATOM 5612 H ALA A 355 -21.163 -57.517 27.586 1.00 20.00 H +ATOM 5613 HA ALA A 355 -18.600 -58.292 28.801 1.00 20.00 H +ATOM 5614 HB1 ALA A 355 -18.302 -60.276 27.360 1.00 20.00 H +ATOM 5615 HB2 ALA A 355 -19.682 -60.497 28.489 1.00 20.00 H +ATOM 5616 HB3 ALA A 355 -19.987 -60.105 26.763 1.00 20.00 H +ATOM 5617 N VAL A 356 -17.442 -57.572 26.661 1.00 45.58 N +ATOM 5618 CA VAL A 356 -16.819 -56.848 25.560 1.00 44.25 C +ATOM 5619 C VAL A 356 -17.290 -57.438 24.247 1.00 43.39 C +ATOM 5620 O VAL A 356 -17.080 -58.632 23.977 1.00 42.84 O +ATOM 5621 CB VAL A 356 -15.294 -56.902 25.667 1.00 44.53 C +ATOM 5622 CG1 VAL A 356 -14.672 -56.313 24.412 1.00 41.91 C +ATOM 5623 CG2 VAL A 356 -14.826 -56.165 26.909 1.00 41.61 C +ATOM 5624 H VAL A 356 -16.867 -58.031 27.338 1.00 20.00 H +ATOM 5625 HA VAL A 356 -17.130 -55.794 25.599 1.00 20.00 H +ATOM 5626 HB VAL A 356 -14.988 -57.956 25.748 1.00 20.00 H +ATOM 5627 HG11 VAL A 356 -13.576 -56.353 24.492 1.00 20.00 H +ATOM 5628 HG12 VAL A 356 -14.997 -56.892 23.535 1.00 20.00 H +ATOM 5629 HG13 VAL A 356 -14.993 -55.267 24.300 1.00 20.00 H +ATOM 5630 HG21 VAL A 356 -13.729 -56.212 26.972 1.00 20.00 H +ATOM 5631 HG22 VAL A 356 -15.145 -55.114 26.853 1.00 20.00 H +ATOM 5632 HG23 VAL A 356 -15.265 -56.635 27.801 1.00 20.00 H +ATOM 5633 N SER A 357 -17.934 -56.623 23.418 1.00 44.39 N +ATOM 5634 CA SER A 357 -18.432 -57.096 22.136 1.00 44.76 C +ATOM 5635 C SER A 357 -17.281 -57.419 21.196 1.00 41.93 C +ATOM 5636 O SER A 357 -16.324 -56.654 21.079 1.00 42.38 O +ATOM 5637 CB SER A 357 -19.338 -56.051 21.491 1.00 43.26 C +ATOM 5638 OG SER A 357 -19.576 -56.354 20.127 1.00 46.18 O +ATOM 5639 H SER A 357 -18.079 -55.669 23.680 1.00 20.00 H +ATOM 5640 HA SER A 357 -19.019 -58.013 22.292 1.00 20.00 H +ATOM 5641 HB2 SER A 357 -20.298 -56.028 22.027 1.00 20.00 H +ATOM 5642 HB3 SER A 357 -18.856 -55.065 21.561 1.00 20.00 H +ATOM 5643 HG SER A 357 -20.487 -56.184 19.919 1.00 20.00 H +ATOM 5644 N ALA A 358 -17.391 -58.548 20.502 1.00 42.95 N +ATOM 5645 CA ALA A 358 -16.382 -58.929 19.522 1.00 40.91 C +ATOM 5646 C ALA A 358 -16.424 -58.101 18.242 1.00 48.79 C +ATOM 5647 O ALA A 358 -15.526 -58.251 17.409 1.00 57.47 O +ATOM 5648 CB ALA A 358 -16.521 -60.408 19.154 1.00 43.18 C +ATOM 5649 H ALA A 358 -18.178 -59.145 20.655 1.00 20.00 H +ATOM 5650 HA ALA A 358 -15.389 -58.792 19.974 1.00 20.00 H +ATOM 5651 HB1 ALA A 358 -15.752 -60.676 18.414 1.00 20.00 H +ATOM 5652 HB2 ALA A 358 -16.392 -61.024 20.056 1.00 20.00 H +ATOM 5653 HB3 ALA A 358 -17.519 -60.587 18.727 1.00 20.00 H +ATOM 5654 N CYS A 359 -17.435 -57.256 18.040 1.00 42.62 N +ATOM 5655 CA CYS A 359 -17.518 -56.467 16.817 1.00 45.62 C +ATOM 5656 C CYS A 359 -17.422 -54.969 17.059 1.00 45.50 C +ATOM 5657 O CYS A 359 -17.631 -54.194 16.120 1.00 48.88 O +ATOM 5658 CB CYS A 359 -18.817 -56.772 16.054 1.00 51.46 C +ATOM 5659 SG CYS A 359 -20.315 -56.096 16.805 1.00 61.22 S +ATOM 5660 H CYS A 359 -18.146 -57.162 18.737 1.00 20.00 H +ATOM 5661 HA CYS A 359 -16.680 -56.752 16.164 1.00 20.00 H +ATOM 5662 HB2 CYS A 359 -18.724 -56.355 15.040 1.00 20.00 H +ATOM 5663 HB3 CYS A 359 -18.929 -57.865 15.992 1.00 20.00 H +ATOM 5664 N HIS A 360 -17.095 -54.540 18.274 1.00 43.85 N +ATOM 5665 CA HIS A 360 -17.195 -53.126 18.599 1.00 46.06 C +ATOM 5666 C HIS A 360 -16.067 -52.332 17.948 1.00 43.98 C +ATOM 5667 O HIS A 360 -14.954 -52.827 17.739 1.00 44.07 O +ATOM 5668 CB HIS A 360 -17.192 -52.914 20.114 1.00 44.48 C +ATOM 5669 CG HIS A 360 -15.835 -52.990 20.740 1.00 50.56 C +ATOM 5670 ND1 HIS A 360 -15.286 -54.170 21.192 1.00 48.29 N +ATOM 5671 CD2 HIS A 360 -14.922 -52.026 21.006 1.00 56.30 C +ATOM 5672 CE1 HIS A 360 -14.091 -53.932 21.702 1.00 54.25 C +ATOM 5673 NE2 HIS A 360 -13.847 -52.638 21.602 1.00 54.55 N +ATOM 5674 H HIS A 360 -16.780 -55.190 18.965 1.00 20.00 H +ATOM 5675 HA HIS A 360 -18.148 -52.740 18.208 1.00 20.00 H +ATOM 5676 HB2 HIS A 360 -17.614 -51.920 20.324 1.00 20.00 H +ATOM 5677 HB3 HIS A 360 -17.827 -53.687 20.572 1.00 20.00 H +ATOM 5678 HD1 HIS A 360 -15.724 -55.068 21.142 1.00 20.00 H +ATOM 5679 HD2 HIS A 360 -15.021 -50.972 20.790 1.00 20.00 H +ATOM 5680 HE1 HIS A 360 -13.427 -54.670 22.128 1.00 20.00 H +ATOM 5681 N VAL A 361 -16.382 -51.082 17.613 1.00 42.98 N +ATOM 5682 CA VAL A 361 -15.436 -50.203 16.938 1.00 43.45 C +ATOM 5683 C VAL A 361 -14.413 -49.693 17.941 1.00 45.30 C +ATOM 5684 O VAL A 361 -14.770 -49.183 19.012 1.00 48.79 O +ATOM 5685 CB VAL A 361 -16.178 -49.039 16.263 1.00 42.26 C +ATOM 5686 CG1 VAL A 361 -15.200 -48.117 15.559 1.00 45.42 C +ATOM 5687 CG2 VAL A 361 -17.233 -49.568 15.297 1.00 45.13 C +ATOM 5688 H VAL A 361 -17.295 -50.736 17.831 1.00 20.00 H +ATOM 5689 HA VAL A 361 -14.906 -50.771 16.159 1.00 20.00 H +ATOM 5690 HB VAL A 361 -16.691 -48.463 17.047 1.00 20.00 H +ATOM 5691 HG11 VAL A 361 -15.750 -47.292 15.083 1.00 20.00 H +ATOM 5692 HG12 VAL A 361 -14.489 -47.708 16.292 1.00 20.00 H +ATOM 5693 HG13 VAL A 361 -14.651 -48.682 14.791 1.00 20.00 H +ATOM 5694 HG21 VAL A 361 -17.754 -48.723 14.823 1.00 20.00 H +ATOM 5695 HG22 VAL A 361 -16.747 -50.180 14.523 1.00 20.00 H +ATOM 5696 HG23 VAL A 361 -17.959 -50.183 15.848 1.00 20.00 H +ATOM 5697 N HIS A 362 -13.133 -49.823 17.604 1.00 45.68 N +ATOM 5698 CA HIS A 362 -12.070 -49.264 18.427 1.00 50.94 C +ATOM 5699 C HIS A 362 -10.825 -49.066 17.571 1.00 50.90 C +ATOM 5700 O HIS A 362 -10.832 -49.304 16.360 1.00 52.56 O +ATOM 5701 CB HIS A 362 -11.785 -50.157 19.637 1.00 51.28 C +ATOM 5702 CG HIS A 362 -11.311 -51.530 19.278 1.00 52.95 C +ATOM 5703 ND1 HIS A 362 -12.172 -52.549 18.932 1.00 53.25 N +ATOM 5704 CD2 HIS A 362 -10.064 -52.055 19.221 1.00 51.30 C +ATOM 5705 CE1 HIS A 362 -11.476 -53.642 18.673 1.00 51.42 C +ATOM 5706 NE2 HIS A 362 -10.195 -53.370 18.845 1.00 51.18 N +ATOM 5707 H HIS A 362 -12.895 -50.316 16.767 1.00 20.00 H +ATOM 5708 HA HIS A 362 -12.388 -48.279 18.799 1.00 20.00 H +ATOM 5709 HB2 HIS A 362 -11.011 -49.673 20.250 1.00 20.00 H +ATOM 5710 HB3 HIS A 362 -12.711 -50.252 20.223 1.00 20.00 H +ATOM 5711 HD1 HIS A 362 -13.168 -52.473 18.884 1.00 20.00 H +ATOM 5712 HD2 HIS A 362 -9.140 -51.537 19.432 1.00 20.00 H +ATOM 5713 HE1 HIS A 362 -11.885 -54.595 18.372 1.00 20.00 H +ATOM 5714 N ASP A 363 -9.750 -48.619 18.213 1.00 46.93 N +ATOM 5715 CA ASP A 363 -8.477 -48.372 17.555 1.00 47.30 C +ATOM 5716 C ASP A 363 -7.415 -49.324 18.100 1.00 47.38 C +ATOM 5717 O ASP A 363 -7.681 -50.176 18.955 1.00 42.55 O +ATOM 5718 CB ASP A 363 -8.055 -46.908 17.717 1.00 53.64 C +ATOM 5719 CG ASP A 363 -7.966 -46.476 19.169 1.00 54.13 C +ATOM 5720 OD1 ASP A 363 -7.057 -46.948 19.886 1.00 55.85 O +ATOM 5721 OD2 ASP A 363 -8.800 -45.646 19.593 1.00 54.04 O +ATOM 5722 H ASP A 363 -9.820 -48.444 19.195 1.00 20.00 H +ATOM 5723 HA ASP A 363 -8.590 -48.572 16.479 1.00 20.00 H +ATOM 5724 HB2 ASP A 363 -7.068 -46.773 17.250 1.00 20.00 H +ATOM 5725 HB3 ASP A 363 -8.792 -46.272 17.206 1.00 20.00 H +ATOM 5726 N GLU A 364 -6.190 -49.165 17.594 1.00 49.44 N +ATOM 5727 CA GLU A 364 -5.135 -50.121 17.910 1.00 54.77 C +ATOM 5728 C GLU A 364 -4.759 -50.100 19.384 1.00 52.74 C +ATOM 5729 O GLU A 364 -4.238 -51.093 19.900 1.00 59.10 O +ATOM 5730 CB GLU A 364 -3.903 -49.847 17.049 1.00 54.23 C +ATOM 5731 CG GLU A 364 -4.059 -50.240 15.588 0.00 53.20 C +ATOM 5732 CD GLU A 364 -2.774 -50.082 14.802 0.00 54.73 C +ATOM 5733 OE1 GLU A 364 -1.887 -49.327 15.251 0.00 55.96 O +ATOM 5734 OE2 GLU A 364 -2.649 -50.719 13.735 0.00 54.57 O +ATOM 5735 H GLU A 364 -5.995 -48.388 16.996 1.00 20.00 H +ATOM 5736 HA GLU A 364 -5.494 -51.132 17.669 1.00 20.00 H +ATOM 5737 HB2 GLU A 364 -3.684 -48.770 17.094 1.00 20.00 H +ATOM 5738 HB3 GLU A 364 -3.057 -50.411 17.469 1.00 20.00 H +ATOM 5739 HG2 GLU A 364 -4.375 -51.292 15.538 0.00 20.00 H +ATOM 5740 HG3 GLU A 364 -4.831 -49.603 15.132 0.00 20.00 H +ATOM 5741 N PHE A 365 -5.037 -49.001 20.082 1.00 50.70 N +ATOM 5742 CA PHE A 365 -4.506 -48.800 21.420 1.00 52.49 C +ATOM 5743 C PHE A 365 -5.549 -48.805 22.526 1.00 55.99 C +ATOM 5744 O PHE A 365 -5.176 -48.959 23.691 1.00 50.73 O +ATOM 5745 CB PHE A 365 -3.712 -47.488 21.473 1.00 51.33 C +ATOM 5746 CG PHE A 365 -2.592 -47.430 20.471 1.00 58.21 C +ATOM 5747 CD1 PHE A 365 -1.464 -48.220 20.631 1.00 54.88 C +ATOM 5748 CD2 PHE A 365 -2.672 -46.600 19.363 1.00 62.36 C +ATOM 5749 CE1 PHE A 365 -0.435 -48.181 19.712 1.00 54.60 C +ATOM 5750 CE2 PHE A 365 -1.642 -46.557 18.440 1.00 63.90 C +ATOM 5751 CZ PHE A 365 -0.522 -47.349 18.617 1.00 57.12 C +ATOM 5752 H PHE A 365 -5.623 -48.299 19.677 1.00 20.00 H +ATOM 5753 HA PHE A 365 -3.799 -49.615 21.633 1.00 20.00 H +ATOM 5754 HB2 PHE A 365 -4.402 -46.654 21.275 1.00 20.00 H +ATOM 5755 HB3 PHE A 365 -3.285 -47.379 22.481 1.00 20.00 H +ATOM 5756 HD1 PHE A 365 -1.390 -48.875 21.486 1.00 20.00 H +ATOM 5757 HD2 PHE A 365 -3.546 -45.982 19.219 1.00 20.00 H +ATOM 5758 HE1 PHE A 365 0.438 -48.802 19.851 1.00 20.00 H +ATOM 5759 HE2 PHE A 365 -1.713 -45.905 17.582 1.00 20.00 H +ATOM 5760 HZ PHE A 365 0.283 -47.315 17.898 1.00 20.00 H +ATOM 5761 N ARG A 366 -6.829 -48.652 22.207 1.00 52.06 N +ATOM 5762 CA ARG A 366 -7.872 -48.720 23.217 1.00 53.00 C +ATOM 5763 C ARG A 366 -8.991 -49.640 22.755 1.00 51.93 C +ATOM 5764 O ARG A 366 -9.295 -49.727 21.563 1.00 51.05 O +ATOM 5765 CB ARG A 366 -8.442 -47.331 23.544 1.00 54.00 C +ATOM 5766 CG ARG A 366 -7.768 -46.670 24.722 1.00 62.41 C +ATOM 5767 CD ARG A 366 -8.592 -45.532 25.282 1.00 61.01 C +ATOM 5768 NE ARG A 366 -9.055 -44.614 24.248 1.00 59.34 N +ATOM 5769 CZ ARG A 366 -9.205 -43.308 24.434 1.00 55.93 C +ATOM 5770 NH1 ARG A 366 -8.914 -42.771 25.612 1.00 52.52 N +ATOM 5771 NH2 ARG A 366 -9.634 -42.538 23.443 1.00 54.10 N +ATOM 5772 H ARG A 366 -7.080 -48.487 21.253 1.00 20.00 H +ATOM 5773 HA ARG A 366 -7.447 -49.137 24.142 1.00 20.00 H +ATOM 5774 HB2 ARG A 366 -8.316 -46.686 22.662 1.00 20.00 H +ATOM 5775 HB3 ARG A 366 -9.513 -47.438 23.770 1.00 20.00 H +ATOM 5776 HG2 ARG A 366 -7.617 -47.421 25.512 1.00 20.00 H +ATOM 5777 HG3 ARG A 366 -6.793 -46.277 24.398 1.00 20.00 H +ATOM 5778 HD2 ARG A 366 -9.468 -45.952 25.798 1.00 20.00 H +ATOM 5779 HD3 ARG A 366 -7.976 -44.972 26.001 1.00 20.00 H +ATOM 5780 HE ARG A 366 -9.272 -44.990 23.347 1.00 20.00 H +ATOM 5781 HH11 ARG A 366 -9.018 -41.786 25.752 1.00 20.00 H +ATOM 5782 HH12 ARG A 366 -8.590 -43.351 26.360 1.00 20.00 H +ATOM 5783 HH21 ARG A 366 -9.738 -41.553 23.584 1.00 20.00 H +ATOM 5784 HH22 ARG A 366 -9.854 -42.942 22.555 1.00 20.00 H +ATOM 5785 N THR A 367 -9.581 -50.353 23.711 0.50 49.94 N +ATOM 5786 CA THR A 367 -10.766 -51.162 23.470 0.50 49.73 C +ATOM 5787 C THR A 367 -11.800 -50.856 24.542 0.50 49.33 C +ATOM 5788 O THR A 367 -11.491 -50.273 25.584 0.50 50.58 O +ATOM 5789 CB THR A 367 -10.468 -52.675 23.478 0.50 49.58 C +ATOM 5790 OG1 THR A 367 -9.971 -53.067 24.765 0.50 48.81 O +ATOM 5791 CG2 THR A 367 -9.457 -53.045 22.406 0.50 48.86 C +ATOM 5792 H THR A 367 -9.194 -50.332 24.633 0.50 20.00 H +ATOM 5793 HA THR A 367 -11.192 -50.901 22.490 0.50 20.00 H +ATOM 5794 HB THR A 367 -11.406 -53.209 23.268 0.50 20.00 H +ATOM 5795 HG1 THR A 367 -10.693 -53.360 25.308 0.50 20.00 H +ATOM 5796 HG21 THR A 367 -9.267 -54.128 22.438 0.50 20.00 H +ATOM 5797 HG22 THR A 367 -9.855 -52.772 21.417 0.50 20.00 H +ATOM 5798 HG23 THR A 367 -8.517 -52.502 22.586 0.50 20.00 H +ATOM 5799 N ALA A 368 -13.041 -51.248 24.272 1.00 48.28 N +ATOM 5800 CA ALA A 368 -14.063 -51.210 25.302 1.00 42.16 C +ATOM 5801 C ALA A 368 -13.778 -52.321 26.307 1.00 46.57 C +ATOM 5802 O ALA A 368 -13.078 -53.290 26.012 1.00 41.41 O +ATOM 5803 CB ALA A 368 -15.459 -51.364 24.694 1.00 37.40 C +ATOM 5804 H ALA A 368 -13.272 -51.571 23.354 1.00 20.00 H +ATOM 5805 HA ALA A 368 -14.018 -50.245 25.827 1.00 20.00 H +ATOM 5806 HB1 ALA A 368 -16.213 -51.332 25.494 1.00 20.00 H +ATOM 5807 HB2 ALA A 368 -15.642 -50.544 23.984 1.00 20.00 H +ATOM 5808 HB3 ALA A 368 -15.525 -52.327 24.167 1.00 20.00 H +ATOM 5809 N ALA A 369 -14.307 -52.173 27.516 1.00 44.08 N +ATOM 5810 CA ALA A 369 -13.915 -53.080 28.583 1.00 45.75 C +ATOM 5811 C ALA A 369 -15.068 -53.352 29.533 1.00 44.38 C +ATOM 5812 O ALA A 369 -15.944 -52.512 29.743 1.00 47.47 O +ATOM 5813 CB ALA A 369 -12.724 -52.532 29.387 1.00 45.55 C +ATOM 5814 H ALA A 369 -14.969 -51.444 27.691 1.00 20.00 H +ATOM 5815 HA ALA A 369 -13.607 -54.038 28.139 1.00 20.00 H +ATOM 5816 HB1 ALA A 369 -12.459 -53.244 30.182 1.00 20.00 H +ATOM 5817 HB2 ALA A 369 -11.863 -52.393 28.717 1.00 20.00 H +ATOM 5818 HB3 ALA A 369 -12.999 -51.567 29.837 1.00 20.00 H +ATOM 5819 N VAL A 370 -15.044 -54.553 30.100 1.00 46.80 N +ATOM 5820 CA VAL A 370 -15.902 -54.952 31.206 1.00 48.41 C +ATOM 5821 C VAL A 370 -15.003 -55.615 32.240 1.00 49.65 C +ATOM 5822 O VAL A 370 -14.378 -56.642 31.952 1.00 52.56 O +ATOM 5823 CB VAL A 370 -17.015 -55.911 30.759 1.00 48.06 C +ATOM 5824 CG1 VAL A 370 -17.917 -56.245 31.924 1.00 43.89 C +ATOM 5825 CG2 VAL A 370 -17.814 -55.300 29.618 1.00 43.90 C +ATOM 5826 H VAL A 370 -14.395 -55.226 29.744 1.00 20.00 H +ATOM 5827 HA VAL A 370 -16.365 -54.062 31.657 1.00 20.00 H +ATOM 5828 HB VAL A 370 -16.547 -56.839 30.399 1.00 20.00 H +ATOM 5829 HG11 VAL A 370 -18.709 -56.932 31.590 1.00 20.00 H +ATOM 5830 HG12 VAL A 370 -17.327 -56.725 32.719 1.00 20.00 H +ATOM 5831 HG13 VAL A 370 -18.372 -55.322 32.312 1.00 20.00 H +ATOM 5832 HG21 VAL A 370 -18.606 -55.998 29.309 1.00 20.00 H +ATOM 5833 HG22 VAL A 370 -18.268 -54.355 29.953 1.00 20.00 H +ATOM 5834 HG23 VAL A 370 -17.146 -55.104 28.766 1.00 20.00 H +ATOM 5835 N GLU A 371 -14.916 -55.019 33.427 0.50 49.21 N +ATOM 5836 CA GLU A 371 -13.992 -55.482 34.452 0.50 49.52 C +ATOM 5837 C GLU A 371 -14.684 -55.536 35.805 0.50 49.05 C +ATOM 5838 O GLU A 371 -15.617 -54.776 36.080 0.50 46.70 O +ATOM 5839 CB GLU A 371 -12.753 -54.575 34.544 0.50 50.67 C +ATOM 5840 CG GLU A 371 -11.966 -54.443 33.246 0.50 54.24 C +ATOM 5841 CD GLU A 371 -11.194 -55.701 32.887 0.50 55.57 C +ATOM 5842 OE1 GLU A 371 -10.993 -56.559 33.772 0.50 59.58 O +ATOM 5843 OE2 GLU A 371 -10.782 -55.828 31.715 0.50 57.09 O +ATOM 5844 H GLU A 371 -15.502 -54.232 33.620 0.50 20.00 H +ATOM 5845 HA GLU A 371 -13.653 -56.497 34.198 0.50 20.00 H +ATOM 5846 HB2 GLU A 371 -13.084 -53.571 34.848 0.50 20.00 H +ATOM 5847 HB3 GLU A 371 -12.082 -54.988 35.312 0.50 20.00 H +ATOM 5848 HG2 GLU A 371 -12.670 -54.220 32.431 0.50 20.00 H +ATOM 5849 HG3 GLU A 371 -11.252 -53.613 33.352 0.50 20.00 H +ATOM 5850 N GLY A 372 -14.205 -56.442 36.652 1.00 49.57 N +ATOM 5851 CA GLY A 372 -14.724 -56.601 37.991 1.00 52.99 C +ATOM 5852 C GLY A 372 -13.958 -57.661 38.758 1.00 51.20 C +ATOM 5853 O GLY A 372 -13.096 -58.353 38.205 1.00 46.21 O +ATOM 5854 H GLY A 372 -13.458 -57.035 36.351 1.00 20.00 H +ATOM 5855 HA2 GLY A 372 -14.640 -55.642 38.524 1.00 20.00 H +ATOM 5856 HA3 GLY A 372 -15.782 -56.896 37.932 1.00 20.00 H +ATOM 5857 N PRO A 373 -14.259 -57.824 40.056 1.00 50.52 N +ATOM 5858 CA PRO A 373 -15.234 -57.087 40.860 1.00 50.76 C +ATOM 5859 C PRO A 373 -14.636 -55.878 41.569 1.00 57.01 C +ATOM 5860 O PRO A 373 -13.416 -55.716 41.612 1.00 55.93 O +ATOM 5861 CB PRO A 373 -15.682 -58.131 41.879 1.00 52.51 C +ATOM 5862 CG PRO A 373 -14.430 -58.916 42.128 1.00 50.75 C +ATOM 5863 CD PRO A 373 -13.697 -58.962 40.806 1.00 52.28 C +ATOM 5864 HA PRO A 373 -16.090 -56.774 40.244 1.00 20.00 H +ATOM 5865 HB2 PRO A 373 -16.040 -57.654 42.803 1.00 20.00 H +ATOM 5866 HB3 PRO A 373 -16.475 -58.772 41.466 1.00 20.00 H +ATOM 5867 HG2 PRO A 373 -13.812 -58.419 42.890 1.00 20.00 H +ATOM 5868 HG3 PRO A 373 -14.677 -59.934 42.463 1.00 20.00 H +ATOM 5869 HD2 PRO A 373 -12.614 -58.838 40.953 1.00 20.00 H +ATOM 5870 HD3 PRO A 373 -13.890 -59.910 40.283 1.00 20.00 H +ATOM 5871 N PHE A 374 -15.500 -55.037 42.130 1.00 59.32 N +ATOM 5872 CA PHE A 374 -15.075 -53.884 42.908 1.00 59.29 C +ATOM 5873 C PHE A 374 -15.898 -53.807 44.182 1.00 61.39 C +ATOM 5874 O PHE A 374 -17.117 -54.000 44.157 1.00 64.85 O +ATOM 5875 CB PHE A 374 -15.228 -52.581 42.119 1.00 57.48 C +ATOM 5876 CG PHE A 374 -14.502 -52.576 40.805 1.00 59.05 C +ATOM 5877 CD1 PHE A 374 -13.140 -52.316 40.745 1.00 52.20 C +ATOM 5878 CD2 PHE A 374 -15.184 -52.823 39.628 1.00 57.99 C +ATOM 5879 CE1 PHE A 374 -12.476 -52.309 39.532 1.00 55.38 C +ATOM 5880 CE2 PHE A 374 -14.527 -52.816 38.413 1.00 56.97 C +ATOM 5881 CZ PHE A 374 -13.173 -52.559 38.363 1.00 57.46 C +ATOM 5882 H PHE A 374 -16.479 -55.204 42.013 1.00 20.00 H +ATOM 5883 HA PHE A 374 -14.016 -54.000 43.183 1.00 20.00 H +ATOM 5884 HB2 PHE A 374 -16.298 -52.418 41.924 1.00 20.00 H +ATOM 5885 HB3 PHE A 374 -14.838 -51.756 42.733 1.00 20.00 H +ATOM 5886 HD1 PHE A 374 -12.593 -52.117 41.655 1.00 20.00 H +ATOM 5887 HD2 PHE A 374 -16.245 -53.024 39.659 1.00 20.00 H +ATOM 5888 HE1 PHE A 374 -11.415 -52.109 39.497 1.00 20.00 H +ATOM 5889 HE2 PHE A 374 -15.074 -53.012 37.502 1.00 20.00 H +ATOM 5890 HZ PHE A 374 -12.658 -52.553 37.414 1.00 20.00 H +ATOM 5891 N VAL A 375 -15.225 -53.525 45.294 1.00 56.93 N +ATOM 5892 CA VAL A 375 -15.911 -53.355 46.567 1.00 58.75 C +ATOM 5893 C VAL A 375 -16.670 -52.036 46.556 1.00 61.94 C +ATOM 5894 O VAL A 375 -16.073 -50.961 46.681 1.00 62.90 O +ATOM 5895 CB VAL A 375 -14.924 -53.415 47.747 1.00 57.42 C +ATOM 5896 CG1 VAL A 375 -15.620 -53.005 49.038 1.00 59.53 C +ATOM 5897 CG2 VAL A 375 -14.344 -54.812 47.877 1.00 51.92 C +ATOM 5898 H VAL A 375 -14.231 -53.428 45.255 1.00 20.00 H +ATOM 5899 HA VAL A 375 -16.640 -54.169 46.693 1.00 20.00 H +ATOM 5900 HB VAL A 375 -14.104 -52.709 47.550 1.00 20.00 H +ATOM 5901 HG11 VAL A 375 -14.904 -53.052 49.872 1.00 20.00 H +ATOM 5902 HG12 VAL A 375 -16.000 -51.978 48.939 1.00 20.00 H +ATOM 5903 HG13 VAL A 375 -16.459 -53.689 49.236 1.00 20.00 H +ATOM 5904 HG21 VAL A 375 -13.641 -54.841 48.723 1.00 20.00 H +ATOM 5905 HG22 VAL A 375 -15.157 -55.532 48.052 1.00 20.00 H +ATOM 5906 HG23 VAL A 375 -13.813 -55.076 46.951 1.00 20.00 H +ATOM 5907 N THR A 376 -17.987 -52.109 46.391 1.00 65.07 N +ATOM 5908 CA THR A 376 -18.854 -50.942 46.457 1.00 67.62 C +ATOM 5909 C THR A 376 -19.892 -51.189 47.539 1.00 70.15 C +ATOM 5910 O THR A 376 -20.718 -52.100 47.414 1.00 74.91 O +ATOM 5911 CB THR A 376 -19.533 -50.669 45.113 1.00 73.55 C +ATOM 5912 OG1 THR A 376 -18.562 -50.729 44.061 1.00 77.36 O +ATOM 5913 CG2 THR A 376 -20.170 -49.289 45.119 1.00 73.13 C +ATOM 5914 H THR A 376 -18.399 -53.003 46.214 1.00 20.00 H +ATOM 5915 HA THR A 376 -18.260 -50.058 46.734 1.00 20.00 H +ATOM 5916 HB THR A 376 -20.316 -51.424 44.950 1.00 20.00 H +ATOM 5917 HG1 THR A 376 -17.717 -50.450 44.393 1.00 20.00 H +ATOM 5918 HG21 THR A 376 -20.654 -49.104 44.149 1.00 20.00 H +ATOM 5919 HG22 THR A 376 -20.922 -49.236 45.920 1.00 20.00 H +ATOM 5920 HG23 THR A 376 -19.395 -48.528 45.292 1.00 20.00 H +ATOM 5921 N LEU A 377 -19.845 -50.387 48.595 1.00 70.50 N +ATOM 5922 CA LEU A 377 -20.760 -50.547 49.713 1.00 72.06 C +ATOM 5923 C LEU A 377 -21.992 -49.669 49.527 1.00 78.83 C +ATOM 5924 O LEU A 377 -21.977 -48.681 48.788 1.00 83.38 O +ATOM 5925 CB LEU A 377 -20.064 -50.202 51.030 1.00 69.44 C +ATOM 5926 CG LEU A 377 -18.655 -50.773 51.200 1.00 69.12 C +ATOM 5927 CD1 LEU A 377 -18.067 -50.385 52.551 1.00 72.28 C +ATOM 5928 CD2 LEU A 377 -18.656 -52.283 51.022 1.00 70.40 C +ATOM 5929 H LEU A 377 -19.164 -49.655 48.622 1.00 20.00 H +ATOM 5930 HA LEU A 377 -21.089 -51.596 49.763 1.00 20.00 H +ATOM 5931 HB2 LEU A 377 -19.996 -49.106 51.101 1.00 20.00 H +ATOM 5932 HB3 LEU A 377 -20.686 -50.585 51.852 1.00 20.00 H +ATOM 5933 HG LEU A 377 -18.018 -50.339 50.416 1.00 20.00 H +ATOM 5934 HD11 LEU A 377 -17.056 -50.808 52.646 1.00 20.00 H +ATOM 5935 HD12 LEU A 377 -18.015 -49.289 52.627 1.00 20.00 H +ATOM 5936 HD13 LEU A 377 -18.706 -50.778 53.355 1.00 20.00 H +ATOM 5937 HD21 LEU A 377 -17.633 -52.668 51.149 1.00 20.00 H +ATOM 5938 HD22 LEU A 377 -19.316 -52.740 51.774 1.00 20.00 H +ATOM 5939 HD23 LEU A 377 -19.020 -52.533 50.014 1.00 20.00 H +ATOM 5940 N ASP A 378 -23.067 -50.048 50.216 1.00 79.01 N +ATOM 5941 CA ASP A 378 -24.318 -49.289 50.224 1.00 80.11 C +ATOM 5942 C ASP A 378 -24.830 -49.058 48.805 1.00 82.25 C +ATOM 5943 O ASP A 378 -25.123 -47.932 48.396 1.00 87.32 O +ATOM 5944 CB ASP A 378 -24.146 -47.963 50.967 1.00 78.88 C +ATOM 5945 CG ASP A 378 -23.660 -48.153 52.390 1.00 80.37 C +ATOM 5946 OD1 ASP A 378 -24.281 -48.945 53.131 1.00 83.97 O +ATOM 5947 OD2 ASP A 378 -22.648 -47.523 52.764 1.00 84.50 O +ATOM 5948 H ASP A 378 -23.017 -50.890 50.753 1.00 20.00 H +ATOM 5949 HA ASP A 378 -25.078 -49.876 50.762 1.00 20.00 H +ATOM 5950 HB2 ASP A 378 -23.414 -47.347 50.424 1.00 20.00 H +ATOM 5951 HB3 ASP A 378 -25.116 -47.444 50.992 1.00 20.00 H +ATOM 5952 N MET A 379 -24.932 -50.150 48.045 1.00 76.42 N +ATOM 5953 CA MET A 379 -25.382 -50.049 46.663 1.00 76.42 C +ATOM 5954 C MET A 379 -26.896 -49.956 46.553 1.00 80.66 C +ATOM 5955 O MET A 379 -27.404 -49.355 45.600 1.00 83.51 O +ATOM 5956 CB MET A 379 -24.876 -51.240 45.850 1.00 72.23 C +ATOM 5957 CG MET A 379 -23.410 -51.167 45.469 1.00 67.37 C +ATOM 5958 SD MET A 379 -22.924 -52.542 44.408 1.00 62.51 S +ATOM 5959 CE MET A 379 -23.325 -53.938 45.456 1.00 65.01 C +ATOM 5960 H MET A 379 -24.698 -51.044 48.427 1.00 20.00 H +ATOM 5961 HA MET A 379 -24.956 -49.136 46.221 1.00 20.00 H +ATOM 5962 HB2 MET A 379 -25.031 -52.152 46.445 1.00 20.00 H +ATOM 5963 HB3 MET A 379 -25.468 -51.300 44.925 1.00 20.00 H +ATOM 5964 HG2 MET A 379 -23.228 -50.223 44.934 1.00 20.00 H +ATOM 5965 HG3 MET A 379 -22.802 -51.193 46.386 1.00 20.00 H +ATOM 5966 HE1 MET A 379 -22.771 -54.825 45.114 1.00 20.00 H +ATOM 5967 HE2 MET A 379 -23.045 -53.709 46.495 1.00 20.00 H +ATOM 5968 HE3 MET A 379 -24.405 -54.138 45.403 1.00 20.00 H +ATOM 5969 N GLU A 380 -27.632 -50.546 47.498 1.00 81.90 N +ATOM 5970 CA GLU A 380 -29.082 -50.381 47.493 1.00 78.32 C +ATOM 5971 C GLU A 380 -29.476 -48.928 47.714 1.00 77.91 C +ATOM 5972 O GLU A 380 -30.558 -48.506 47.288 1.00 85.12 O +ATOM 5973 CB GLU A 380 -29.727 -51.278 48.551 1.00 77.36 C +ATOM 5974 CG GLU A 380 -29.909 -52.727 48.123 0.00 74.02 C +ATOM 5975 CD GLU A 380 -28.598 -53.482 48.018 0.00 74.33 C +ATOM 5976 OE1 GLU A 380 -27.727 -53.297 48.895 0.00 75.26 O +ATOM 5977 OE2 GLU A 380 -28.437 -54.261 47.055 0.00 73.81 O +ATOM 5978 H GLU A 380 -27.192 -51.098 48.206 1.00 20.00 H +ATOM 5979 HA GLU A 380 -29.468 -50.690 46.510 1.00 20.00 H +ATOM 5980 HB2 GLU A 380 -29.092 -51.262 49.449 1.00 20.00 H +ATOM 5981 HB3 GLU A 380 -30.717 -50.865 48.795 1.00 20.00 H +ATOM 5982 HG2 GLU A 380 -30.547 -53.234 48.862 0.00 20.00 H +ATOM 5983 HG3 GLU A 380 -30.403 -52.743 47.140 0.00 20.00 H +ATOM 5984 N ASP A 381 -28.614 -48.147 48.369 1.00 74.17 N +ATOM 5985 CA ASP A 381 -28.905 -46.730 48.562 1.00 75.10 C +ATOM 5986 C ASP A 381 -28.968 -45.982 47.240 1.00 74.42 C +ATOM 5987 O ASP A 381 -29.650 -44.958 47.142 1.00 78.58 O +ATOM 5988 CB ASP A 381 -27.856 -46.086 49.467 1.00 77.23 C +ATOM 5989 CG ASP A 381 -27.969 -46.542 50.900 1.00 78.46 C +ATOM 5990 OD1 ASP A 381 -28.852 -47.377 51.186 1.00 90.72 O +ATOM 5991 OD2 ASP A 381 -27.175 -46.065 51.742 1.00 81.36 O +ATOM 5992 H ASP A 381 -27.765 -48.535 48.729 1.00 20.00 H +ATOM 5993 HA ASP A 381 -29.883 -46.633 49.055 1.00 20.00 H +ATOM 5994 HB2 ASP A 381 -26.856 -46.350 49.091 1.00 20.00 H +ATOM 5995 HB3 ASP A 381 -27.984 -44.994 49.433 1.00 20.00 H +ATOM 5996 N CYS A 382 -28.266 -46.472 46.217 1.00 67.68 N +ATOM 5997 CA CYS A 382 -28.214 -45.767 44.942 1.00 67.99 C +ATOM 5998 C CYS A 382 -29.539 -45.806 44.198 1.00 70.95 C +ATOM 5999 O CYS A 382 -29.714 -45.066 43.225 1.00 71.39 O +ATOM 6000 CB CYS A 382 -27.108 -46.352 44.065 1.00 64.20 C +ATOM 6001 SG CYS A 382 -25.468 -46.264 44.825 1.00 69.28 S +ATOM 6002 H CYS A 382 -27.770 -47.333 46.326 1.00 20.00 H +ATOM 6003 HA CYS A 382 -27.967 -44.713 45.134 1.00 20.00 H +ATOM 6004 HB2 CYS A 382 -27.343 -47.408 43.864 1.00 20.00 H +ATOM 6005 HB3 CYS A 382 -27.083 -45.795 43.117 1.00 20.00 H +ATOM 6006 N GLY A 383 -30.471 -46.653 44.628 1.00 73.16 N +ATOM 6007 CA GLY A 383 -31.746 -46.753 43.940 1.00 71.32 C +ATOM 6008 C GLY A 383 -32.705 -45.665 44.398 1.00 76.28 C +ATOM 6009 O GLY A 383 -32.873 -45.430 45.597 1.00 75.43 O +ATOM 6010 H GLY A 383 -30.292 -47.224 45.429 1.00 20.00 H +ATOM 6011 HA2 GLY A 383 -31.579 -46.651 42.858 1.00 20.00 H +ATOM 6012 HA3 GLY A 383 -32.192 -47.736 44.151 1.00 20.00 H +ATOM 6013 N TYR A 384 -33.357 -45.016 43.437 1.00 81.46 N +ATOM 6014 CA TYR A 384 -34.386 -44.035 43.766 1.00 84.09 C +ATOM 6015 C TYR A 384 -35.623 -44.792 44.224 1.00 81.17 C +ATOM 6016 O TYR A 384 -36.384 -45.320 43.412 1.00 75.34 O +ATOM 6017 CB TYR A 384 -34.687 -43.141 42.571 1.00 86.26 C +ATOM 6018 CG TYR A 384 -35.716 -42.086 42.890 1.00 89.03 C +ATOM 6019 CD1 TYR A 384 -35.429 -41.056 43.775 1.00 92.14 C +ATOM 6020 CD2 TYR A 384 -36.974 -42.122 42.315 1.00 88.82 C +ATOM 6021 CE1 TYR A 384 -36.367 -40.090 44.075 1.00 96.00 C +ATOM 6022 CE2 TYR A 384 -37.920 -41.161 42.606 1.00 91.13 C +ATOM 6023 CZ TYR A 384 -37.611 -40.146 43.488 1.00 94.49 C +ATOM 6024 OH TYR A 384 -38.544 -39.184 43.786 1.00 98.58 O +ATOM 6025 H TYR A 384 -33.140 -45.202 42.479 1.00 20.00 H +ATOM 6026 HA TYR A 384 -34.035 -43.403 44.596 1.00 20.00 H +ATOM 6027 HB2 TYR A 384 -33.757 -42.645 42.258 1.00 20.00 H +ATOM 6028 HB3 TYR A 384 -35.064 -43.766 41.748 1.00 20.00 H +ATOM 6029 HD1 TYR A 384 -34.454 -41.010 44.237 1.00 20.00 H +ATOM 6030 HD2 TYR A 384 -37.220 -42.917 41.626 1.00 20.00 H +ATOM 6031 HE1 TYR A 384 -36.127 -39.295 44.766 1.00 20.00 H +ATOM 6032 HE2 TYR A 384 -38.896 -41.203 42.146 1.00 20.00 H +ATOM 6033 HH TYR A 384 -38.415 -38.883 44.678 1.00 20.00 H +ATOM 6034 N ASN A 385 -35.826 -44.841 45.533 1.00 86.52 N +ATOM 6035 CA ASN A 385 -36.824 -45.713 46.134 1.00 88.18 C +ATOM 6036 C ASN A 385 -38.248 -45.275 45.812 1.00 88.96 C +ATOM 6037 O ASN A 385 -38.868 -45.804 44.877 1.00 91.58 O +ATOM 6038 CB ASN A 385 -36.601 -45.773 47.645 1.00 86.85 C +ATOM 6039 CG ASN A 385 -35.171 -46.142 47.997 1.00 86.88 C +ATOM 6040 OD1 ASN A 385 -34.762 -47.294 47.847 1.00 89.16 O +ATOM 6041 ND2 ASN A 385 -34.400 -45.162 48.454 1.00 90.91 N +ATOM 6042 OXT ASN A 385 -38.841 -44.300 46.553 0.00 99.99 O +ATOM 6043 H ASN A 385 -35.274 -44.258 46.129 1.00 20.00 H +ATOM 6044 HA ASN A 385 -36.688 -46.729 45.736 1.00 20.00 H +ATOM 6045 HB2 ASN A 385 -36.829 -44.787 48.077 1.00 20.00 H +ATOM 6046 HB3 ASN A 385 -37.278 -46.527 48.074 1.00 20.00 H +ATOM 6047 HD21 ASN A 385 -33.446 -45.346 48.692 1.00 20.00 H +ATOM 6048 HD22 ASN A 385 -34.773 -44.240 48.560 1.00 20.00 H +TER +ENDMDL diff --git a/openfe/tests/data/openmm_septop/bace1.sdf b/openfe/tests/data/openmm_septop/bace1.sdf new file mode 100755 index 000000000..9d4510e89 --- /dev/null +++ b/openfe/tests/data/openmm_septop/bace1.sdf @@ -0,0 +1,1919 @@ +lig_02 + -OEChem-01092314203D + + 37 39 0 1 0 0 0 0 0999 V2000 + -38.0090 -45.6315 19.1393 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9692 -45.1638 17.2217 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2004 -46.0152 17.8190 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7492 -44.0607 16.6787 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.6155 -44.8304 16.6899 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.6132 -45.2875 17.8281 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.2008 -45.1247 17.4552 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3683 -45.7328 19.5198 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6278 -45.0833 16.8841 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.3241 -45.4655 18.5293 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8478 -46.5876 22.5205 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9995 -44.7608 21.7798 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.7192 -44.0071 22.0925 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.7803 -46.0487 20.9633 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.0746 -46.8925 21.0561 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.9031 -45.8991 17.4539 N 0 0 0 0 0 0 0 0 0 0 0 0 + -34.4728 -43.8844 16.2757 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.7506 -46.9116 21.5963 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.0324 -47.5182 23.0029 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.3177 -44.8022 15.6093 F 0 0 0 0 0 0 0 0 0 0 0 0 + -41.6313 -45.4746 18.8190 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.6579 -44.9875 23.1728 S 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2332 -45.7867 19.8872 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.7339 -44.9813 16.4745 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4136 -46.8925 18.4228 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4263 -43.2813 16.3387 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.5860 -44.7195 16.3733 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5093 -44.9964 22.7248 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6767 -44.0894 21.2351 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1722 -43.7361 21.1858 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9602 -43.0733 22.6095 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2025 -47.2948 22.0687 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0496 -47.7469 20.3704 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9727 -46.3045 20.8405 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.7379 -47.8855 21.3012 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.0923 -48.4785 22.6827 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3461 -47.2767 23.7080 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 6 2 0 0 0 0 + 1 8 1 0 0 0 0 + 2 9 2 0 0 0 0 + 2 10 1 0 0 0 0 + 3 7 2 0 0 0 0 + 3 16 1 0 0 0 0 + 4 7 1 0 0 0 0 + 4 17 2 0 0 0 0 + 5 16 2 0 0 0 0 + 5 17 1 0 0 0 0 + 6 7 1 0 0 0 0 + 6 9 1 0 0 0 0 + 8 10 2 0 0 0 0 + 8 14 1 0 0 0 0 + 9 20 1 0 0 0 0 + 10 21 1 0 0 0 0 + 11 18 2 0 0 0 0 + 11 19 1 0 0 0 0 + 11 22 1 0 0 0 0 + 12 13 1 0 0 0 0 + 12 14 1 0 0 0 0 + 13 22 1 0 0 0 0 + 14 15 1 0 0 0 0 + 14 18 1 0 0 0 0 + 1 23 1 0 0 0 0 + 2 24 1 0 0 0 0 + 3 25 1 0 0 0 0 + 4 26 1 0 0 0 0 + 5 27 1 0 0 0 0 + 12 28 1 0 0 0 0 + 12 29 1 0 0 0 0 + 13 30 1 0 0 0 0 + 13 31 1 0 0 0 0 + 15 32 1 0 0 0 0 + 15 33 1 0 0 0 0 + 15 34 1 0 0 0 0 + 18 35 1 0 0 0 0 + 19 36 1 0 0 0 0 + 19 37 1 0 0 0 0 +M CHG 1 18 1 +M END + +> +6.62 + +> +10.1016/j.bmcl.2014.03.025 + +$$$$ +lig_03 + -OEChem-01092314203D + + 46 48 0 1 0 0 0 0 0999 V2000 + -40.2894 -45.1922 17.1437 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.8755 -43.5891 16.1635 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9570 -45.0093 16.7949 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.1870 -43.8214 16.5751 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6231 -45.6070 18.4292 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.8677 -44.4732 16.5294 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2912 -45.6509 19.0219 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4859 -45.8276 17.7124 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9293 -45.2091 17.7295 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5239 -44.9494 17.3479 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6354 -45.8804 19.3886 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.1639 -45.5934 17.3089 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1002 -44.3596 22.0710 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0437 -46.6125 22.3411 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.3449 -45.0979 21.6611 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0369 -46.3315 20.8006 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.2885 -47.2376 20.8042 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.1106 -44.6010 23.5395 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.3289 -47.5216 18.4188 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0880 -45.2300 22.6328 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9426 -47.1431 21.4084 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1105 -47.4728 22.9155 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9970 -43.1406 22.0100 O 0 0 0 0 0 0 0 0 0 0 0 0 + -33.0853 -46.3852 17.6003 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0705 -45.0057 16.4133 H 0 0 0 0 0 0 0 0 0 0 0 0 + -34.6443 -42.7210 15.5535 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.7301 -44.7001 15.7770 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.9496 -43.1044 16.2770 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.6775 -45.7047 18.6673 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.8488 -44.2845 16.2005 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5047 -45.7946 19.7601 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7323 -46.7091 18.2989 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8384 -45.3941 22.5962 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0197 -44.4036 21.1470 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4478 -47.6654 21.8018 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1729 -48.0777 20.1104 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.2018 -46.6939 20.5409 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6816 -45.3260 24.2321 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3260 -44.1288 22.9446 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.6224 -43.8468 24.1467 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.3727 -48.0301 18.5710 H 0 0 0 0 0 0 0 0 0 0 0 0 + -34.0058 -48.2259 17.9242 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.7103 -47.2260 19.4018 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8631 -48.1311 21.1746 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4025 -47.1613 23.5726 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.1131 -48.4642 22.6858 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 3 2 0 0 0 0 + 1 5 1 0 0 0 0 + 2 4 2 0 0 0 0 + 2 6 1 0 0 0 0 + 3 9 1 0 0 0 0 + 4 10 1 0 0 0 0 + 5 11 2 0 0 0 0 + 6 12 2 0 0 0 0 + 7 9 2 0 0 0 0 + 7 11 1 0 0 0 0 + 8 10 2 0 0 0 0 + 8 12 1 0 0 0 0 + 9 10 1 0 0 0 0 + 11 16 1 0 0 0 0 + 12 24 1 0 0 0 0 + 13 15 1 0 0 0 0 + 13 20 1 0 0 0 0 + 13 23 2 0 0 0 0 + 14 20 1 0 0 0 0 + 14 21 2 0 0 0 0 + 14 22 1 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 21 1 0 0 0 0 + 18 20 1 0 0 0 0 + 19 24 1 0 0 0 0 + 1 25 1 0 0 0 0 + 2 26 1 0 0 0 0 + 3 27 1 0 0 0 0 + 4 28 1 0 0 0 0 + 5 29 1 0 0 0 0 + 6 30 1 0 0 0 0 + 7 31 1 0 0 0 0 + 8 32 1 0 0 0 0 + 15 33 1 0 0 0 0 + 15 34 1 0 0 0 0 + 17 35 1 0 0 0 0 + 17 36 1 0 0 0 0 + 17 37 1 0 0 0 0 + 18 38 1 0 0 0 0 + 18 39 1 0 0 0 0 + 18 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 19 42 1 0 0 0 0 + 19 43 1 0 0 0 0 + 21 44 1 0 0 0 0 + 22 45 1 0 0 0 0 + 22 46 1 0 0 0 0 +M CHG 1 21 1 +M END + +> +6.57 + +> +10.1021/ml3001165 + +$$$$ +lig_04 + -OEChem-01092314203D + + 45 48 0 1 0 0 0 0 0999 V2000 + -40.0554 -44.9369 16.8653 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6879 -44.9360 16.5904 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5143 -45.3373 18.1202 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.8835 -44.2396 20.7233 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2382 -45.7361 18.8253 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.5043 -46.2378 17.9050 C 0 0 0 0 0 0 0 0 0 0 0 0 + -42.1548 -43.4338 21.8456 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.8128 -44.4326 16.3875 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.6967 -45.2709 16.6992 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.7793 -45.3356 17.5704 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3607 -45.3345 17.2854 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6057 -45.7369 19.1002 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.1453 -46.2120 17.6119 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8581 -45.0688 21.1270 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6541 -46.1701 22.5163 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6206 -45.3486 23.2769 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0989 -46.1665 20.4463 C 0 0 1 0 0 0 0 0 0 0 0 0 + -40.9476 -47.4293 20.3138 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.9070 -46.9824 17.8402 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.4982 -44.3773 16.0773 N 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3734 -43.7244 22.8891 N 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5995 -44.7181 22.4193 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8949 -46.5220 21.2540 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.5592 -46.5307 23.1735 N 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2865 -47.0805 18.2005 O 0 0 0 0 0 0 0 0 0 0 0 0 + -40.7628 -44.6260 16.1019 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.3457 -44.6209 15.6073 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.5816 -45.3348 18.3259 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.3653 -44.2230 19.7566 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5348 -46.0493 19.5941 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.8873 -46.9646 18.6179 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.8913 -42.6498 21.9472 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4274 -43.7013 15.8702 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.6463 -45.2054 16.4332 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1715 -45.9692 23.9916 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1024 -44.5489 23.8183 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3046 -47.7389 21.2947 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.3510 -48.2313 19.8820 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.8025 -47.2336 19.6685 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.3329 -47.7359 18.3850 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.5369 -45.9826 18.0808 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.8068 -47.1573 16.7664 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1812 -47.0979 20.8139 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4206 -46.2456 24.1379 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8486 -47.0954 22.7189 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 3 1 0 0 0 0 + 2 10 1 0 0 0 0 + 3 12 2 0 0 0 0 + 4 7 1 0 0 0 0 + 4 14 2 0 0 0 0 + 5 10 2 0 0 0 0 + 5 12 1 0 0 0 0 + 6 11 2 0 0 0 0 + 6 13 1 0 0 0 0 + 7 21 2 0 0 0 0 + 8 11 1 0 0 0 0 + 8 20 2 0 0 0 0 + 9 13 2 0 0 0 0 + 9 20 1 0 0 0 0 + 10 11 1 0 0 0 0 + 12 17 1 0 0 0 0 + 13 25 1 0 0 0 0 + 14 17 1 0 0 0 0 + 14 22 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 23 2 0 0 0 0 + 15 24 1 0 0 0 0 + 16 22 1 0 0 0 0 + 17 18 1 0 0 0 0 + 17 23 1 0 0 0 0 + 19 25 1 0 0 0 0 + 21 22 1 0 0 0 0 + 1 26 1 0 0 0 0 + 2 27 1 0 0 0 0 + 3 28 1 0 0 0 0 + 4 29 1 0 0 0 0 + 5 30 1 0 0 0 0 + 6 31 1 0 0 0 0 + 7 32 1 0 0 0 0 + 8 33 1 0 0 0 0 + 9 34 1 0 0 0 0 + 16 35 1 0 0 0 0 + 16 36 1 0 0 0 0 + 18 37 1 0 0 0 0 + 18 38 1 0 0 0 0 + 18 39 1 0 0 0 0 + 19 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 19 42 1 0 0 0 0 + 23 43 1 0 0 0 0 + 24 44 1 0 0 0 0 + 24 45 1 0 0 0 0 +M CHG 1 23 1 +M END + +> +6.96 + +> +4,7-Dihydropyrazolo[1,5-a]pyrazin-6-yl-amine derivatives as β-secretase inhibitors and their preparation and use for the treatment of diseases by: Trabanco-Suarez, Andres Avelino; Tresadern, Gary John; Delgado-Jimenez, FranciscaWorld Intellectual Property Organization, WO2012038438 A1 2012-03-29 | Language: English, Database: CAplus + +$$$$ +lig_05 + -OEChem-01092314203D + + 39 41 0 1 0 0 0 0 0999 V2000 + -40.2181 -45.1963 17.2016 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8778 -45.0934 16.8387 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5708 -45.4986 18.5168 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2434 -45.5906 19.1072 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.9933 -44.0766 16.6239 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4865 -46.0919 17.8440 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.7112 -44.8910 16.7092 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8618 -45.2818 17.7857 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4396 -45.1507 17.4150 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5924 -45.7182 19.4967 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.6452 -43.9548 16.2770 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.1401 -45.9569 17.4940 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0378 -46.6230 22.4156 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9699 -45.2314 22.9120 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9744 -44.7401 21.7887 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9644 -46.0257 20.9503 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.3198 -46.7392 21.1008 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9636 -46.9617 21.5216 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1520 -47.4731 22.9162 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6346 -44.3200 22.0359 O 0 0 0 0 0 0 0 0 0 0 0 0 + -34.1345 -42.6300 15.3050 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9985 -47.1237 18.0388 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + -40.9924 -45.0365 16.4568 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6378 -44.8633 15.8029 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.6286 -45.5509 18.7554 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4620 -45.7157 19.8544 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7003 -43.3221 16.2825 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7962 -46.9421 18.4497 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.6633 -44.7912 16.4383 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.4137 -45.1594 23.9116 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.9279 -44.9028 22.9859 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4939 -43.9282 21.2673 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4816 -44.8828 22.7514 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4710 -47.0713 22.1351 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3715 -47.6323 20.4672 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.1610 -46.0864 20.8446 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9629 -47.9314 21.2161 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4668 -47.1726 23.6007 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.1483 -48.4436 22.6228 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 3 1 0 0 0 0 + 2 8 1 0 0 0 0 + 3 10 2 0 0 0 0 + 4 8 2 0 0 0 0 + 4 10 1 0 0 0 0 + 5 9 2 0 0 0 0 + 5 11 1 0 0 0 0 + 6 9 1 0 0 0 0 + 6 12 2 0 0 0 0 + 7 11 2 0 0 0 0 + 7 12 1 0 0 0 0 + 8 9 1 0 0 0 0 + 10 16 1 0 0 0 0 + 11 21 1 0 0 0 0 + 12 22 1 0 0 0 0 + 13 14 1 0 0 0 0 + 13 18 2 0 0 0 0 + 13 19 1 0 0 0 0 + 14 20 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 20 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 + 1 23 1 0 0 0 0 + 2 24 1 0 0 0 0 + 3 25 1 0 0 0 0 + 4 26 1 0 0 0 0 + 5 27 1 0 0 0 0 + 6 28 1 0 0 0 0 + 7 29 1 0 0 0 0 + 14 30 1 0 0 0 0 + 14 31 1 0 0 0 0 + 15 32 1 0 0 0 0 + 15 33 1 0 0 0 0 + 17 34 1 0 0 0 0 + 17 35 1 0 0 0 0 + 17 36 1 0 0 0 0 + 18 37 1 0 0 0 0 + 19 38 1 0 0 0 0 + 19 39 1 0 0 0 0 +M CHG 1 18 1 +M END + +> +5.95 + +> +Preparation of 5,6-dihydro-2H-[1,4]oxazin-3-yl-amine derivatives useful as therapeutic inhibitors of β-secretase (BACE) By: Trabanco-Suarez, Andres Avelino; Rombouts, Frederik Jan Rita; Tresadern, Gary John; Van Gool, Michiel Luc Maria; Macdonald, Gregor James; Martinez Lamenca, Carolina; Gijsen, Henricus Jacobus MariaWorld Intellectual Property Organization, WO2011154431 A1 2011-12-15 | Language: English, Database: CAplus + +$$$$ +lig_06 + -OEChem-01092314203D + + 42 45 0 1 0 0 0 0 0999 V2000 + -40.1582 -45.2247 17.3301 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8476 -45.0908 16.8719 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4148 -45.5005 18.6747 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0695 -43.4695 21.8948 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0475 -45.5261 19.0957 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.9935 -43.9743 16.5045 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.3738 -45.9720 17.7035 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.6773 -44.6924 16.5416 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1683 -43.0249 22.8811 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.7656 -45.2353 17.7493 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3726 -45.0662 17.3035 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3631 -45.6557 19.5850 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.6591 -43.7948 16.1324 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.0436 -45.7796 17.3281 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9489 -44.8434 21.9051 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0031 -47.4752 22.3314 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.6222 -46.4306 23.3018 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5657 -45.9324 21.0767 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.0298 -46.1329 21.5004 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5357 -44.0289 23.4917 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0401 -45.1146 22.8842 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8828 -47.2312 21.3602 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.4123 -48.6490 22.5098 N 0 0 0 0 0 0 0 0 0 0 0 0 + -34.2217 -42.4379 15.1689 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + -32.8446 -46.8946 17.8559 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + -40.9850 -45.1068 16.6352 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6846 -44.8741 15.8185 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4516 -45.5836 18.9854 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.7000 -42.8763 21.2486 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2189 -45.6312 19.7964 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7385 -43.2462 16.1884 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6344 -46.8326 18.3176 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.6397 -44.5444 16.2548 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9431 -42.0122 23.1803 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0888 -46.6234 24.2737 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5336 -46.4012 23.4256 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1022 -46.3779 22.5665 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4949 -46.9610 20.9521 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.6316 -45.2318 21.3323 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0948 -48.0176 20.7508 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7472 -48.7827 23.2641 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.6101 -49.4276 21.8925 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 3 1 0 0 0 0 + 2 10 1 0 0 0 0 + 3 12 2 0 0 0 0 + 4 9 1 0 0 0 0 + 4 15 2 0 0 0 0 + 5 10 2 0 0 0 0 + 5 12 1 0 0 0 0 + 6 11 2 0 0 0 0 + 6 13 1 0 0 0 0 + 7 11 1 0 0 0 0 + 7 14 2 0 0 0 0 + 8 13 2 0 0 0 0 + 8 14 1 0 0 0 0 + 9 20 2 0 0 0 0 + 10 11 1 0 0 0 0 + 12 18 1 0 0 0 0 + 13 24 1 0 0 0 0 + 14 25 1 0 0 0 0 + 15 18 1 0 0 0 0 + 15 21 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 22 2 0 0 0 0 + 16 23 1 0 0 0 0 + 17 21 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 22 1 0 0 0 0 + 20 21 1 0 0 0 0 + 1 26 1 0 0 0 0 + 2 27 1 0 0 0 0 + 3 28 1 0 0 0 0 + 4 29 1 0 0 0 0 + 5 30 1 0 0 0 0 + 6 31 1 0 0 0 0 + 7 32 1 0 0 0 0 + 8 33 1 0 0 0 0 + 9 34 1 0 0 0 0 + 17 35 1 0 0 0 0 + 17 36 1 0 0 0 0 + 19 37 1 0 0 0 0 + 19 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 22 40 1 0 0 0 0 + 23 41 1 0 0 0 0 + 23 42 1 0 0 0 0 +M CHG 1 22 1 +M END + +> +6.83 + +> +4,7-Dihydropyrazolo[1,5-a]pyrazin-6-yl-amine derivatives as β-secretase inhibitors and their preparation and use for the treatment of diseases by: Trabanco-Suarez, Andres Avelino; Tresadern, Gary John; Delgado-Jimenez, Francisca^?World Intellectual Property Organization, WO2012038438 A1 2012-03-29 | Language: English, Database: CAplus + +$$$$ +lig_07 + -OEChem-01092314203D + + 42 45 0 1 0 0 0 0 0999 V2000 + -40.1853 -45.2236 17.1561 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8417 -45.1130 16.8105 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5502 -45.5374 18.4642 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2297 -45.6216 19.0844 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.9620 -44.0919 16.6242 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4608 -46.1044 17.8512 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.6802 -44.9041 16.7249 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.0778 -43.7889 23.6837 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1753 -43.3854 22.9550 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8361 -45.3033 17.7689 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4116 -45.1659 17.4132 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5815 -45.7580 19.4543 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.6123 -43.9694 16.2856 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.1130 -45.9688 17.5090 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8508 -45.5605 22.8009 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0693 -46.9005 22.3437 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9150 -44.7397 21.7307 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9669 -46.0516 20.9058 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.3726 -46.6701 21.0588 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8800 -45.1459 23.5836 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6705 -44.5382 22.4340 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0464 -47.1015 21.4574 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.2773 -47.8522 22.8168 N 0 0 0 0 0 0 0 0 0 0 0 0 + -34.0980 -42.6468 15.3130 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9756 -47.1360 18.0609 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + -40.9522 -45.0593 16.4048 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.5911 -44.8754 15.7789 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.6107 -45.5921 18.6898 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4584 -45.7453 19.8419 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6678 -43.3394 16.2764 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7737 -46.9540 18.4559 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.6311 -44.8044 16.4592 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4222 -43.1717 24.2795 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6360 -42.4214 22.7956 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0970 -43.8560 21.1068 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6803 -44.7464 22.5168 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.5396 -46.9939 22.0935 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4909 -47.5555 20.4233 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.1663 -45.9576 20.8102 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1630 -48.0587 21.1347 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5485 -47.6376 23.4895 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3883 -48.8136 22.5159 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 3 1 0 0 0 0 + 2 10 1 0 0 0 0 + 3 12 2 0 0 0 0 + 4 10 2 0 0 0 0 + 4 12 1 0 0 0 0 + 5 11 2 0 0 0 0 + 5 13 1 0 0 0 0 + 6 11 1 0 0 0 0 + 6 14 2 0 0 0 0 + 7 13 2 0 0 0 0 + 7 14 1 0 0 0 0 + 8 9 2 0 0 0 0 + 8 20 1 0 0 0 0 + 9 21 1 0 0 0 0 + 10 11 1 0 0 0 0 + 12 18 1 0 0 0 0 + 13 24 1 0 0 0 0 + 14 25 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 20 2 0 0 0 0 + 15 21 1 0 0 0 0 + 16 22 2 0 0 0 0 + 16 23 1 0 0 0 0 + 17 18 1 0 0 0 0 + 17 21 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 22 1 0 0 0 0 + 1 26 1 0 0 0 0 + 2 27 1 0 0 0 0 + 3 28 1 0 0 0 0 + 4 29 1 0 0 0 0 + 5 30 1 0 0 0 0 + 6 31 1 0 0 0 0 + 7 32 1 0 0 0 0 + 8 33 1 0 0 0 0 + 9 34 1 0 0 0 0 + 17 35 1 0 0 0 0 + 17 36 1 0 0 0 0 + 19 37 1 0 0 0 0 + 19 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 22 40 1 0 0 0 0 + 23 41 1 0 0 0 0 + 23 42 1 0 0 0 0 +M CHG 1 22 1 +M END + +> +5.67 + +> +Preparation of 5,6-dihydro-imidazo[1,2-a]pyrazin-8-ylamine derivatives as beta-secretase inhibitors By: Trabanco-Suarez, Andres Avelino; Delgado-Jimenez, Francisca; Vega Ramiro, Juan Antonio; Tresadern, Gary John; Gijsen, Henricus Jacobus Maria; Oehlrich, DanielWorld Intellectual Property Organization, WO2012085038 A1 2012-06-28 + +$$$$ +lig_11 + -OEChem-01092314203D + + 47 50 0 1 0 0 0 0 0999 V2000 + -34.2682 -44.3482 16.0497 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.4070 -45.0810 17.2283 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.3941 -43.8099 15.4264 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6717 -45.2757 17.7837 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6587 -44.0046 15.9817 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2297 -44.9930 16.9141 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4897 -45.1962 17.4719 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2505 -45.0769 19.1185 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7975 -44.7375 17.1604 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1091 -44.9395 17.7369 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5158 -45.2685 19.6992 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6319 -45.3496 18.8552 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9160 -44.2713 21.9588 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9818 -46.2798 22.6098 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1401 -45.3790 21.6194 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6728 -45.3888 21.1918 C 0 0 1 0 0 0 0 0 0 0 0 0 + -42.0563 -46.1036 20.6195 C 0 0 0 0 0 0 0 0 0 0 0 0 + -43.5180 -45.8439 21.0202 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.8376 -47.6230 20.5740 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.0447 -44.1736 23.6727 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9335 -44.9184 22.7887 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9715 -46.6070 21.6804 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1892 -47.2122 23.2297 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1039 -43.0681 21.8770 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9123 -45.5627 19.2947 O 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2833 -44.1952 15.6184 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.5304 -45.4987 17.7146 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2866 -43.2380 14.5094 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7633 -45.8492 18.7031 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5271 -43.5785 15.4850 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1382 -44.8833 15.8362 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3595 -45.2460 16.8218 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3680 -45.0303 19.7543 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2514 -45.8035 22.6256 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4736 -44.3332 21.6868 H 0 0 0 0 0 0 0 0 0 0 0 0 + -44.1766 -46.3502 20.3219 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7121 -44.7765 20.9963 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.6877 -46.2235 22.0227 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.5161 -48.0636 19.8496 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0309 -48.0447 21.5559 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8119 -47.8313 20.2846 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5171 -44.0627 24.6599 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0945 -44.7174 23.7801 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8515 -43.1788 23.2450 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1602 -47.5668 21.4033 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5059 -46.8927 23.8758 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3295 -48.1701 23.0082 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 3 1 0 0 0 0 + 2 4 1 0 0 0 0 + 3 5 2 0 0 0 0 + 4 9 2 0 0 0 0 + 5 9 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 10 1 0 0 0 0 + 7 12 1 0 0 0 0 + 8 10 2 0 0 0 0 + 8 11 1 0 0 0 0 + 9 10 1 0 0 0 0 + 11 12 2 0 0 0 0 + 11 16 1 0 0 0 0 + 12 25 1 0 0 0 0 + 13 16 1 0 0 0 0 + 13 21 1 0 0 0 0 + 13 24 2 0 0 0 0 + 14 21 1 0 0 0 0 + 14 22 2 0 0 0 0 + 14 23 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 17 1 0 0 0 0 + 16 22 1 0 0 0 0 + 17 18 1 0 0 0 0 + 17 19 1 0 0 0 0 + 17 25 1 0 0 0 0 + 20 21 1 0 0 0 0 + 1 26 1 0 0 0 0 + 2 27 1 0 0 0 0 + 3 28 1 0 0 0 0 + 4 29 1 0 0 0 0 + 5 30 1 0 0 0 0 + 6 31 1 0 0 0 0 + 7 32 1 0 0 0 0 + 8 33 1 0 0 0 0 + 15 34 1 0 0 0 0 + 15 35 1 0 0 0 0 + 18 36 1 0 0 0 0 + 18 37 1 0 0 0 0 + 18 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 19 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 20 42 1 0 0 0 0 + 20 43 1 0 0 0 0 + 20 44 1 0 0 0 0 + 22 45 1 0 0 0 0 + 23 46 1 0 0 0 0 + 23 47 1 0 0 0 0 +M CHG 1 22 1 +M END + +> +455 + +> +10.1021/jm4002154 + +$$$$ +lig_13 + -OEChem-01092314203D + + 48 51 0 1 0 0 0 0 0999 V2000 + -33.2652 -45.8563 17.7205 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.3048 -43.5774 15.6028 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.2044 -44.2521 16.1255 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5843 -43.8109 16.1158 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2916 -44.9925 16.9342 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5536 -45.1949 17.4992 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6691 -45.4106 17.6625 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.3103 -45.1263 19.1185 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.3860 -45.1685 17.1591 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7949 -44.7298 17.1593 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1393 -44.9556 17.7322 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5741 -45.3226 19.7058 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6942 -45.3723 18.8764 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9089 -44.3599 21.9429 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9597 -46.3841 22.5163 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1683 -45.4225 21.6511 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.7113 -45.4587 21.1987 C 0 0 1 0 0 0 0 0 0 0 0 0 + -42.1196 -46.1030 20.6517 C 0 0 0 0 0 0 0 0 0 0 0 0 + -43.5659 -45.7880 21.0665 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9580 -47.6288 20.5967 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8757 -44.2879 23.4548 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.3619 -46.4147 18.1879 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8740 -45.0239 22.6896 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0202 -46.6925 21.6603 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1414 -47.3306 23.0784 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0907 -43.1545 21.8858 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9721 -45.5649 19.3259 O 0 0 0 0 0 0 0 0 0 0 0 0 + -35.1681 -42.8587 14.7998 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2151 -44.0515 15.7227 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4143 -43.2460 15.6963 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2254 -44.8722 15.8552 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4267 -45.2195 16.8522 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7883 -46.1407 18.4626 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4379 -45.0828 19.7693 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2733 -45.8652 22.6502 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4733 -44.3708 21.7473 H 0 0 0 0 0 0 0 0 0 0 0 0 + -44.2797 -46.2135 20.3518 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7432 -44.7059 21.0662 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7957 -46.1780 22.0636 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.7238 -48.0740 19.9503 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0466 -48.0773 21.5915 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.9999 -47.9272 20.1619 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3716 -43.7540 24.2692 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.1260 -44.9651 23.8687 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3772 -43.5731 22.7933 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2557 -47.6489 21.4089 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3777 -47.0801 23.7001 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2812 -48.3199 22.8878 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 9 1 0 0 0 0 + 1 22 3 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 3 9 1 0 0 0 0 + 4 10 2 0 0 0 0 + 5 6 2 0 0 0 0 + 5 11 1 0 0 0 0 + 6 13 1 0 0 0 0 + 7 9 2 0 0 0 0 + 7 10 1 0 0 0 0 + 8 11 2 0 0 0 0 + 8 12 1 0 0 0 0 + 10 11 1 0 0 0 0 + 12 13 2 0 0 0 0 + 12 17 1 0 0 0 0 + 13 27 1 0 0 0 0 + 14 17 1 0 0 0 0 + 14 23 1 0 0 0 0 + 14 26 2 0 0 0 0 + 15 23 1 0 0 0 0 + 15 24 2 0 0 0 0 + 15 25 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 + 17 24 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 20 1 0 0 0 0 + 18 27 1 0 0 0 0 + 21 23 1 0 0 0 0 + 2 28 1 0 0 0 0 + 3 29 1 0 0 0 0 + 4 30 1 0 0 0 0 + 5 31 1 0 0 0 0 + 6 32 1 0 0 0 0 + 7 33 1 0 0 0 0 + 8 34 1 0 0 0 0 + 16 35 1 0 0 0 0 + 16 36 1 0 0 0 0 + 19 37 1 0 0 0 0 + 19 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 20 40 1 0 0 0 0 + 20 41 1 0 0 0 0 + 20 42 1 0 0 0 0 + 21 43 1 0 0 0 0 + 21 44 1 0 0 0 0 + 21 45 1 0 0 0 0 + 24 46 1 0 0 0 0 + 25 47 1 0 0 0 0 + 25 48 1 0 0 0 0 +M CHG 1 24 1 +M END + +> +94 + +> +10.1021/jm4002154 + +$$$$ +lig_16 + -OEChem-01092314203D + + 51 54 0 1 0 0 0 0 0999 V2000 + -39.2331 -44.9942 16.9142 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6629 -44.0057 15.9801 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6745 -45.2767 17.7813 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4927 -45.1974 17.4728 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.3988 -43.8111 15.4237 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.4103 -45.0822 17.2249 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2526 -45.0777 19.1181 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8008 -44.7385 17.1590 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1120 -44.9405 17.7363 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5175 -45.2692 19.6995 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6341 -45.3506 18.8562 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.2725 -44.3493 16.0460 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9165 -44.2717 21.9586 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9817 -46.2800 22.6094 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1407 -45.3796 21.6207 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6736 -45.3894 21.1922 C 0 0 1 0 0 0 0 0 0 0 0 0 + -42.0574 -46.1044 20.6214 C 0 0 0 0 0 0 0 0 0 0 0 0 + -43.5188 -45.8448 21.0229 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.8387 -47.6238 20.5761 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.0441 -44.1736 23.6714 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.9306 -44.7375 16.1904 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9334 -44.9186 22.7880 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9719 -46.6074 21.6806 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1886 -47.2122 23.2290 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1045 -43.0685 21.8767 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9143 -45.5637 19.2965 O 0 0 0 0 0 0 0 0 0 0 0 0 + -33.0393 -44.1598 15.5026 O 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1422 -44.8846 15.8363 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5314 -43.5799 15.4833 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7654 -45.8504 18.7006 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3629 -45.2474 16.8232 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2978 -43.2395 14.5051 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.5364 -45.5040 17.7139 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3697 -45.0309 19.7533 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2514 -45.8039 22.6270 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4742 -44.3338 21.6881 H 0 0 0 0 0 0 0 0 0 0 0 0 + -44.1779 -46.3513 20.3251 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7131 -44.7774 20.9990 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.6880 -46.2242 22.0256 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.5176 -48.0646 19.8521 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0313 -48.0454 21.5581 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8130 -47.8321 20.2860 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.5160 -44.0625 24.6589 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0938 -44.7172 23.7783 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8513 -43.1788 23.2434 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.0079 -44.5111 15.6507 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.0680 -45.8195 16.2609 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.8756 -44.3130 17.1957 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1608 -47.5673 21.4038 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5050 -46.8926 23.8746 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3291 -48.1702 23.0077 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 4 2 0 0 0 0 + 1 9 1 0 0 0 0 + 2 5 2 0 0 0 0 + 2 8 1 0 0 0 0 + 3 6 1 0 0 0 0 + 3 8 2 0 0 0 0 + 4 11 1 0 0 0 0 + 5 12 1 0 0 0 0 + 6 12 2 0 0 0 0 + 7 9 2 0 0 0 0 + 7 10 1 0 0 0 0 + 8 9 1 0 0 0 0 + 10 11 2 0 0 0 0 + 10 16 1 0 0 0 0 + 11 26 1 0 0 0 0 + 12 27 1 0 0 0 0 + 13 16 1 0 0 0 0 + 13 22 1 0 0 0 0 + 13 25 2 0 0 0 0 + 14 22 1 0 0 0 0 + 14 23 2 0 0 0 0 + 14 24 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 17 1 0 0 0 0 + 16 23 1 0 0 0 0 + 17 18 1 0 0 0 0 + 17 19 1 0 0 0 0 + 17 26 1 0 0 0 0 + 20 22 1 0 0 0 0 + 21 27 1 0 0 0 0 + 1 28 1 0 0 0 0 + 2 29 1 0 0 0 0 + 3 30 1 0 0 0 0 + 4 31 1 0 0 0 0 + 5 32 1 0 0 0 0 + 6 33 1 0 0 0 0 + 7 34 1 0 0 0 0 + 15 35 1 0 0 0 0 + 15 36 1 0 0 0 0 + 18 37 1 0 0 0 0 + 18 38 1 0 0 0 0 + 18 39 1 0 0 0 0 + 19 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 19 42 1 0 0 0 0 + 20 43 1 0 0 0 0 + 20 44 1 0 0 0 0 + 20 45 1 0 0 0 0 + 21 46 1 0 0 0 0 + 21 47 1 0 0 0 0 + 21 48 1 0 0 0 0 + 23 49 1 0 0 0 0 + 24 50 1 0 0 0 0 + 24 51 1 0 0 0 0 +M CHG 1 23 1 +M END + +> +7197 + +> +10.1021/jm4002154 + +$$$$ +lig_1a + -OEChem-01092314203D + + 37 39 0 1 0 0 0 0 0999 V2000 + -40.5651 -45.2426 17.4631 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3154 -45.0579 16.8765 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2913 -45.1190 19.0612 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5457 -45.2917 19.6705 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6797 -45.3754 18.8510 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1775 -45.0023 17.6751 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8910 -44.2680 21.9028 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9598 -46.2749 22.5630 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1306 -45.3615 21.6253 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6726 -45.3897 21.1676 C 0 0 1 0 0 0 0 0 0 0 0 0 + -42.0733 -46.0923 20.6549 C 0 0 0 0 0 0 0 0 0 0 0 0 + -43.5241 -45.8148 21.0820 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.8679 -47.6141 20.6266 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.9837 -44.1619 23.5762 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8967 -44.9116 22.7214 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9712 -46.6068 21.6589 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1621 -47.2051 23.1796 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0708 -43.0645 21.8078 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9525 -45.5714 19.3199 O 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4780 -44.7615 16.8844 Br 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4485 -45.2942 16.8316 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2459 -44.9641 15.7961 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3967 -45.0704 19.6788 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2246 -45.7700 22.6398 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4540 -44.3120 21.6836 H 0 0 0 0 0 0 0 0 0 0 0 0 + -44.2014 -46.3253 20.4048 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7102 -44.7461 21.0470 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.6763 -46.1787 22.0932 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.5649 -48.0590 19.9227 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0442 -48.0201 21.6182 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8501 -47.8349 20.3190 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4346 -44.0331 24.5712 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0359 -44.7121 23.6716 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7914 -43.1749 23.1303 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1736 -47.5686 21.3995 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4630 -46.8823 23.8068 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3148 -48.1647 22.9746 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 5 1 0 0 0 0 + 2 6 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 2 0 0 0 0 + 4 5 2 0 0 0 0 + 4 10 1 0 0 0 0 + 5 19 1 0 0 0 0 + 6 20 1 0 0 0 0 + 7 10 1 0 0 0 0 + 7 15 1 0 0 0 0 + 7 18 2 0 0 0 0 + 8 15 1 0 0 0 0 + 8 16 2 0 0 0 0 + 8 17 1 0 0 0 0 + 9 10 1 0 0 0 0 + 9 11 1 0 0 0 0 + 10 16 1 0 0 0 0 + 11 12 1 0 0 0 0 + 11 13 1 0 0 0 0 + 11 19 1 0 0 0 0 + 14 15 1 0 0 0 0 + 1 21 1 0 0 0 0 + 2 22 1 0 0 0 0 + 3 23 1 0 0 0 0 + 9 24 1 0 0 0 0 + 9 25 1 0 0 0 0 + 12 26 1 0 0 0 0 + 12 27 1 0 0 0 0 + 12 28 1 0 0 0 0 + 13 29 1 0 0 0 0 + 13 30 1 0 0 0 0 + 13 31 1 0 0 0 0 + 14 32 1 0 0 0 0 + 14 33 1 0 0 0 0 + 14 34 1 0 0 0 0 + 16 35 1 0 0 0 0 + 17 36 1 0 0 0 0 + 17 37 1 0 0 0 0 +M CHG 1 16 1 +M END + +> +36830 + +> +10.1021/jm4002154 + +$$$$ +lig_32 + -OEChem-01092314203D + + 46 49 0 1 0 0 0 0 0999 V2000 + -34.3135 -45.2077 17.1876 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.1973 -44.2951 16.1500 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1764 -45.0011 16.9541 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4542 -45.1821 17.4918 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.5656 -45.4789 17.7323 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2381 -45.1951 19.1528 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.3543 -43.6914 15.6932 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0382 -45.0149 17.7732 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5193 -45.3544 19.7145 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6249 -45.3728 18.8641 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6860 -44.8194 17.2216 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8939 -44.3714 21.9499 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9558 -46.3933 22.5507 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1544 -45.4253 21.6300 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6895 -45.4757 21.2056 C 0 0 1 0 0 0 0 0 0 0 0 0 + -42.0923 -46.0925 20.6093 C 0 0 0 0 0 0 0 0 0 0 0 0 + -43.5439 -45.7704 21.0003 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9410 -47.6194 20.5506 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8680 -44.2891 23.4685 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5864 -43.9319 16.1983 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8638 -45.0312 22.7065 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0139 -46.7075 21.6935 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1447 -47.3366 23.1280 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0749 -43.1663 21.8840 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9143 -45.5454 19.2901 O 0 0 0 0 0 0 0 0 0 0 0 0 + -33.4324 -45.7079 17.5781 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2326 -44.0649 15.7136 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0846 -44.8594 15.8793 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3151 -45.1774 16.8279 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6446 -46.1977 18.5425 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3767 -45.1829 19.8192 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.3216 -42.9701 14.8835 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2830 -45.8704 22.6252 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4515 -44.3711 21.7241 H 0 0 0 0 0 0 0 0 0 0 0 0 + -44.2483 -46.1902 20.2729 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7158 -44.6876 21.0018 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7926 -46.1628 21.9919 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.6909 -48.0552 19.8797 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0619 -48.0718 21.5404 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.9725 -47.9242 20.1444 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3730 -43.6990 24.2373 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.1567 -44.9674 23.9434 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3255 -43.6246 22.7896 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2564 -47.6658 21.4559 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3797 -47.0817 23.7462 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2893 -48.3276 22.9503 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 5 1 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 10 1 0 0 0 0 + 5 11 2 0 0 0 0 + 6 8 2 0 0 0 0 + 6 9 1 0 0 0 0 + 7 20 2 0 0 0 0 + 8 11 1 0 0 0 0 + 9 10 2 0 0 0 0 + 9 15 1 0 0 0 0 + 10 25 1 0 0 0 0 + 11 20 1 0 0 0 0 + 12 15 1 0 0 0 0 + 12 21 1 0 0 0 0 + 12 24 2 0 0 0 0 + 13 21 1 0 0 0 0 + 13 22 2 0 0 0 0 + 13 23 1 0 0 0 0 + 14 15 1 0 0 0 0 + 14 16 1 0 0 0 0 + 15 22 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 + 16 25 1 0 0 0 0 + 19 21 1 0 0 0 0 + 1 26 1 0 0 0 0 + 2 27 1 0 0 0 0 + 3 28 1 0 0 0 0 + 4 29 1 0 0 0 0 + 5 30 1 0 0 0 0 + 6 31 1 0 0 0 0 + 7 32 1 0 0 0 0 + 14 33 1 0 0 0 0 + 14 34 1 0 0 0 0 + 17 35 1 0 0 0 0 + 17 36 1 0 0 0 0 + 17 37 1 0 0 0 0 + 18 38 1 0 0 0 0 + 18 39 1 0 0 0 0 + 18 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 19 42 1 0 0 0 0 + 19 43 1 0 0 0 0 + 22 44 1 0 0 0 0 + 23 45 1 0 0 0 0 + 23 46 1 0 0 0 0 +M CHG 1 22 1 +M END + +> +2363 + +> +10.1021/jm4002154 + +$$$$ +lig_36 + -OEChem-01092314203D + + 51 54 0 1 0 0 0 0 0999 V2000 + -33.3279 -45.7707 17.6348 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.3998 -46.3455 18.1337 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3623 -44.9664 16.9291 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6159 -45.1795 17.5073 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.7353 -45.3707 17.6195 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.3573 -45.1090 19.1034 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.3685 -44.1917 16.0671 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6394 -43.8034 16.0925 C 0 0 0 0 0 0 0 0 0 0 0 0 + -34.4709 -45.1099 17.0961 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2034 -44.9303 17.7156 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8686 -44.7049 17.1328 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6121 -45.3134 19.7042 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.7399 -45.3646 18.8857 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9218 -44.3592 21.9394 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9699 -46.3859 22.4991 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1845 -45.4214 21.6644 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.7320 -45.4554 21.1980 C 0 0 1 0 0 0 0 0 0 0 0 0 + -42.1446 -46.1034 20.6742 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.2930 -47.0584 18.7654 C 0 0 0 0 0 0 0 0 0 0 0 0 + -43.5870 -45.7897 21.1020 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9812 -47.6288 20.6169 C 0 0 0 0 0 0 0 0 0 0 0 0 + -36.8845 -44.2944 23.4477 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4271 -43.5344 15.5474 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8820 -45.0264 22.6768 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0361 -46.6906 21.6487 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.1488 -47.3352 23.0523 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1025 -43.1534 21.8874 O 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0120 -45.5655 19.3470 O 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3070 -44.8405 15.8501 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4959 -45.2072 16.8697 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.8328 -46.1007 18.4221 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4775 -45.0666 19.7444 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.4127 -43.9428 15.6166 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4503 -43.2283 15.6535 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2792 -45.8642 22.6644 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4899 -44.3700 21.7632 H 0 0 0 0 0 0 0 0 0 0 0 0 + -30.3321 -46.6732 18.4135 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.3281 -46.9448 19.8531 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.3393 -48.1268 18.5347 H 0 0 0 0 0 0 0 0 0 0 0 0 + -44.3063 -46.2155 20.3930 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.7647 -44.7078 21.1026 H 0 0 0 0 0 0 0 0 0 0 0 0 + -43.8078 -46.1798 22.1009 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.7546 -48.0752 19.9804 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0559 -48.0778 21.6126 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0285 -47.9254 20.1692 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3876 -43.7131 24.2246 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.1744 -44.9792 23.9152 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3408 -43.6226 22.7771 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2740 -47.6464 21.3970 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.3793 -47.0878 23.6680 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2915 -48.3238 22.8598 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 3 0 0 0 0 + 1 9 1 0 0 0 0 + 2 19 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 10 1 0 0 0 0 + 4 13 1 0 0 0 0 + 5 9 2 0 0 0 0 + 5 11 1 0 0 0 0 + 6 10 2 0 0 0 0 + 6 12 1 0 0 0 0 + 7 9 1 0 0 0 0 + 7 23 2 0 0 0 0 + 8 11 2 0 0 0 0 + 8 23 1 0 0 0 0 + 10 11 1 0 0 0 0 + 12 13 2 0 0 0 0 + 12 17 1 0 0 0 0 + 13 28 1 0 0 0 0 + 14 17 1 0 0 0 0 + 14 24 1 0 0 0 0 + 14 27 2 0 0 0 0 + 15 24 1 0 0 0 0 + 15 25 2 0 0 0 0 + 15 26 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 + 17 25 1 0 0 0 0 + 18 20 1 0 0 0 0 + 18 21 1 0 0 0 0 + 18 28 1 0 0 0 0 + 22 24 1 0 0 0 0 + 3 29 1 0 0 0 0 + 4 30 1 0 0 0 0 + 5 31 1 0 0 0 0 + 6 32 1 0 0 0 0 + 7 33 1 0 0 0 0 + 8 34 1 0 0 0 0 + 16 35 1 0 0 0 0 + 16 36 1 0 0 0 0 + 19 37 1 0 0 0 0 + 19 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 20 40 1 0 0 0 0 + 20 41 1 0 0 0 0 + 20 42 1 0 0 0 0 + 21 43 1 0 0 0 0 + 21 44 1 0 0 0 0 + 21 45 1 0 0 0 0 + 22 46 1 0 0 0 0 + 22 47 1 0 0 0 0 + 22 48 1 0 0 0 0 + 25 49 1 0 0 0 0 + 26 50 1 0 0 0 0 + 26 51 1 0 0 0 0 +M CHG 1 25 1 +M END + +> +10 + +> +10.1021/jm4002154 + +$$$$ +lig_41 + -OEChem-01092314203D + + 46 48 0 1 0 0 0 0 0999 V2000 + -38.2269 -44.7624 17.0644 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5768 -44.5604 17.3339 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9747 -45.7935 19.2369 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.7872 -44.9903 16.2699 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.3168 -46.9590 18.0273 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3311 -45.5899 19.5373 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4150 -45.3730 18.0184 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1109 -44.9604 18.5558 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.8108 -45.5729 16.9887 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.2907 -46.3793 17.3147 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0510 -44.5866 21.6645 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1501 -44.1974 22.5768 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1360 -46.3214 22.6404 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2167 -45.1406 16.8330 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.8976 -45.8944 20.9271 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.2115 -46.6866 20.8698 C 0 0 0 0 0 0 0 0 0 0 0 0 + -28.9955 -46.2409 16.8105 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0969 -42.8186 23.1387 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.5914 -46.5646 17.8782 N 0 0 0 0 0 0 0 0 0 0 0 0 + -31.5065 -45.3848 16.4240 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9577 -46.7625 21.6877 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.2805 -47.1014 23.2819 N 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0320 -45.5918 17.8569 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.5234 -44.4383 15.8785 O 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1330 -45.0306 22.9992 O 0 0 0 0 0 0 0 0 0 0 0 0 + -30.0246 -46.8714 17.5613 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4001 -44.6793 18.7929 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8080 -42.4628 23.4036 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8496 -44.4315 16.1044 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.2096 -44.0702 16.6005 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3159 -46.2480 19.9740 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9477 -44.1873 15.5603 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.1509 -47.7573 18.7400 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8464 -43.9105 21.3610 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.5254 -47.0029 21.8713 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0879 -47.5958 20.2679 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0376 -46.1147 20.4371 H 0 0 0 0 0 0 0 0 0 0 0 0 + -28.0512 -46.7143 17.0942 H 0 0 0 0 0 0 0 0 0 0 0 0 + -28.9272 -45.1748 17.0516 H 0 0 0 0 0 0 0 0 0 0 0 0 + -29.1419 -46.3914 15.7358 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6583 -42.7566 24.0732 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.4899 -42.0818 22.4310 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9129 -47.7558 21.4763 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2235 -48.0917 23.0753 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6741 -46.7092 23.9930 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.5838 -46.1108 18.6096 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 7 1 0 0 0 0 + 2 8 1 0 0 0 0 + 3 6 1 0 0 0 0 + 3 7 2 0 0 0 0 + 4 9 2 0 0 0 0 + 4 20 1 0 0 0 0 + 5 10 1 0 0 0 0 + 5 19 2 0 0 0 0 + 6 8 2 0 0 0 0 + 6 15 1 0 0 0 0 + 7 23 1 0 0 0 0 + 8 27 1 0 0 0 0 + 9 14 1 0 0 0 0 + 9 19 1 0 0 0 0 + 10 20 2 0 0 0 0 + 10 26 1 0 0 0 0 + 11 12 2 0 0 0 0 + 11 15 1 0 0 0 0 + 12 18 1 0 0 0 0 + 12 25 1 0 0 0 0 + 13 21 2 0 0 0 0 + 13 22 1 0 0 0 0 + 13 25 1 0 0 0 0 + 14 23 1 0 0 0 0 + 14 24 2 0 0 0 0 + 15 16 1 0 0 0 0 + 15 21 1 0 0 0 0 + 17 26 1 0 0 0 0 + 18 28 1 0 0 0 0 + 1 29 1 0 0 0 0 + 2 30 1 0 0 0 0 + 3 31 1 0 0 0 0 + 4 32 1 0 0 0 0 + 5 33 1 0 0 0 0 + 11 34 1 0 0 0 0 + 16 35 1 0 0 0 0 + 16 36 1 0 0 0 0 + 16 37 1 0 0 0 0 + 17 38 1 0 0 0 0 + 17 39 1 0 0 0 0 + 17 40 1 0 0 0 0 + 18 41 1 0 0 0 0 + 18 42 1 0 0 0 0 + 21 43 1 0 0 0 0 + 22 44 1 0 0 0 0 + 22 45 1 0 0 0 0 + 23 46 1 0 0 0 0 +M CHG 1 21 1 +M END + +> +6.62 + +> +10.1021/acs.jmedchem.8b00002 + +$$$$ +lig_45 + -OEChem-01092314203D + + 43 45 0 1 0 0 0 0 0999 V2000 + -38.2195 -44.8055 17.0642 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5671 -44.6062 17.3433 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9274 -45.8168 19.2363 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.8326 -44.7993 16.0919 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.2882 -45.6183 19.5460 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3800 -45.3986 18.0108 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0843 -44.9987 18.5703 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.8186 -45.3799 16.8575 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.9738 -46.2686 17.3935 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0155 -44.5986 21.6655 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1273 -44.2021 22.5865 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1011 -46.3206 22.6634 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2295 -45.0628 16.7765 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.8536 -45.9118 20.9393 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.1694 -46.7041 20.8953 C 0 0 0 0 0 0 0 0 0 0 0 0 + -30.8639 -47.0676 17.9426 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0931 -42.8220 23.1470 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2567 -46.3121 17.6985 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9118 -46.7694 21.7052 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.2460 -47.0957 23.3110 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.9846 -45.5803 17.8219 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6415 -44.3664 15.8554 O 0 0 0 0 0 0 0 0 0 0 0 0 + -31.6442 -45.3616 16.4260 O 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1109 -45.0294 23.0224 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3720 -44.7195 18.8185 F 0 0 0 0 0 0 0 0 0 0 0 0 + -29.6731 -46.7122 17.3861 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8091 -42.4454 23.4058 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8708 -44.4795 16.0927 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.2080 -44.1230 16.6125 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2604 -46.2602 19.9725 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.8113 -44.0353 15.3295 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8114 -43.9270 21.3525 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4770 -47.0147 21.9006 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0530 -47.6162 20.2969 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9996 -46.1334 20.4680 H 0 0 0 0 0 0 0 0 0 0 0 0 + -31.0203 -48.1300 17.7385 H 0 0 0 0 0 0 0 0 0 0 0 0 + -30.7824 -46.9210 19.0222 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6519 -42.7678 24.0836 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5018 -42.0916 22.4413 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8603 -47.7628 21.4962 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.1824 -48.0855 23.1030 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6478 -46.7015 24.0276 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4985 -46.0857 18.5602 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 6 1 0 0 0 0 + 2 7 1 0 0 0 0 + 3 5 1 0 0 0 0 + 3 6 2 0 0 0 0 + 4 8 2 0 0 0 0 + 4 23 1 0 0 0 0 + 5 7 2 0 0 0 0 + 5 14 1 0 0 0 0 + 6 21 1 0 0 0 0 + 7 25 1 0 0 0 0 + 8 13 1 0 0 0 0 + 8 18 1 0 0 0 0 + 9 16 1 0 0 0 0 + 9 18 2 0 0 0 0 + 9 23 1 0 0 0 0 + 10 11 2 0 0 0 0 + 10 14 1 0 0 0 0 + 11 17 1 0 0 0 0 + 11 24 1 0 0 0 0 + 12 19 2 0 0 0 0 + 12 20 1 0 0 0 0 + 12 24 1 0 0 0 0 + 13 21 1 0 0 0 0 + 13 22 2 0 0 0 0 + 14 15 1 0 0 0 0 + 14 19 1 0 0 0 0 + 16 26 1 0 0 0 0 + 17 27 1 0 0 0 0 + 1 28 1 0 0 0 0 + 2 29 1 0 0 0 0 + 3 30 1 0 0 0 0 + 4 31 1 0 0 0 0 + 10 32 1 0 0 0 0 + 15 33 1 0 0 0 0 + 15 34 1 0 0 0 0 + 15 35 1 0 0 0 0 + 16 36 1 0 0 0 0 + 16 37 1 0 0 0 0 + 17 38 1 0 0 0 0 + 17 39 1 0 0 0 0 + 19 40 1 0 0 0 0 + 20 41 1 0 0 0 0 + 20 42 1 0 0 0 0 + 21 43 1 0 0 0 0 +M CHG 1 19 1 +M END + +> +7.32 + +> +10.1021/acs.jmedchem.8b00002 + +$$$$ +lig_67 + -OEChem-01092314203D + + 48 50 0 1 0 0 0 0 0999 V2000 + -38.1986 -44.7279 17.0306 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5465 -44.5151 17.3023 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9581 -45.7840 19.1932 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.7541 -44.9904 16.2592 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.3064 -46.9624 18.0197 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3098 -45.5627 19.4988 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3934 -45.3552 17.9797 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.0830 -44.9185 18.5225 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.7860 -45.5696 16.9685 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.2723 -46.3866 17.3159 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1808 -46.3253 22.6421 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.1891 -45.1309 16.8037 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1407 -44.6357 21.6789 C 0 0 1 0 0 0 0 0 0 0 0 0 + -38.8211 -44.1050 22.2297 C 0 0 1 0 0 0 0 0 0 0 0 0 + -39.8943 -45.9153 20.8681 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.1730 -46.7582 20.7373 C 0 0 0 0 0 0 0 0 0 0 0 0 + -28.9721 -46.2585 16.8315 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0243 -42.8457 23.0550 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.5779 -46.5628 17.8595 N 0 0 0 0 0 0 0 0 0 0 0 0 + -31.4764 -45.3906 16.4240 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9439 -46.7526 21.6370 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.3490 -47.1276 23.2894 N 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0123 -45.5842 17.8199 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.4868 -44.4226 15.8509 O 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2113 -45.0641 23.0848 O 0 0 0 0 0 0 0 0 0 0 0 0 + -30.0107 -46.8851 17.5725 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.3731 -44.6411 18.7585 F 0 0 0 0 0 0 0 0 0 0 0 0 + -40.9542 -44.9286 22.7335 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.7991 -42.3847 23.4334 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8179 -44.3943 16.0727 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1765 -44.0186 16.5706 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3060 -46.2595 19.9234 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9054 -44.1858 15.5493 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.1499 -47.7612 18.7340 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.6523 -43.8688 21.0873 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1129 -43.8742 21.4259 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4954 -47.1343 21.7155 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.0033 -47.6329 20.0982 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0081 -46.1916 20.3159 H 0 0 0 0 0 0 0 0 0 0 0 0 + -28.0331 -46.7385 17.1213 H 0 0 0 0 0 0 0 0 0 0 0 0 + -28.8996 -45.1937 17.0765 H 0 0 0 0 0 0 0 0 0 0 0 0 + -29.1109 -46.4050 15.7552 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5953 -43.0404 23.9671 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.5111 -42.0561 22.4760 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.8503 -47.7351 21.3924 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2607 -48.1041 23.0329 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7838 -46.7634 24.0480 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.5706 -46.1117 18.5706 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 7 1 0 0 0 0 + 2 8 1 0 0 0 0 + 3 6 1 0 0 0 0 + 3 7 2 0 0 0 0 + 4 9 2 0 0 0 0 + 4 20 1 0 0 0 0 + 5 10 1 0 0 0 0 + 5 19 2 0 0 0 0 + 6 8 2 0 0 0 0 + 6 15 1 0 0 0 0 + 7 23 1 0 0 0 0 + 8 27 1 0 0 0 0 + 9 12 1 0 0 0 0 + 9 19 1 0 0 0 0 + 10 20 2 0 0 0 0 + 10 26 1 0 0 0 0 + 11 21 2 0 0 0 0 + 11 22 1 0 0 0 0 + 11 25 1 0 0 0 0 + 12 23 1 0 0 0 0 + 12 24 2 0 0 0 0 + 13 14 1 0 0 0 0 + 13 15 1 0 0 0 0 + 13 28 1 0 0 0 0 + 14 18 1 0 0 0 0 + 14 25 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 21 1 0 0 0 0 + 17 26 1 0 0 0 0 + 18 29 1 0 0 0 0 + 1 30 1 0 0 0 0 + 2 31 1 0 0 0 0 + 3 32 1 0 0 0 0 + 4 33 1 0 0 0 0 + 5 34 1 0 0 0 0 + 13 35 1 0 0 0 0 + 14 36 1 0 0 0 0 + 16 37 1 0 0 0 0 + 16 38 1 0 0 0 0 + 16 39 1 0 0 0 0 + 17 40 1 0 0 0 0 + 17 41 1 0 0 0 0 + 17 42 1 0 0 0 0 + 18 43 1 0 0 0 0 + 18 44 1 0 0 0 0 + 21 45 1 0 0 0 0 + 22 46 1 0 0 0 0 + 22 47 1 0 0 0 0 + 23 48 1 0 0 0 0 +M CHG 1 21 1 +M END + +> +7.75 + +> +10.1021/acs.jmedchem.8b00011 + +$$$$ +lig_69 + -OEChem-01092314203D + + 52 55 0 1 0 0 0 0 0999 V2000 + -38.3102 -44.6858 17.0132 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6543 -44.4823 17.3124 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0379 -45.7876 19.1493 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.8431 -44.9774 16.2381 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.4539 -46.9534 18.0133 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3828 -45.5739 19.4848 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4926 -45.3299 17.9379 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1715 -44.9090 18.5352 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.8936 -45.5432 16.9290 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.4018 -46.3907 17.3283 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1702 -46.5120 22.5561 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2912 -45.0907 16.7523 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4340 -42.3260 23.4313 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.3750 -42.8627 24.4674 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.6819 -44.2430 22.2290 C 0 0 1 0 0 0 0 0 0 0 0 0 + -40.0585 -44.6755 21.7274 C 0 0 1 0 0 0 0 0 0 0 0 0 + -39.9257 -45.9426 20.8679 C 0 0 1 0 0 0 0 0 0 0 0 0 + -38.7415 -42.9502 23.0047 C 0 0 0 0 0 0 0 0 0 0 0 0 + -41.2530 -46.7111 20.7766 C 0 0 0 0 0 0 0 0 0 0 0 0 + -29.0941 -46.2999 16.8983 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.7140 -46.5385 17.8251 N 0 0 0 0 0 0 0 0 0 0 0 0 + -31.5744 -45.3943 16.4293 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9901 -46.8592 21.5646 N 0 3 0 0 0 0 0 0 0 0 0 0 + -37.3730 -47.3811 23.1597 N 0 0 0 0 0 0 0 0 0 0 0 0 + -36.1143 -45.5493 17.7646 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.5814 -44.3763 15.8025 O 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1050 -45.2651 23.0312 O 0 0 0 0 0 0 0 0 0 0 0 0 + -30.1553 -46.9065 17.6136 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4551 -44.6275 18.7998 F 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8386 -44.9492 22.8114 F 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6981 -42.0334 22.5719 F 0 0 0 0 0 0 0 0 0 0 0 0 + -27.9596 -46.9310 17.3033 F 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9402 -44.3297 16.0591 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.2964 -43.9702 16.6019 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3717 -46.2734 19.8600 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9706 -44.1717 15.5251 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.3211 -47.7514 18.7333 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3377 -41.2515 23.3392 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5166 -42.8735 23.2494 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0717 -43.7541 25.0016 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9120 -42.1467 25.0768 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0129 -44.0621 21.3798 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.5519 -43.8667 21.1771 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.5447 -47.1055 21.7572 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1621 -47.5695 20.1000 H 0 0 0 0 0 0 0 0 0 0 0 0 + -42.0774 -46.0870 20.4211 H 0 0 0 0 0 0 0 0 0 0 0 0 + -28.9945 -45.2386 17.1470 H 0 0 0 0 0 0 0 0 0 0 0 0 + -29.1950 -46.4519 15.8191 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9594 -47.8349 21.2798 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3526 -48.3548 22.8802 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.7706 -47.0727 23.9146 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6680 -46.0826 18.5089 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 7 1 0 0 0 0 + 2 8 1 0 0 0 0 + 3 6 1 0 0 0 0 + 3 7 2 0 0 0 0 + 4 9 2 0 0 0 0 + 4 22 1 0 0 0 0 + 5 10 1 0 0 0 0 + 5 21 2 0 0 0 0 + 6 8 2 0 0 0 0 + 6 17 1 0 0 0 0 + 7 25 1 0 0 0 0 + 8 29 1 0 0 0 0 + 9 12 1 0 0 0 0 + 9 21 1 0 0 0 0 + 10 22 2 0 0 0 0 + 10 28 1 0 0 0 0 + 11 23 2 0 0 0 0 + 11 24 1 0 0 0 0 + 11 27 1 0 0 0 0 + 12 25 1 0 0 0 0 + 12 26 2 0 0 0 0 + 13 14 1 0 0 0 0 + 13 18 1 0 0 0 0 + 14 18 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 18 1 0 0 0 0 + 15 27 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 30 1 0 0 0 0 + 17 19 1 0 0 0 0 + 17 23 1 0 0 0 0 + 18 31 1 0 0 0 0 + 20 28 1 0 0 0 0 + 20 32 1 0 0 0 0 + 1 33 1 0 0 0 0 + 2 34 1 0 0 0 0 + 3 35 1 0 0 0 0 + 4 36 1 0 0 0 0 + 5 37 1 0 0 0 0 + 13 38 1 0 0 0 0 + 13 39 1 0 0 0 0 + 14 40 1 0 0 0 0 + 14 41 1 0 0 0 0 + 15 42 1 0 0 0 0 + 16 43 1 0 0 0 0 + 19 44 1 0 0 0 0 + 19 45 1 0 0 0 0 + 19 46 1 0 0 0 0 + 20 47 1 0 0 0 0 + 20 48 1 0 0 0 0 + 23 49 1 0 0 0 0 + 24 50 1 0 0 0 0 + 24 51 1 0 0 0 0 + 25 52 1 0 0 0 0 +M CHG 1 23 1 +M END + +> +7.69 + +> +10.1021/acs.jmedchem.8b00011 + +$$$$ +lig_74 + -OEChem-01092314203D + + 45 48 0 1 0 0 0 0 0999 V2000 + -29.8986 -46.6441 17.3497 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.5877 -45.2101 16.2984 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2805 -44.7195 17.1426 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6232 -44.5082 17.4349 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9166 -44.8258 16.1613 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9997 -45.7627 19.3052 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.2706 -46.8151 17.9247 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3803 -43.9268 23.4564 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.2524 -46.2242 17.1916 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3509 -45.5492 19.6316 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4535 -45.3375 18.0800 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1397 -44.9086 18.6638 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1905 -44.8571 22.8522 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.8633 -45.4777 16.9414 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1441 -46.2798 22.6333 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2927 -45.1037 16.8335 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.3902 -44.7179 21.8007 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9335 -45.9673 20.9954 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.1570 -46.8828 20.7721 C 0 0 0 0 0 0 0 0 0 0 0 0 + -28.7980 -46.9875 17.4797 N 0 0 0 0 0 0 0 0 0 0 0 0 + -33.5705 -46.4623 17.8230 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.9661 -42.6859 23.3732 N 0 0 0 0 0 0 0 0 0 0 0 0 + -39.1313 -42.8186 22.7429 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9895 -46.8083 21.7942 N 0 3 0 0 0 0 0 0 0 0 0 0 + -39.2452 -44.1120 22.4346 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2378 -47.0744 23.2955 N 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0706 -45.5588 17.8863 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6499 -44.4284 15.8757 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4333 -44.6519 18.9038 F 0 0 0 0 0 0 0 0 0 0 0 0 + -30.8193 -44.7246 15.7151 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8785 -44.4054 16.1907 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.2656 -44.0332 16.7082 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2035 -44.0462 15.4711 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3624 -46.2679 20.0159 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.0093 -47.6023 18.6164 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.4301 -44.1376 23.9244 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8587 -43.9929 21.1189 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1169 -45.0217 22.5686 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.5740 -47.1821 21.7450 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9213 -46.3394 20.1972 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8473 -47.7791 20.2147 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2261 -48.0612 23.1338 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.5905 -46.6654 23.9387 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6036 -46.1021 18.5839 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0075 -47.8018 21.6815 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 9 1 0 0 0 0 + 1 20 3 0 0 0 0 + 2 5 2 0 0 0 0 + 2 9 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 11 1 0 0 0 0 + 4 12 1 0 0 0 0 + 5 14 1 0 0 0 0 + 6 10 1 0 0 0 0 + 6 11 2 0 0 0 0 + 7 9 2 0 0 0 0 + 7 21 1 0 0 0 0 + 8 13 2 0 0 0 0 + 8 22 1 0 0 0 0 + 10 12 2 0 0 0 0 + 10 18 1 0 0 0 0 + 11 27 1 0 0 0 0 + 12 29 1 0 0 0 0 + 13 15 1 0 0 0 0 + 13 25 1 0 0 0 0 + 14 16 1 0 0 0 0 + 14 21 2 0 0 0 0 + 15 24 2 0 0 0 0 + 15 26 1 0 0 0 0 + 16 27 1 0 0 0 0 + 16 28 2 0 0 0 0 + 17 18 1 0 0 0 0 + 17 25 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 24 1 0 0 0 0 + 22 23 2 0 0 0 0 + 23 25 1 0 0 0 0 + 2 30 1 0 0 0 0 + 3 31 1 0 0 0 0 + 4 32 1 0 0 0 0 + 5 33 1 0 0 0 0 + 6 34 1 0 0 0 0 + 7 35 1 0 0 0 0 + 8 36 1 0 0 0 0 + 17 37 1 0 0 0 0 + 17 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 19 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 26 42 1 0 0 0 0 + 26 43 1 0 0 0 0 + 27 44 1 0 0 0 0 + 24 45 1 0 0 0 0 +M CHG 1 24 1 +M END + +> +8.7 + +> +10.1021/acsmedchemlett.9b00181 + +$$$$ +lig_81 + -OEChem-01092314203D + + 45 48 0 1 0 0 0 0 0999 V2000 + -29.8991 -46.6444 17.3498 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.5880 -45.2092 16.2997 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2803 -44.7175 17.1436 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6235 -44.5074 17.4340 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.9168 -44.8244 16.1631 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.0005 -45.7575 19.3081 C 0 0 0 0 0 0 0 0 0 0 0 0 + -32.2711 -46.8151 17.9250 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.0485 -42.8007 22.7748 C 0 0 0 0 0 0 0 0 0 0 0 0 + -31.2529 -46.2240 17.1922 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.3521 -45.5442 19.6329 C 0 0 0 0 0 0 0 0 0 0 0 0 + -37.4536 -45.3336 18.0825 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.1408 -44.9069 18.6628 C 0 0 0 0 0 0 0 0 0 0 0 0 + -33.8636 -45.4764 16.9430 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.2345 -44.8187 22.8526 C 0 0 0 0 0 0 0 0 0 0 0 0 + -38.1576 -46.2394 22.6464 C 0 0 0 0 0 0 0 0 0 0 0 0 + -35.2928 -45.1019 16.8354 C 0 0 0 0 0 0 0 0 0 0 0 0 + -40.4180 -44.7168 21.7933 C 0 0 0 0 0 0 0 0 0 0 0 0 + -39.9371 -45.9630 20.9952 C 0 0 1 0 0 0 0 0 0 0 0 0 + -41.1466 -46.8959 20.7665 C 0 0 0 0 0 0 0 0 0 0 0 0 + -28.7986 -46.9881 17.4796 N 0 0 0 0 0 0 0 0 0 0 0 0 + -33.5710 -46.4617 17.8239 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8875 -42.7445 23.3970 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3729 -44.0340 23.4583 N 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9871 -46.7880 21.8050 N 0 3 0 0 0 0 0 0 0 0 0 0 + -39.2924 -44.0810 22.4313 N 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2387 -47.0061 23.3224 N 0 0 0 0 0 0 0 0 0 0 0 0 + -36.0706 -45.5553 17.8892 N 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6500 -44.4278 15.8767 O 0 0 0 0 0 0 0 0 0 0 0 0 + -41.4358 -44.6547 18.8997 F 0 0 0 0 0 0 0 0 0 0 0 0 + -30.8196 -44.7235 15.7166 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.8775 -44.4039 16.1919 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.2657 -44.0341 16.7060 H 0 0 0 0 0 0 0 0 0 0 0 0 + -33.2036 -44.0443 15.4734 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.3635 -46.2614 20.0200 H 0 0 0 0 0 0 0 0 0 0 0 0 + -32.0099 -47.6030 18.6160 H 0 0 0 0 0 0 0 0 0 0 0 0 + -39.6965 -41.9604 22.5737 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8975 -44.0052 21.1051 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.1423 -45.0309 22.5592 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.5669 -47.1969 21.7374 H 0 0 0 0 0 0 0 0 0 0 0 0 + -41.9138 -46.3651 20.1837 H 0 0 0 0 0 0 0 0 0 0 0 0 + -40.8206 -47.7901 20.2151 H 0 0 0 0 0 0 0 0 0 0 0 0 + -37.2030 -47.9938 23.1702 H 0 0 0 0 0 0 0 0 0 0 0 0 + -36.6059 -46.5762 23.9664 H 0 0 0 0 0 0 0 0 0 0 0 0 + -35.6035 -46.0974 18.5878 H 0 0 0 0 0 0 0 0 0 0 0 0 + -38.9890 -47.7823 21.6980 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 9 1 0 0 0 0 + 1 20 3 0 0 0 0 + 2 5 2 0 0 0 0 + 2 9 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 11 1 0 0 0 0 + 4 12 1 0 0 0 0 + 5 13 1 0 0 0 0 + 6 10 1 0 0 0 0 + 6 11 2 0 0 0 0 + 7 9 2 0 0 0 0 + 7 21 1 0 0 0 0 + 8 22 2 0 0 0 0 + 8 25 1 0 0 0 0 + 10 12 2 0 0 0 0 + 10 18 1 0 0 0 0 + 11 27 1 0 0 0 0 + 12 29 1 0 0 0 0 + 13 16 1 0 0 0 0 + 13 21 2 0 0 0 0 + 14 15 1 0 0 0 0 + 14 23 2 0 0 0 0 + 14 25 1 0 0 0 0 + 15 24 2 0 0 0 0 + 15 26 1 0 0 0 0 + 16 27 1 0 0 0 0 + 16 28 2 0 0 0 0 + 17 18 1 0 0 0 0 + 17 25 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 24 1 0 0 0 0 + 22 23 1 0 0 0 0 + 2 30 1 0 0 0 0 + 3 31 1 0 0 0 0 + 4 32 1 0 0 0 0 + 5 33 1 0 0 0 0 + 6 34 1 0 0 0 0 + 7 35 1 0 0 0 0 + 8 36 1 0 0 0 0 + 17 37 1 0 0 0 0 + 17 38 1 0 0 0 0 + 19 39 1 0 0 0 0 + 19 40 1 0 0 0 0 + 19 41 1 0 0 0 0 + 26 42 1 0 0 0 0 + 26 43 1 0 0 0 0 + 27 44 1 0 0 0 0 + 24 45 1 0 0 0 0 +M CHG 1 24 1 +M END + +> +7.97 + +> +10.1021/acsmedchemlett.9b00181 + +$$$$ diff --git a/openfe/tests/data/openmm_septop/system.xml.bz2 b/openfe/tests/data/openmm_septop/system.xml.bz2 new file mode 100644 index 000000000..962405f54 Binary files /dev/null and b/openfe/tests/data/openmm_septop/system.xml.bz2 differ diff --git a/openfe/tests/protocols/conftest.py b/openfe/tests/protocols/conftest.py index 743352215..a90f6969d 100644 --- a/openfe/tests/protocols/conftest.py +++ b/openfe/tests/protocols/conftest.py @@ -234,6 +234,20 @@ def md_json() -> str: return f.read().decode() # type: ignore +@pytest.fixture +def septop_json() -> str: + """ + string of a SepTop result (BACE ligand lig_03 to lig_0) generated by quickrun + + generated with gen-serialized-results.py + """ + d = resources.files('openfe.tests.data.openmm_septop') + fname = "SepTopProtocol_json_results.gz" + + with gzip.open((d / fname).as_posix(), 'r') as f: # type: ignore + return f.read().decode() # type: ignore + + RFE_OUTPUT = pooch.create( path=pooch.os_cache("openfe_analysis"), base_url="doi:10.6084/m9.figshare.24101655", diff --git a/openfe/tests/protocols/restraints/__init__.py b/openfe/tests/protocols/restraints/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openfe/tests/protocols/restraints/test_geometry_base.py b/openfe/tests/protocols/restraints/test_geometry_base.py new file mode 100644 index 000000000..139c57dc5 --- /dev/null +++ b/openfe/tests/protocols/restraints/test_geometry_base.py @@ -0,0 +1,25 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +import pytest + +from openfe.protocols.restraint_utils.geometry.base import ( + HostGuestRestraintGeometry +) + + +def test_hostguest_geometry(): + """ + A very basic will it build test. + """ + geom = HostGuestRestraintGeometry(guest_atoms=[1, 2, 3], host_atoms=[4]) + + assert isinstance(geom, HostGuestRestraintGeometry) + + +def test_hostguest_positiveidxs_validator(): + """ + Check that the validator is working as intended. + """ + with pytest.raises(ValueError, match="negative indices passed"): + geom = HostGuestRestraintGeometry(guest_atoms=[-1, 1], host_atoms=[0]) diff --git a/openfe/tests/protocols/restraints/test_geometry_harmonic.py b/openfe/tests/protocols/restraints/test_geometry_harmonic.py new file mode 100644 index 000000000..80c0e8134 --- /dev/null +++ b/openfe/tests/protocols/restraints/test_geometry_harmonic.py @@ -0,0 +1,23 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +import pytest + +from openfe.protocols.restraint_utils.geometry.harmonic import ( + DistanceRestraintGeometry +) + + +def test_hostguest_geometry(): + """ + A very basic will it build test. + """ + geom = DistanceRestraintGeometry(guest_atoms=[1, 2, 3], host_atoms=[4]) + + assert isinstance(geom, DistanceRestraintGeometry) + + +def test_get_distance_restraint(): + """ + Check that you get a distance restraint. + """ diff --git a/openfe/tests/protocols/restraints/test_geometry_utils.py b/openfe/tests/protocols/restraints/test_geometry_utils.py new file mode 100644 index 000000000..4f8047ea0 --- /dev/null +++ b/openfe/tests/protocols/restraints/test_geometry_utils.py @@ -0,0 +1,299 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +import pytest + +import itertools +from rdkit import Chem +import MDAnalysis as mda +from openff.units import unit +import numpy as np + +from openfe.protocols.restraint_utils.geometry.utils import ( + _get_mda_selection, + get_aromatic_rings, + get_aromatic_atom_idxs, + get_heavy_atom_idxs, + get_central_atom_idx, + is_collinear, + check_angle_not_flat, + _wrap_angle, + check_dihedral_bounds, + check_angular_variance, + _atomgroup_has_bonds, +) + + + +@pytest.fixture(scope='module') +def eg5_pdb_universe(eg5_protein_pdb): + return mda.Universe(eg5_protein_pdb) + + +def test_mda_selection_none_error(eg5_pdb_universe): + with pytest.raises(ValueError, match="one of either"): + _ = _get_mda_selection(eg5_pdb_universe) + + +def test_mda_selection_both_args_error(eg5_pdb_universe): + with pytest.raises(ValueError, match="both atom_list and"): + _ = _get_mda_selection( + eg5_pdb_universe, + atom_list=[0, 1, 2, 3], + selection="all" + ) + + +def test_mda_selection_universe_atom_list(eg5_pdb_universe): + test_ag = _get_mda_selection(eg5_pdb_universe, atom_list=[0, 1, 2]) + assert eg5_pdb_universe.atoms[[0, 1, 2]] == test_ag + + +def test_mda_selection_atomgroup_string(eg5_pdb_universe): + test_ag = _get_mda_selection(eg5_pdb_universe.atoms, selection='all') + assert test_ag == eg5_pdb_universe.atoms + + +@pytest.mark.parametrize('smiles, expected', [ + ['C1CCCCC1', []], + ['[C@@H]1([C@@H]([C@@H](OC([C@@H]1O)O)C(=O)O)O)O', []], + ['C1=CC=CC=C1', [6]], + ['C1=CC2C=CC1C=C2', [8]], + ['C1CC2=CC=CC=C2C1', [6]], + ['C1=COC=C1', [5]], + ['C1=CC=C2C=CC=CC2=C1', [10]], + ['C1=CC=C(C=C1)C2=CC=CC=C2', [6, 6]], + ['C1=CC=C(C=C1)C(C2=CC=CC=C2)(C3=CC=CC=C3Cl)N4C=CN=C4', [6, 6, 6, 5]] +]) +def test_aromatic_rings(smiles, expected): + mol = Chem.AddHs(Chem.MolFromSmiles(smiles)) + + # get the rings + rings = get_aromatic_rings(mol) + + # check we have the right number of rings & their size + for i, r in enumerate(rings): + assert len(r) == expected[i] + + # check that there is no overlap in atom between each ring + for x, y in itertools.combinations(rings, 2): + assert x.isdisjoint(y) + + # get the aromatic idx + arom_idxs = get_aromatic_atom_idxs(mol) + + # Check that all the ring indices are aromatic + assert all(idx in arom_idxs for idx in itertools.chain(*rings)) + + # Also check the lengths match + assert sum(len(r) for r in rings) == len(arom_idxs) + + # Finallly check that all the arom_idxs are actually aromatic + for idx in arom_idxs: + at = mol.GetAtomWithIdx(idx) + assert at.GetIsAromatic() + +@pytest.mark.parametrize('smiles, nheavy, nlight', [ + ['C1CCCCC1', 6, 12], + ['[C@@H]1([C@@H]([C@@H](OC([C@@H]1O)O)C(=O)O)O)O', 13, 10], + ['C1=CC=CC=C1', 6, 6], + ['C1=CC2C=CC1C=C2', 8, 8], + ['C1CC2=CC=CC=C2C1', 9, 10], + ['C1=COC=C1', 5, 4], + ['C1=CC=C2C=CC=CC2=C1', 10, 8], + ['C1=CC=C(C=C1)C2=CC=CC=C2', 12, 10], + ['C1=CC=C(C=C1)C(C2=CC=CC=C2)(C3=CC=CC=C3Cl)N4C=CN=C4', 25, 17] +]) +def test_heavy_atoms(smiles, nheavy, nlight): + mol = Chem.AddHs(Chem.MolFromSmiles(smiles)) + + n_atoms = len(list(mol.GetAtoms())) + + heavy_atoms = get_heavy_atom_idxs(mol) + + # check all the heavy atoms are indeed heavy + for idx in heavy_atoms: + at = mol.GetAtomWithIdx(idx) + assert at.GetAtomicNum() > 1 + + assert len(heavy_atoms) == nheavy + assert n_atoms == nheavy + nlight + + +@pytest.mark.parametrize('smiles, idx', [ + ['C1CCCCC1', 2], + ['[C@@H]1([C@@H]([C@@H](OC([C@@H]1O)O)C(=O)O)O)O', 3], + ['C1=CC=CC=C1', 2], + ['C1=CC2C=CC1C=C2', 2], + ['C1CC2=CC=CC=C2C1', 2], + ['C1=COC=C1', 4], + ['C1=CC=C2C=CC=CC2=C1', 3], + ['C1=CC=C(C=C1)C2=CC=CC=C2', 6], + ['C1=CC=C(C=C1)C(C2=CC=CC=C2)(C3=CC=CC=C3Cl)N4C=CN=C4', 6], + ['OC(COc1ccc(cc1)CC(=O)N)CNC(C)C', 3], +]) +def test_central_idx(smiles, idx): + """ + Regression tests for getting central atom idx. + """ + rdmol = Chem.AddHs(Chem.MolFromSmiles(smiles)) + assert get_central_atom_idx(rdmol) == idx + + +def test_central_atom_disconnected(): + mol = Chem.AddHs(Chem.MolFromSmiles('C.C')) + + with pytest.raises(ValueError, match='disconnected molecule'): + _ = get_central_atom_idx(mol) + + +def test_collinear_too_few_atoms(): + with pytest.raises(ValueError, match='Too few atoms passed'): + _ = is_collinear(None, [1, 2], None) + + +def test_collinear_index_match_error_length(): + with pytest.raises(ValueError, match='indices do not match'): + _ = is_collinear( + positions=np.zeros((3, 3)), + atoms=[0, 1, 2, 3], + ) + + +def test_collinear_index_match_error_index(): + with pytest.raises(ValueError, match='indices do not match'): + _ = is_collinear( + positions=np.zeros((3, 3)), + atoms=[1, 2, 3], + ) + + +@pytest.mark.parametrize('arr, truth', [ + [[[0, 0, -1], [1, 0, 0], [2, 0, 2]], True], + [[[0, 1, -1], [1, 0, 0], [2, 0, 2]], False], + [[[0, 1, -1], [1, 1, 0], [2, 1, 2]], True], + [[[0, 0, -1], [1, 1, 0], [2, 2, 2]], True], + [[[0, 0, -1], [1, 0, 0], [2, 0, 2]], True], + [[[2, 0, -1], [1, 0, 0], [0, 0, 2]], True], + [[[0, 0, 1], [0, 0, 0], [0, 0, 2]], True], + [[[1, 1, 1], [0, 0, 0], [2, 2, 2]], True] +]) +def test_is_collinear_three_atoms(arr, truth): + assert is_collinear(np.array(arr), [0, 1, 2]) == truth + + +@pytest.mark.parametrize('arr, truth', [ + [[[0, 0, -1], [1, 0, 0], [2, 0, 2], [3, 0, 4]], True], + [[[0, 0, -1], [1, 0, 0], [2, 0, 2], [3, 0, 2]], True], + [[[0, 0, 1], [1, 0, 0], [2, 0, 2], [3, 0, 4]], True], + [[[0, 1, -1], [1, 0, 0], [2, 0, 2], [3, 0, 2]], False], +]) +def test_is_collinear_four_atoms(arr, truth): + assert is_collinear(np.array(arr), [0, 1, 2, 3]) == truth + + +def test_wrap_angle_degrees(): + for i in range(0, 361, 1): + angle = _wrap_angle(i * unit.degrees) + if i > 180: + expected = ((i - 360) * unit.degrees).to('radians').m + else: + expected = (i * unit.degrees).to('radians').m + + assert angle.m == pytest.approx(expected) + + +@pytest.mark.parametrize('angle, expected', [ + [0 * unit.radians, 0 * unit.radians], + [1 * unit.radians, 1 * unit.radians], + [4 * unit.radians, 4 - (2 * np.pi) * unit.radians], + [-4 * unit.radians, -4 + (2 * np.pi) * unit.radians], +]) +def test_wrap_angle_radians(angle, expected): + assert _wrap_angle(angle) == pytest.approx(expected) + + +@pytest.mark.parametrize('limit, force, temperature', [ + [0.7695366605411506, 83.68, 298.15], + [0.8339791717799163, 83.68, 350.0], + [0.5441445910402979, 167.36, 298.15] +]) +def test_angle_not_flat(limit, force, temperature): + limit = limit * unit.radians + force = force * unit.kilojoule_per_mole / unit.radians ** 2 + temperature = temperature * unit.kelvin + + # test upper + assert check_angle_not_flat(limit + 0.01, force, temperature) + assert not check_angle_not_flat(limit - 0.01, force, temperature) + + # test lower + limit = np.pi - limit + assert check_angle_not_flat(limit - 0.01, force, temperature) + assert not check_angle_not_flat(limit + 0.01, force, temperature) + + +@pytest.mark.parametrize('dihed, expected', [ + [3 * unit.radians, False], + [0 * unit.radians, True], + [-3 * unit.radians, False], + [300 * unit.degrees, True], + [181 * unit.degrees, False], +]) +def test_check_dihedral_bounds(dihed, expected): + ret = check_dihedral_bounds(dihed) + assert ret == expected + + +@pytest.mark.parametrize('dihed, lower, upper, expected', [ + [3 * unit.radians, -3.1 * unit.radians, 3.1 * unit.radians, True], + [300 * unit.degrees, -61 * unit.degrees, 301 * unit.degrees, True], + [300 * unit.degrees, 299 * unit.degrees, -61 * unit.degrees, False] +]) +def test_check_dihedral_bounds_defined(dihed, lower, upper, expected): + ret = check_dihedral_bounds( + dihed, lower_cutoff=lower, upper_cutoff=upper + ) + assert ret == expected + + +def test_angular_variance(): + """ + Manual check with for an input number of angles with + a known variance of 0.36216 + """ + angles = [0, 1, 2, 6] + + assert check_angular_variance( + angles=angles * unit.radians, + upper_bound=np.pi * unit.radians, + lower_bound=-np.pi * unit.radians, + width=0.37 * unit.radians + ) + + assert not check_angular_variance( + angles=angles * unit.radians, + upper_bound=np.pi * unit.radians, + lower_bound=-np.pi * unit.radians, + width=0.35 * unit.radians + ) + + +def test_atomgroup_has_bonds(eg5_protein_pdb): + # Creating a new universe because we'll modify this one + u = mda.Universe(eg5_protein_pdb) + + # PDB has water bonds + assert len(u.bonds) == 14 + assert _atomgroup_has_bonds(u) is False + assert _atomgroup_has_bonds(u.select_atoms('resname HOH')) is True + + # Delete the topoplogy attr and everything is false + u.del_TopologyAttr('bonds') + assert _atomgroup_has_bonds(u) is False + assert _atomgroup_has_bonds(u.select_atoms('resname HOH')) is False + + # Guess some bonds back + ag = u.atoms[:100] + ag.guess_bonds() + assert _atomgroup_has_bonds(ag) is True diff --git a/openfe/tests/protocols/restraints/test_omm_restraints.py b/openfe/tests/protocols/restraints/test_omm_restraints.py new file mode 100644 index 000000000..0315d5b51 --- /dev/null +++ b/openfe/tests/protocols/restraints/test_omm_restraints.py @@ -0,0 +1,31 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +import pytest + +from openfe.protocols.restraint_utils.openmm.omm_restraints import ( + RestraintParameterState, +) + + +def test_parameter_state_default(): + param_state = RestraintParameterState() + assert param_state.lambda_restraints is None + + +@pytest.mark.parametrize('suffix', [None, 'foo']) +@pytest.mark.parametrize('lambda_var', [0, 0.5, 1.0]) +def test_parameter_state_suffix(suffix, lambda_var): + param_state = RestraintParameterState( + parameters_name_suffix=suffix, lambda_restraints=lambda_var + ) + + if suffix is not None: + param_name = f'lambda_restraints_{suffix}' + else: + param_name = 'lambda_restraints' + + assert getattr(param_state, param_name) == lambda_var + assert len(param_state._parameters.keys()) == 1 + assert param_state._parameters[param_name] == lambda_var + assert param_state._parameters_name_suffix == suffix \ No newline at end of file diff --git a/openfe/tests/protocols/restraints/test_openmm_forces.py b/openfe/tests/protocols/restraints/test_openmm_forces.py new file mode 100644 index 000000000..cd2a7f21e --- /dev/null +++ b/openfe/tests/protocols/restraints/test_openmm_forces.py @@ -0,0 +1,115 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +import pytest +import numpy as np +import openmm +from openfe.protocols.restraint_utils.openmm.omm_forces import ( + get_boresch_energy_function, + get_periodic_boresch_energy_function, + get_custom_compound_bond_force, + add_force_in_separate_group, +) + + +@pytest.mark.parametrize('param', ['foo', 'bar']) +def test_boresch_energy_function(param): + """ + Base regression test for the energy function + """ + fn = get_boresch_energy_function(param) + assert fn == ( + f"{param} * E; " + "E = (K_r/2)*(distance(p3,p4) - r_aA0)^2 " + "+ (K_thetaA/2)*(angle(p2,p3,p4)-theta_A0)^2 + (K_thetaB/2)*(angle(p3,p4,p5)-theta_B0)^2 " + "+ (K_phiA/2)*dphi_A^2 + (K_phiB/2)*dphi_B^2 + (K_phiC/2)*dphi_C^2; " + "dphi_A = dA - floor(dA/(2.0*pi)+0.5)*(2.0*pi); dA = dihedral(p1,p2,p3,p4) - phi_A0; " + "dphi_B = dB - floor(dB/(2.0*pi)+0.5)*(2.0*pi); dB = dihedral(p2,p3,p4,p5) - phi_B0; " + "dphi_C = dC - floor(dC/(2.0*pi)+0.5)*(2.0*pi); dC = dihedral(p3,p4,p5,p6) - phi_C0; " + f"pi = {np.pi}; " + ) + + +@pytest.mark.parametrize('param', ['foo', 'bar']) +def test_periodic_boresch_energy_function(param): + """ + Base regression test for the energy function + """ + fn = get_periodic_boresch_energy_function(param) + assert fn == ( + f"{param} * E; " + "E = (K_r/2)*(distance(p3,p4) - r_aA0)^2 " + "+ (K_thetaA/2)*(angle(p2,p3,p4)-theta_A0)^2 + (K_thetaB/2)*(angle(p3,p4,p5)-theta_B0)^2 " + "+ (K_phiA/2)*uphi_A + (K_phiB/2)*uphi_B + (K_phiC/2)*uphi_C; " + "uphi_A = (1-cos(dA)); dA = dihedral(p1,p2,p3,p4) - phi_A0; " + "uphi_B = (1-cos(dB)); dB = dihedral(p2,p3,p4,p5) - phi_B0; " + "uphi_C = (1-cos(dC)); dC = dihedral(p3,p4,p5,p6) - phi_C0; " + f"pi = {np.pi}; " + ) + + +@pytest.mark.parametrize('num_atoms', [6, 20]) +def test_custom_compound_force(num_atoms): + fn = get_boresch_energy_function('lambda_restraints') + force = get_custom_compound_bond_force(fn, num_atoms) + + # Check we have the right object + assert isinstance(force, openmm.CustomCompoundBondForce) + + # Check the energy function + assert force.getEnergyFunction() == fn + + # Check the number of particles + assert force.getNumParticlesPerBond() == num_atoms + + +@pytest.mark.parametrize('groups, expected', [ + [[0, 1, 2, 3, 4], 5], + [[1, 2, 3, 4, 5], 0], +]) +def test_add_force_in_separate_group(groups, expected): + # Create an empty system + system = openmm.System() + + # Create some forces with some force groups + base_forces = [ + openmm.NonbondedForce(), + openmm.HarmonicBondForce(), + openmm.HarmonicAngleForce(), + openmm.PeriodicTorsionForce(), + openmm.CMMotionRemover(), + ] + + for force, group in zip(base_forces, groups): + force.setForceGroup(group) + + [system.addForce(force) for force in base_forces] + + # Get your CustomCompoundBondForce + fn = get_boresch_energy_function('lambda_restraints') + new_force = get_custom_compound_bond_force(fn, 6) + # new_force.setForceGroup(5) + # system.addForce(new_force) + add_force_in_separate_group(system=system, force=new_force) + + # Loop through and check that we go assigned the expected force group + for force in system.getForces(): + if isinstance(force, openmm.CustomCompoundBondForce): + assert force.getForceGroup() == expected + + +def test_add_too_many_force_groups(): + # Create a system + system = openmm.System() + + # Fill it upu with 32 forces with different groups + for i in range(32): + f = openmm.HarmonicBondForce() + f.setForceGroup(i) + system.addForce(f) + + # Now try to add another force + with pytest.raises(ValueError, match="No available force group"): + add_force_in_separate_group( + system=system, force=openmm.HarmonicBondForce() + ) \ No newline at end of file diff --git a/openfe/tests/protocols/restraints/test_settings.py b/openfe/tests/protocols/restraints/test_settings.py new file mode 100644 index 000000000..7c027df79 --- /dev/null +++ b/openfe/tests/protocols/restraints/test_settings.py @@ -0,0 +1,93 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +""" +Test the restraint settings. +""" +import pytest +from openff.units import unit +from openfe.protocols.restraint_utils.settings import ( + DistanceRestraintSettings, + FlatBottomRestraintSettings, + BoreschRestraintSettings, +) + + +def test_distance_restraint_settings_default(): + """ + Basic settings regression test + """ + settings = DistanceRestraintSettings( + spring_constant=10 * unit.kilojoule_per_mole / unit.nm ** 2, + ) + assert settings.central_atoms_only is False + assert isinstance(settings, DistanceRestraintSettings) + + +def test_distance_restraint_negative_idxs(): + """ + Check that an error is raised if you have negative + atom indices in host atoms. + """ + with pytest.raises(ValueError, match="negative indices passed"): + _ = DistanceRestraintSettings( + spring_constant=10 * unit.kilojoule_per_mole / unit.nm ** 2, + host_atoms=[-1, 0, 2], + guest_atoms=[0, 1, 2], + ) + + +def test_flatbottom_restraint_settings_default(): + """ + Basic settings regression test + """ + settings = FlatBottomRestraintSettings( + spring_constant=10 * unit.kilojoule_per_mole / unit.nm ** 2, + well_radius=1*unit.nanometer, + ) + assert isinstance(settings, FlatBottomRestraintSettings) + + +def test_flatbottom_restraint_negative_well(): + """ + Check that an error is raised if you have a negative + well radius. + """ + with pytest.raises(ValueError, match="negative indices passed"): + _ = DistanceRestraintSettings( + spring_constant=10 * unit.kilojoule_per_mole / unit.nm ** 2, + host_atoms=[-1, 0, 2], + guest_atoms=[0, 1, 2], + ) + + +def test_boresch_restraint_settings_default(): + """ + Basic settings regression test + """ + settings = BoreschRestraintSettings( + K_r=10 * unit.kilojoule_per_mole / unit.nm ** 2, + K_thetaA=10 * unit.kilojoule_per_mole / unit.radians ** 2, + K_thetaB=10 * unit.kilojoule_per_mole / unit.radians ** 2, + phi_A0=10 * unit.kilojoule_per_mole / unit.radians ** 2, + phi_B0=10 * unit.kilojoule_per_mole / unit.radians ** 2, + phi_C0=10 * unit.kilojoule_per_mole / unit.radians ** 2, + ) + assert isinstance(settings, BoreschRestraintSettings) + + +def test_boresch_restraint_negative_idxs(): + """ + Check that the positive_idxs_list validator is + working as expected. + """ + with pytest.raises(ValueError, match='negative indices'): + _ = BoreschRestraintSettings( + K_r=10 * unit.kilojoule_per_mole / unit.nm ** 2, + K_thetaA=10 * unit.kilojoule_per_mole / unit.radians ** 2, + K_thetaB=10 * unit.kilojoule_per_mole / unit.radians ** 2, + phi_A0=10 * unit.kilojoule_per_mole / unit.radians ** 2, + phi_B0=10 * unit.kilojoule_per_mole / unit.radians ** 2, + phi_C0=10 * unit.kilojoule_per_mole / unit.radians ** 2, + host_atoms=[-1, 0], + guest_atoms=[0, 1], + ) diff --git a/openfe/tests/protocols/test_openmm_septop.py b/openfe/tests/protocols/test_openmm_septop.py new file mode 100644 index 000000000..21de8a9b4 --- /dev/null +++ b/openfe/tests/protocols/test_openmm_septop.py @@ -0,0 +1,1269 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe +import pathlib + +import pytest +import math +import openfe.protocols.openmm_septop +from openfe import ChemicalSystem, SolventComponent +from openfe.protocols.openmm_septop import ( + SepTopProtocol, + SepTopComplexSetupUnit, + SepTopComplexRunUnit, + SepTopSolventSetupUnit, + SepTopSolventRunUnit, + SepTopProtocolResult, +) +from openfe.protocols.openmm_septop.equil_septop_method import _check_alchemical_charge_difference +from openfe.protocols.openmm_utils import system_validation +import numpy +from numpy.testing import assert_allclose +from math import sqrt +from openfe.protocols.openmm_septop.utils import deserialize +import openmm +import openmm.app +import openmm.unit +from openmmtools.multistate.multistatesampler import MultiStateSampler +from openff.units import unit as offunit +import gufe +from unittest import mock +import json +import mdtraj as md +import itertools +import numpy as np + +from openfe.protocols.openmm_septop.femto_utils import compute_energy, is_close +from openmmtools.alchemy import AlchemicalRegion, AbsoluteAlchemicalFactory +from openff.units.openmm import ensure_quantity, from_openmm +from openmm import ( + app, XmlSerializer, MonteCarloBarostat, + NonbondedForce, CustomNonbondedForce +) +from importlib import resources + +KJ_PER_MOL = openmm.unit.kilojoule_per_mole + + +E_CHARGE = 1.602176634e-19 * openmm.unit.coulomb +EPSILON0 = ( + 1e-6 + * 8.8541878128e-12 + / (openmm.unit.AVOGADRO_CONSTANT_NA * E_CHARGE**2) + * openmm.unit.farad + / openmm.unit.meter +) +ONE_4PI_EPS0 = 1 / (4 * numpy.pi * EPSILON0) * EPSILON0.unit * 10.0 # nm -> angstrom + + +@pytest.fixture() +def default_settings(): + return SepTopProtocol.default_settings() + + +def test_create_default_settings(): + settings = SepTopProtocol.default_settings() + assert settings + + +@pytest.mark.parametrize('val', [ + {'elec': [0.0, -1], 'vdw': [0.0, 1.0], 'restraints': [0.0, 1.0]}, + {'elec': [0.0, 1.5], 'vdw': [0.0, 1.5], 'restraints': [-0.1, 1.0]} +]) +def test_incorrect_window_settings(val, default_settings): + errmsg = "Lambda windows must be between 0 and 1." + lambda_settings = default_settings.lambda_settings + with pytest.raises(ValueError, match=errmsg): + lambda_settings.lambda_elec_A = val['elec'] + lambda_settings.lambda_vdw_A = val['vdw'] + lambda_settings.lambda_restraints_A = val['restraints'] + + +@pytest.mark.parametrize('val', [ + {'elec': [0.0, 0.1, 0.0], 'vdw': [0.0, 1.0, 1.0], 'restraints': [0.0, 1.0, 1.0]}, +]) +def test_monotonic_lambda_windows(val, default_settings): + errmsg = "The lambda schedule is not monotonic." + lambda_settings = default_settings.lambda_settings + + with pytest.raises(ValueError, match=errmsg): + lambda_settings.lambda_elec_A = val['elec'] + lambda_settings.lambda_vdw_A = val['vdw'] + lambda_settings.lambda_restraints_A = val['restraints'] + + +@pytest.mark.parametrize('val', [ + {'elec': [1.0, 1.0], 'vdw': [0.0, 1.0], 'restraints': [0.0, 0.0]}, +]) +def test_validate_lambda_schedule_nreplicas(val, default_settings): + default_settings.lambda_settings.lambda_elec_A = val['elec'] + default_settings.lambda_settings.lambda_vdw_A = val['vdw'] + default_settings.lambda_settings.lambda_restraints_A = val['restraints'] + default_settings.lambda_settings.lambda_elec_B = val['elec'] + default_settings.lambda_settings.lambda_vdw_B = val['vdw'] + default_settings.lambda_settings.lambda_restraints_B = val[ + 'restraints'] + n_replicas = 3 + default_settings.complex_simulation_settings.n_replicas = n_replicas + errmsg = (f"Number of replicas {n_replicas} does not equal the" + f" number of lambda windows {len(val['vdw'])}") + with pytest.raises(ValueError, match=errmsg): + SepTopProtocol._validate_lambda_schedule( + default_settings.lambda_settings, + default_settings.complex_simulation_settings, + ) + + +@pytest.mark.parametrize('val', [ + {'elec': [1.0, 1.0, 1.0], 'vdw': [0.0, 1.0], 'restraints': [0.0, 0.0]}, +]) +def test_validate_lambda_schedule_nwindows(val, default_settings): + default_settings.lambda_settings.lambda_elec_A = val['elec'] + default_settings.lambda_settings.lambda_vdw_A = val['vdw'] + default_settings.lambda_settings.lambda_restraints_A = val['restraints'] + n_replicas = 3 + default_settings.complex_simulation_settings.n_replicas = n_replicas + errmsg = ( + "Components elec, vdw, and restraints must have equal amount of lambda " + "windows. Got 3 and 19 elec lambda windows") + with pytest.raises(ValueError, match=errmsg): + SepTopProtocol._validate_lambda_schedule( + default_settings.lambda_settings, + default_settings.complex_simulation_settings, + ) + + +@pytest.mark.parametrize('val', [ + {'elec': [1.0, 0.5], 'vdw': [1.0, 1.0], 'restraints': [0.0, 0.0]}, +]) +def test_validate_lambda_schedule_nakedcharge(val, default_settings): + default_settings.lambda_settings.lambda_elec_A = val['elec'] + default_settings.lambda_settings.lambda_vdw_A = val['vdw'] + default_settings.lambda_settings.lambda_restraints_A = val[ + 'restraints'] + default_settings.lambda_settings.lambda_elec_B = val['elec'] + default_settings.lambda_settings.lambda_vdw_B = val['vdw'] + default_settings.lambda_settings.lambda_restraints_B = val[ + 'restraints'] + n_replicas = 2 + default_settings.complex_simulation_settings.n_replicas = n_replicas + default_settings.solvent_simulation_settings.n_replicas = n_replicas + errmsg = ( + "There are states along this lambda schedule " + "where there are atoms with charges but no LJ " + "interactions: Ligand A: l") + with pytest.raises(ValueError, match=errmsg): + SepTopProtocol._validate_lambda_schedule( + default_settings.lambda_settings, + default_settings.complex_simulation_settings, + ) + with pytest.raises(ValueError, match=errmsg): + SepTopProtocol._validate_lambda_schedule( + default_settings.lambda_settings, + default_settings.solvent_simulation_settings, + ) + + +def test_create_default_protocol(default_settings): + # this is roughly how it should be created + protocol = SepTopProtocol( + settings=default_settings, + ) + assert protocol + + +def test_serialize_protocol(default_settings): + protocol = SepTopProtocol( + settings=default_settings, + ) + + ser = protocol.to_dict() + ret = SepTopProtocol.from_dict(ser) + assert protocol == ret + + +def test_create_independent_repeat_ids( + benzene_complex_system, toluene_complex_system, +): + # if we create two dags each with 3 repeats, they should give 6 repeat_ids + # this allows multiple DAGs in flight for one Transformation that don't clash on gather + settings = SepTopProtocol.default_settings() + # Default protocol is 1 repeat, change to 3 repeats + settings.protocol_repeats = 3 + protocol = SepTopProtocol( + settings=settings, + ) + + dag1 = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + dag2 = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + # print([u for u in dag1.protocol_units]) + repeat_ids = set() + for u in dag1.protocol_units: + repeat_ids.add(u.inputs['repeat_id']) + for u in dag2.protocol_units: + repeat_ids.add(u.inputs['repeat_id']) + + # There are 4 units per repeat per DAG: 4 * 3 * 2 = 24 + assert len(repeat_ids) == 24 + + +def test_check_alchem_charge_diff(charged_benzene_modifications): + errmsg = "A charge difference of 1" + with pytest.raises(ValueError, match=errmsg): + _check_alchemical_charge_difference( + charged_benzene_modifications["benzene"], + charged_benzene_modifications["benzoic_acid"], + ) + + +def test_charge_error_create( + charged_benzene_modifications, T4_protein_component, +): + # if we create two dags each with 3 repeats, they should give 6 repeat_ids + # this allows multiple DAGs in flight for one Transformation that don't clash on gather + settings = SepTopProtocol.default_settings() + # Default protocol is 1 repeat, change to 3 repeats + settings.protocol_repeats = 3 + protocol = SepTopProtocol( + settings=settings, + ) + stateA = ChemicalSystem({ + 'benzene': charged_benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent() + }) + + stateB = ChemicalSystem({ + 'benzoic': charged_benzene_modifications['benzoic_acid'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + errmsg = "A charge difference of 1" + with pytest.raises(ValueError, match=errmsg): + protocol.create( + stateA=stateA, + stateB=stateB, + mapping=None, + ) + + +def test_validate_complex_endstates_protcomp_stateA( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'solvent': SolventComponent() + }) + + stateB = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + with pytest.raises(ValueError, match="No ProteinComponent found in stateA"): + SepTopProtocol._validate_complex_endstates(stateA, stateB) + + +def test_validate_complex_endstates_protcomp_stateB( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'solvent': SolventComponent(), + }) + + with pytest.raises(ValueError, match="No ProteinComponent found in stateB"): + SepTopProtocol._validate_complex_endstates(stateA, stateB) + + +def test_validate_complex_endstates_nosolvcomp_stateA( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + }) + + stateB = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + with pytest.raises( + ValueError, match="No SolventComponent found in stateA" + ): + SepTopProtocol._validate_complex_endstates(stateA, stateB) + + +def test_validate_complex_endstates_nosolvcomp_stateB( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + }) + + with pytest.raises( + ValueError, match="No SolventComponent found in stateB" + ): + SepTopProtocol._validate_complex_endstates(stateA, stateB) + + +def test_validate_alchem_comps_missingA( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + alchem_comps = system_validation.get_alchemical_components(stateA, stateB) + + with pytest.raises(ValueError, match='one alchemical components must be present in stateA.'): + SepTopProtocol._validate_alchemical_components(alchem_comps) + + +def test_validate_alchem_comps_missingB( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + alchem_comps = system_validation.get_alchemical_components(stateA, stateB) + + with pytest.raises(ValueError, match='one alchemical components must be present in stateB.'): + SepTopProtocol._validate_alchemical_components(alchem_comps) + + +def test_validate_alchem_comps_toomanyA( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'toluene': benzene_modifications['toluene'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'phenol': benzene_modifications['phenol'], + 'protein': T4_protein_component, + 'solvent': SolventComponent(), + }) + + alchem_comps = system_validation.get_alchemical_components(stateA, stateB) + + assert len(alchem_comps['stateA']) == 2 + + assert len(alchem_comps['stateB']) == 1 + + with pytest.raises(ValueError, match='Found 2 alchemical components in stateA'): + SepTopProtocol._validate_alchemical_components(alchem_comps) + + +def test_validate_alchem_nonsmc( + benzene_modifications, T4_protein_component, +): + stateA = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'solvent': SolventComponent() + }) + + stateB = ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'protein': T4_protein_component + }) + + alchem_comps = system_validation.get_alchemical_components(stateA, stateB) + + with pytest.raises(ValueError, match='Non SmallMoleculeComponent'): + SepTopProtocol._validate_alchemical_components(alchem_comps) + + +# Tests for the alchemical systems. This tests were modified from +# femto (https://github.com/Psivant/femto/tree/main) +def compute_interaction_energy( + epsilon, + sigma, + charge, + distance, + lambda_vdw: float = 1.0, + lambda_charges: float = 1.0, +): + r_electrostatics = distance + r_vdw = (0.5 * sigma**6 * (1.0 - lambda_vdw) + distance**6) ** (1.0 / 6.0) + + return ( + # vdw + 4.0 * lambda_vdw * epsilon * ((sigma / r_vdw) ** 12 - (sigma / r_vdw) ** 6) + # electrostatics + + ONE_4PI_EPS0 * lambda_charges * charge / r_electrostatics + ) * KJ_PER_MOL + + +@pytest.fixture +def three_particle_system(): + force = openmm.NonbondedForce() + force.setNonbondedMethod(openmm.NonbondedForce.NoCutoff) + force.setUseDispersionCorrection(False) + + charges = 0.1, 0.2, -0.3 + sigmas = 1.1, 1.2, 1.3 + epsilons = 210, 220, 230 + + force.addParticle(charges[0], sigmas[0] * openmm.unit.angstrom, epsilons[0]) + force.addParticle(charges[1], sigmas[1] * openmm.unit.angstrom, epsilons[1]) + force.addParticle(charges[2], sigmas[2] * openmm.unit.angstrom, epsilons[2]) + + system = openmm.System() + system.addParticle(1.0) + system.addParticle(1.0) + system.addParticle(1.0) + system.addForce(force) + + distances = [[0.0, 4.0, 3.0], [4.0, 0.0, 5.0], [3.0, 5.0, 0.0]] + + def interaction_energy_fn( + idx_a, idx_b, lambda_vdw: float = 1.0, lambda_charges: float = 1.0 + ): + epsilon = numpy.sqrt(epsilons[idx_a] * epsilons[idx_b]) + sigma = 0.5 * (sigmas[idx_a] + sigmas[idx_b]) + charge = charges[idx_a] * charges[idx_b] + + return compute_interaction_energy( + epsilon, sigma, charge, distances[idx_a][idx_b], lambda_vdw, lambda_charges + ) + + coords = ( + numpy.array( + [[0.0, 0.0, 0.0], [distances[0][1], 0.0, 0.0], [0.0, distances[0][2], 0.0]] + ) + * openmm.unit.angstrom + ) + + return system, coords, interaction_energy_fn + + +class TestNonbondedInteractions: + def test_one_ligand(self, three_particle_system): + """Test scaling the nonbonded interactions of single particles.""" + + system, coords, energy_fn = three_particle_system + + factory = AbsoluteAlchemicalFactory(consistent_exceptions=False) + alchemical_region_A = AlchemicalRegion( + alchemical_atoms=[0], name='A') + alchemical_system = factory.create_alchemical_system( + system, [alchemical_region_A]) + + energy_0 = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 1.0, + 'lambda_electrostatics_A': 1.0, + }, + ) + + # expect lig_1 + solvent, lig_1 + lig_2 and lig_2 + solvent + # interaction when + # lambda=0 + expected_energy_0 = energy_fn(0, 2) + energy_fn(0, 1) + energy_fn(1, 2) + assert is_close(energy_0, expected_energy_0) + + # expect only lig_2 + solvent interaction when lambda=1 + energy_1 = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 0.0, + 'lambda_electrostatics_A': 0.0, + }, + ) + expected_energy_1 = energy_fn(1, 2) + assert is_close(energy_1, expected_energy_1) + + # expect all particles to interact but only lig - solvent interactions to be + # scaled + energy_05 = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 0.5, + 'lambda_electrostatics_A': 0.5, + }, + ) + expected_energy_05 = ( + energy_fn(1, 2) + energy_fn(0, 2, 0.5, 0.5) + energy_fn(0, 1, 0.5, 0.5) + ) + assert is_close(energy_05, expected_energy_05) + + def test_two_ligands(self, three_particle_system): + """Test scaling the nonbonded interactions of single particles.""" + + system, coords, energy_fn = three_particle_system + + # Do it the openmm way + factory = AbsoluteAlchemicalFactory(consistent_exceptions=False) + alchemical_region_A = AlchemicalRegion( + alchemical_atoms=[0], name='A') + alchemical_region_B = AlchemicalRegion( + alchemical_atoms=[1], name='B') + alchemical_system = factory.create_alchemical_system( + system, [alchemical_region_A, alchemical_region_B]) + energy_0 = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 1.0, + 'lambda_electrostatics_A': 1.0, + 'lambda_sterics_B': 0.0, + 'lambda_electrostatics_B': 0.0, + }, + ) + + # expect only lig_1 + solvent interaction when lambda=0 + expected_energy_0 = energy_fn(0, 2) + assert is_close(energy_0, expected_energy_0) + + # expect only lig_2 + solvent interaction when lambda=1 + energy_1 = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 0.0, + 'lambda_electrostatics_A': 0.0, + 'lambda_sterics_B': 1.0, + 'lambda_electrostatics_B': 1.0, + }, + ) + expected_energy_1 = energy_fn(1, 2) + assert is_close(energy_1, expected_energy_1) + + # expect lig_1 + solvent and lig_2 + solvent interaction when lambda=0.5 + # but no lig_1 + lig_2 interaction by default + energy_05 = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 0.5, + 'lambda_electrostatics_A': 0.5, + 'lambda_sterics_B': 0.5, + 'lambda_electrostatics_B': 0.5, + }, + ) + expected_energy_05 = energy_fn(0, 2, 0.5, 0.5) + energy_fn(1, 2, 0.5, 0.5) + assert is_close(energy_05, expected_energy_05) + + def test_two_ligands_charges(self, three_particle_system): + """Test scaling the nonbonded interactions of single particles.""" + + system, coords, energy_fn = three_particle_system + + # Do it the openmm way + factory = AbsoluteAlchemicalFactory(consistent_exceptions=False) + alchemical_region_A = AlchemicalRegion( + alchemical_atoms=[0], name='A') + alchemical_region_B = AlchemicalRegion( + alchemical_atoms=[1], name='B') + alchemical_system = factory.create_alchemical_system( + system, [alchemical_region_A, alchemical_region_B]) + energy = compute_energy( + alchemical_system, + coords, + None, + { + 'lambda_sterics_A': 1.0, + 'lambda_electrostatics_A': 0.8, + 'lambda_sterics_B': 1.0, + 'lambda_electrostatics_B': 0.2, + }, + ) + expected_energy = energy_fn(0, 2, 1.0, 0.8) + energy_fn(1, 2, 1.0, 0.2) + assert is_close(energy, expected_energy) + + +@pytest.fixture +def benzene_toluene_dag(benzene_complex_system, toluene_complex_system): + s = SepTopProtocol.default_settings() + + protocol = SepTopProtocol(settings=s) + + return protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + + +def test_dry_run_benzene_toluene(benzene_toluene_dag, tmpdir): + + prot_units = list(benzene_toluene_dag.protocol_units) + + assert len(prot_units) == 4 + + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + sol_run_unit = [u for u in prot_units + if isinstance(u, SepTopSolventRunUnit)] + complex_setup_unit = [u for u in prot_units + if isinstance(u, SepTopComplexSetupUnit)] + complex_run_unit = [u for u in prot_units + if isinstance(u, SepTopComplexRunUnit)] + assert len(solv_setup_unit) == 1 + assert len(sol_run_unit) == 1 + assert len(complex_setup_unit) == 1 + assert len(complex_run_unit) == 1 + + with tmpdir.as_cwd(): + solv_setup_output = solv_setup_unit[0].run(dry=True) + pdb = md.load_pdb('topology.pdb') + assert pdb.n_atoms == 4481 + central_atoms = np.array([[2, 4475]], dtype=np.int32) + distance = md.compute_distances(pdb, central_atoms)[0][0] + assert np.isclose(distance, 0.76336) + serialized_topology = solv_setup_output['topology'] + serialized_system = solv_setup_output['system'] + solv_sampler = sol_run_unit[0].run( + serialized_system, serialized_topology, dry=True)['debug']['sampler'] + assert solv_sampler.is_periodic + assert isinstance(solv_sampler, MultiStateSampler) + assert isinstance(solv_sampler._thermodynamic_states[0].barostat, + MonteCarloBarostat) + assert solv_sampler._thermodynamic_states[1].pressure == 1 * openmm.unit.bar + # Check we have the right number of atoms in the PDB + pdb = md.load_pdb('hybrid_system.pdb') + assert pdb.n_atoms == 35 + + complex_setup_output = complex_setup_unit[0].run(dry=True) + serialized_topology = complex_setup_output['topology'] + serialized_system = complex_setup_output['system'] + complex_sampler = complex_run_unit[0].run( + serialized_system, serialized_topology, dry=True)['debug'][ + 'sampler'] + assert complex_sampler.is_periodic + assert isinstance(complex_sampler, MultiStateSampler) + assert isinstance(complex_sampler._thermodynamic_states[0].barostat, + MonteCarloBarostat) + assert complex_sampler._thermodynamic_states[ + 1].pressure == 1 * openmm.unit.bar + # Check we have the right number of atoms in the PDB + pdb = md.load_pdb('hybrid_system.pdb') + assert pdb.n_atoms == 2713 + + +@pytest.mark.parametrize('pressure', + [1.0 * openmm.unit.atmosphere, + 0.9 * openmm.unit.atmosphere, + 1.1 * openmm.unit.atmosphere] + ) +def test_dry_run_ligand_system_pressure( + pressure, benzene_complex_system, toluene_complex_system, tmpdir +): + """ + Test that the right nonbonded cutoff is propagated to the system. + """ + settings = SepTopProtocol.default_settings() + settings.thermo_settings.pressure = pressure + + protocol = SepTopProtocol( + settings=settings, + ) + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + dag_units = list(dag.protocol_units) + # Only check the cutoff for the Solvent SetUp Unit + solv_setup_unit = [u for u in dag_units + if isinstance(u, SepTopSolventSetupUnit)] + sol_run_unit = [u for u in dag_units + if isinstance(u, SepTopSolventRunUnit)] + with tmpdir.as_cwd(): + solv_setup_output = solv_setup_unit[0].run(dry=True) + serialized_topology = solv_setup_output['topology'] + serialized_system = solv_setup_output['system'] + solv_sampler = sol_run_unit[0].run( + serialized_system, serialized_topology, dry=True)['debug']['sampler'] + + assert solv_sampler._thermodynamic_states[1].pressure == pressure + + +@pytest.mark.parametrize('cutoff', + [1.0 * offunit.nanometer, + 12.0 * offunit.angstrom, + 0.9 * offunit.nanometer] + ) +def test_dry_run_ligand_system_cutoff( + cutoff, benzene_complex_system, toluene_complex_system, tmpdir +): + """ + Test that the right nonbonded cutoff is propagated to the system. + """ + settings = SepTopProtocol.default_settings() + settings.solvent_solvation_settings.solvent_padding = 1.5 * offunit.nanometer + settings.solvent_forcefield_settings.nonbonded_cutoff = cutoff + + protocol = SepTopProtocol( + settings=settings, + ) + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + dag_units = list(dag.protocol_units) + # Only check the cutoff for the Solvent SetUp Unit + solv_setup_unit = [u for u in dag_units + if isinstance(u, SepTopSolventSetupUnit)] + + with tmpdir.as_cwd(): + serialized_system = solv_setup_unit[0].run(dry=True)['system'] + system = deserialize(serialized_system) + nbfs = [f for f in system.getForces() if + isinstance(f, CustomNonbondedForce) or + isinstance(f, NonbondedForce)] + + for f in nbfs: + f_cutoff = from_openmm(f.getCutoffDistance()) + assert f_cutoff == cutoff + + +def test_dry_run_benzene_toluene_tip4p( + benzene_complex_system, toluene_complex_system, tmpdir): + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + s.solvent_forcefield_settings.forcefields = [ + "amber/ff14SB.xml", # ff14SB protein force field + "amber/tip4pew_standard.xml", # FF we are testsing with the fun VS + "amber/phosaa10.xml", # Handles THE TPO + ] + s.solvent_solvation_settings.solvent_model = 'tip4pew' + s.integrator_settings.reassign_velocities = True + + protocol = SepTopProtocol(settings=s) + + # Create DAG from protocol, get the vacuum and solvent units + # and eventually dry run the first solvent unit + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + + prot_units = list(dag.protocol_units) + + assert len(prot_units) == 4 + + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + sol_run_unit = [u for u in prot_units + if isinstance(u, SepTopSolventRunUnit)] + + assert len(solv_setup_unit) == 1 + assert len(sol_run_unit) == 1 + + with tmpdir.as_cwd(): + solv_setup_output = solv_setup_unit[0].run(dry=True) + serialized_topology = solv_setup_output['topology'] + serialized_system = solv_setup_output['system'] + solv_run = sol_run_unit[0].run( + serialized_system, serialized_topology, dry=True)['debug']['sampler'] + assert solv_run.is_periodic + + +def test_dry_run_benzene_toluene_noncubic( + benzene_complex_system, toluene_complex_system, tmpdir): + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + s.solvent_solvation_settings.solvent_padding = 1.5 * offunit.nanometer + s.solvent_solvation_settings.box_shape = 'dodecahedron' + + protocol = SepTopProtocol(settings=s) + + # Create DAG from protocol, get the vacuum and solvent units + # and eventually dry run the first solvent unit + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + + prot_units = list(dag.protocol_units) + + assert len(prot_units) == 4 + + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + + assert len(solv_setup_unit) == 1 + + with tmpdir.as_cwd(): + solv_setup_output = solv_setup_unit[0].run(dry=True) + serialized_system = solv_setup_output['system'] + system = deserialize(serialized_system) + vectors = system.getDefaultPeriodicBoxVectors() + width = float(from_openmm(vectors)[0][0].to('nanometer').m) + + # dodecahedron has the following shape: + # [width, 0, 0], [0, width, 0], [0.5, 0.5, 0.5 * sqrt(2)] * width + + expected_vectors = [ + [width, 0, 0], + [0, width, 0], + [0.5 * width, 0.5 * width, + 0.5 * sqrt(2) * width], + ] * offunit.nanometer + assert_allclose( + expected_vectors, + from_openmm(vectors) + ) + + +def test_dry_run_solv_user_charges_benzene_toluene( + benzene_modifications, T4_protein_component, tmpdir): + """ + Create a test system with fictitious user supplied charges and + ensure that they are properly passed through to the constructed + alchemical system. + """ + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + + protocol = SepTopProtocol(settings=s) + + def assign_fictitious_charges(offmol): + """ + Get a random array of fake partial charges for your offmol. + """ + rand_arr = np.random.randint(1, 10, size=offmol.n_atoms) / 100 + rand_arr[-1] = -sum(rand_arr[:-1]) + return rand_arr * offunit.elementary_charge + + def check_partial_charges(offmol): + offmol_pchgs = assign_fictitious_charges(offmol) + offmol.partial_charges = offmol_pchgs + smc = openfe.SmallMoleculeComponent.from_openff(offmol) + + # check propchgs + prop_chgs = smc.to_dict()['molprops'][ + 'atom.dprop.PartialCharge'] + prop_chgs = np.array(prop_chgs.split(), dtype=float) + np.testing.assert_allclose(prop_chgs, offmol_pchgs) + return smc, prop_chgs + + benzene_offmol = benzene_modifications['benzene'].to_openff() + toluene_offmol = benzene_modifications['toluene'].to_openff() + + benzene_smc, benzene_charge = check_partial_charges(benzene_offmol) + toluene_smc, toluene_charge = check_partial_charges(toluene_offmol) + + # Create ChemicalSystems + stateA = ChemicalSystem({ + 'benzene': benzene_smc, + 'T4l': T4_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'toluene': toluene_smc, + 'T4l': T4_protein_component, + 'solvent': SolventComponent(), + }) + + # Create DAG from protocol, get the vacuum and solvent units + # and eventually dry run the first solvent unit + dag = protocol.create(stateA=stateA, stateB=stateB, mapping=None,) + prot_units = list(dag.protocol_units) + + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + complex_setup_unit = [u for u in prot_units + if isinstance(u, SepTopComplexSetupUnit)] + + # check sol_unit charges + with tmpdir.as_cwd(): + serialized_system = solv_setup_unit[0].run(dry=True)['system'] + system = deserialize(serialized_system) + nonbond = [f for f in system.getForces() + if isinstance(f, openmm.NonbondedForce)] + assert len(nonbond) == 1 + + # loop through the 12 benzene atoms + # partial charge is stored in the offset + for i in range(12): + offsets = nonbond[0].getParticleParameterOffset(i) + c = ensure_quantity(offsets[2], 'openff') + assert pytest.approx(c) == benzene_charge[i] + # loop through 15 toluene atoms + for inx, i in enumerate(range(12, 27)): + offsets = nonbond[0].getParticleParameterOffset(i) + c = ensure_quantity(offsets[2], 'openff') + assert pytest.approx(c) == toluene_charge[inx] + + # check complex_unit charges + with tmpdir.as_cwd(): + serialized_system = complex_setup_unit[0].run(dry=True)['system'] + system = deserialize(serialized_system) + nonbond = [f for f in system.getForces() + if isinstance(f, openmm.NonbondedForce)] + assert len(nonbond) == 1 + + # loop through the 12 benzene atoms + # partial charge is stored in the offset + for i in range(12): + offsets = nonbond[0].getParticleParameterOffset(i) + c = ensure_quantity(offsets[2], 'openff') + assert pytest.approx(c) == benzene_charge[i] + # loop through 15 toluene atoms + for inx, i in enumerate(range(12, 27)): + offsets = nonbond[0].getParticleParameterOffset(i) + c = ensure_quantity(offsets[2], 'openff') + assert pytest.approx(c) == toluene_charge[inx] + + +def test_high_timestep(benzene_complex_system, toluene_complex_system, tmpdir): + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + s.solvent_forcefield_settings.hydrogen_mass = 1.0 + s.complex_forcefield_settings.hydrogen_mass = 1.0 + + protocol = SepTopProtocol(settings=s) + + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + prot_units = list(dag.protocol_units) + + with tmpdir.as_cwd(): + errmsg = "too large for hydrogen mass" + with pytest.raises(ValueError, match=errmsg): + prot_units[0].run(dry=True) + + +@pytest.fixture +def T4L_xml(benzene_complex_system, toluene_complex_system, tmp_path_factory): + s = SepTopProtocol.default_settings() + + protocol = SepTopProtocol(settings=s) + + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + # Get the SepTopSolventSetupUnit + prot_units = list(dag.protocol_units) + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + + tmp = tmp_path_factory.mktemp('xml_reg') + + dryrun = solv_setup_unit[0].run(dry=True, shared_basepath=tmp) + + system = dryrun['system'] + return deserialize(system) + + +@pytest.fixture +def T4L_reference_xml(): + with resources.files('openfe.tests.data.openmm_septop') as d: + f = d / 'system.xml.bz2' + return deserialize(pathlib.Path(f)) + + +# @pytest.mark.slow +class TestT4LXmlRegression: + """Generates SepTop system XML (solvent) and performs regression test""" + @staticmethod + def test_particles(T4L_xml, T4L_reference_xml): + nr_particles = T4L_xml.getNumParticles() + nr_particles_ref = T4L_reference_xml.getNumParticles() + assert nr_particles == nr_particles_ref + particle_masses = [T4L_xml.getParticleMass(i) for i in range(nr_particles)] + particle_masses_ref = [T4L_reference_xml.getParticleMass(i) for i in range(nr_particles)] + assert particle_masses + + for a, b in zip(particle_masses, particle_masses_ref): + assert a == b + + @staticmethod + def test_constraints(T4L_xml, T4L_reference_xml): + nr_constraints = T4L_xml.getNumConstraints() + nr_constraints_ref = T4L_reference_xml.getNumConstraints() + assert nr_constraints == nr_constraints_ref + constraints = [T4L_xml.getConstraintParameters(i) for i in range(nr_constraints)] + constraints_ref = [T4L_reference_xml.getConstraintParameters(i) for i in range(nr_constraints)] + assert constraints + + for a, b in zip(constraints, constraints_ref): + # Particle 1 + assert a[0] == b[0] + # Particle 2 + assert a[1] == b[1] + # Constraint Quantity + assert a[2] == b[2] + + +def test_unit_tagging(benzene_toluene_dag, tmpdir): + # test that executing the units includes correct gen and repeat info + dag_units = benzene_toluene_dag.protocol_units + with ( + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopComplexSetupUnit.run', + return_value={'system': pathlib.Path('system.xml.bz2'), + 'topology': 'topology.pdb'}), + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopComplexRunUnit._execute', + return_value={'repeat_id': 0, + 'generation': 0, + 'simtype': 'complex', + 'nc': 'file.nc', + 'last_checkpoint': 'chck.nc'}, + ), + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopSolventSetupUnit.run', + return_value={'system': pathlib.Path('system.xml.bz2'), + 'topology': 'topology.pdb'}), + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopSolventRunUnit._execute', + return_value={'repeat_id': 0, + 'generation': 0, + 'simtype': 'solvent', + 'nc': 'file.nc', + 'last_checkpoint': 'chck.nc'}), + ): + results = [] + for u in dag_units: + ret = u.execute(context=gufe.Context(tmpdir, tmpdir)) + results.append(ret) + solv_repeats = set() + complex_repeats = set() + for ret in results: + assert isinstance(ret, gufe.ProtocolUnitResult) + assert ret.outputs['generation'] == 0 + if ret.outputs['simtype'] == 'complex': + complex_repeats.add(ret.outputs['repeat_id']) + else: + solv_repeats.add(ret.outputs['repeat_id']) + # Repeat ids are random ints so just check their lengths + # Length is two, one for Setup, one for the Run Unit + assert len(complex_repeats) == len(solv_repeats) == 2 + + +def test_gather(benzene_toluene_dag, tmpdir): + # check that .gather behaves as expected + with ( + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopComplexSetupUnit.run', + return_value={'system': pathlib.Path('system.xml.bz2'), 'topology': + 'topology.pdb'}), + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopComplexRunUnit._execute', + return_value={'repeat_id': 0, + 'generation': 0, + 'simtype': 'complex', + 'nc': 'file.nc', + 'last_checkpoint': 'chck.nc'}, + ), + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopSolventSetupUnit.run', + return_value={'system': pathlib.Path('system.xml.bz2'), 'topology': + 'topology.pdb'}), + mock.patch( + 'openfe.protocols.openmm_septop.equil_septop_method' + '.SepTopSolventRunUnit._execute', + return_value={'repeat_id': 0, + 'generation': 0, + 'simtype': 'solvent', + 'nc': 'file.nc', + 'last_checkpoint': 'chck.nc'}), + ): + dagres = gufe.protocols.execute_DAG(benzene_toluene_dag, + shared_basedir=tmpdir, + scratch_basedir=tmpdir, + keep_shared=True) + + protocol = SepTopProtocol( + settings=SepTopProtocol.default_settings(), + ) + + res = protocol.gather([dagres]) + + assert isinstance(res, openfe.protocols.openmm_septop.SepTopProtocolResult) + + +class TestProtocolResult: + @pytest.fixture() + def protocolresult(self, septop_json): + d = json.loads(septop_json, + cls=gufe.tokenization.JSON_HANDLER.decoder) + + pr = openfe.ProtocolResult.from_dict(d['protocol_result']) + + return pr + + def test_reload_protocol_result(self, septop_json): + d = json.loads(septop_json, + cls=gufe.tokenization.JSON_HANDLER.decoder) + + pr = SepTopProtocolResult.from_dict(d['protocol_result']) + + assert pr + + def test_get_estimate(self, protocolresult): + est = protocolresult.get_estimate() + + assert est + assert est.m == pytest.approx(-3.03, abs=0.5) + assert isinstance(est, offunit.Quantity) + assert est.is_compatible_with(offunit.kilojoule_per_mole) + + def test_get_uncertainty(self, protocolresult): + est = protocolresult.get_uncertainty() + + assert est.m == pytest.approx(0.0, abs=0.2) + assert isinstance(est, offunit.Quantity) + assert est.is_compatible_with(offunit.kilojoule_per_mole) + + def test_get_individual(self, protocolresult): + inds = protocolresult.get_individual_estimates() + + assert isinstance(inds, dict) + assert isinstance(inds['solvent'], list) + assert isinstance(inds['complex'], list) + assert len(inds['solvent']) == len(inds['complex']) == 1 + for e, u in itertools.chain(inds['solvent'], inds['complex']): + assert e.is_compatible_with(offunit.kilojoule_per_mole) + assert u.is_compatible_with(offunit.kilojoule_per_mole) + + # ToDo: Add Results from longer test run that has this analysis + + # @pytest.mark.parametrize('key', ['solvent', 'complex']) + # def test_get_forwards_etc(self, key, protocolresult): + # far = protocolresult.get_forward_and_reverse_energy_analysis() + # + # assert isinstance(far, dict) + # assert isinstance(far[key], list) + # far1 = far[key][0] + # assert isinstance(far1, dict) + # + # for k in ['fractions', 'forward_DGs', 'forward_dDGs', + # 'reverse_DGs', 'reverse_dDGs']: + # assert k in far1 + # + # if k == 'fractions': + # assert isinstance(far1[k], np.ndarray) + # + # @pytest.mark.parametrize('key', ['solvent', 'complex']) + # def test_get_frwd_reverse_none_return(self, key, protocolresult): + # # fetch the first result of type key + # data = [i for i in protocolresult.data[key].values()][0][0] + # # set the output to None + # data.outputs['forward_and_reverse_energies'] = None + # + # # now fetch the analysis results and expect a warning + # wmsg = ("were found in the forward and reverse dictionaries " + # f"of the repeats of the {key}") + # with pytest.warns(UserWarning, match=wmsg): + # protocolresult.get_forward_and_reverse_energy_analysis() + # + @pytest.mark.parametrize('key', ['solvent', 'complex']) + def test_get_overlap_matrices(self, key, protocolresult): + ovp = protocolresult.get_overlap_matrices() + + assert isinstance(ovp, dict) + assert isinstance(ovp[key], list) + assert len(ovp[key]) == 1 + + ovp1 = ovp[key][0] + assert isinstance(ovp1['matrix'], np.ndarray) + assert ovp1['matrix'].shape == (19, 19) + + @pytest.mark.parametrize('key', ['solvent', 'complex']) + def test_get_replica_transition_statistics(self, key, protocolresult): + rpx = protocolresult.get_replica_transition_statistics() + + assert isinstance(rpx, dict) + assert isinstance(rpx[key], list) + assert len(rpx[key]) == 1 + rpx1 = rpx[key][0] + assert 'eigenvalues' in rpx1 + assert 'matrix' in rpx1 + assert rpx1['eigenvalues'].shape == (19,) + assert rpx1['matrix'].shape == (19, 19) + + @pytest.mark.parametrize('key', ['solvent', 'complex']) + def test_equilibration_iterations(self, key, protocolresult): + eq = protocolresult.equilibration_iterations() + + assert isinstance(eq, dict) + assert isinstance(eq[key], list) + assert len(eq[key]) == 1 + assert all(isinstance(v, float) for v in eq[key]) + + @pytest.mark.parametrize('key', ['solvent', 'complex']) + def test_production_iterations(self, key, protocolresult): + prod = protocolresult.production_iterations() + + assert isinstance(prod, dict) + assert isinstance(prod[key], list) + assert len(prod[key]) == 1 + assert all(isinstance(v, float) for v in prod[key]) + + def test_filenotfound_replica_states(self, protocolresult): + errmsg = "File could not be found" + + with pytest.raises(ValueError, match=errmsg): + protocolresult.get_replica_states() diff --git a/openfe/tests/protocols/test_openmm_septop_slow.py b/openfe/tests/protocols/test_openmm_septop_slow.py new file mode 100644 index 000000000..48485bd61 --- /dev/null +++ b/openfe/tests/protocols/test_openmm_septop_slow.py @@ -0,0 +1,314 @@ +# This code is part of OpenFE and is licensed under the MIT license. +# For details, see https://github.com/OpenFreeEnergy/openfe + +import pytest +from openff.units import unit +from gufe.protocols import execute_DAG +import openfe +import simtk +from openfe import ChemicalSystem, SolventComponent +from openfe.protocols.openmm_septop import ( + SepTopSolventSetupUnit, + SepTopProtocol, +) +from openfe.protocols.openmm_septop.femto_utils import compute_energy, is_close +from openfe.protocols.openmm_septop.utils import deserialize, SepTopParameterState + +from openmm import Platform +import os +import pathlib +import mdtraj as md +import numpy as np + + +@pytest.fixture() +def default_settings(): + return SepTopProtocol.default_settings() + + +def compare_energies(alchemical_system, positions): + + alchemical_state = SepTopParameterState.from_system(alchemical_system) + + from openmmtools.alchemy import AbsoluteAlchemicalFactory + + energy = AbsoluteAlchemicalFactory.get_energy_components( + alchemical_system, alchemical_state, positions + ) + na_A = 'alchemically modified NonbondedForce for non-alchemical/alchemical sterics for region A' + na_B = 'alchemically modified NonbondedForce for non-alchemical/alchemical sterics for region B' + nonbonded = 'unmodified NonbondedForce' + + # Lambda 0: LigandA sterics on, elec on, ligand B sterics off, elec off + alchemical_state.lambda_sterics_A = 1 + alchemical_state.lambda_sterics_B = 0 + alchemical_state.lambda_electrostatics_A = 1 + alchemical_state.lambda_electrostatics_B = 0 + energy_0 = AbsoluteAlchemicalFactory.get_energy_components( + alchemical_system, alchemical_state, positions + ) + + # Lambda 7: LigandA sterics on, elec on, ligand B sterics on, elec off + alchemical_state.lambda_sterics_A = 1 + alchemical_state.lambda_sterics_B = 1 + alchemical_state.lambda_electrostatics_A = 1 + alchemical_state.lambda_electrostatics_B = 0 + energy_7 = AbsoluteAlchemicalFactory.get_energy_components( + alchemical_system, alchemical_state, positions + ) + + # Lambda 8: LigandA sterics on, elec partially on, + # ligand B sterics on, elec partially on + alchemical_state.lambda_sterics_A = 1 + alchemical_state.lambda_sterics_B = 1 + alchemical_state.lambda_electrostatics_A = 0.75 + alchemical_state.lambda_electrostatics_B = 0.25 + energy_8 = AbsoluteAlchemicalFactory.get_energy_components( + alchemical_system, alchemical_state, positions + ) + + # Lambda 12: LigandA sterics on, elec off, ligand B sterics on, elec on + alchemical_state.lambda_sterics_A = 1 + alchemical_state.lambda_sterics_B = 1 + alchemical_state.lambda_electrostatics_A = 0 + alchemical_state.lambda_electrostatics_B = 1 + energy_12 = AbsoluteAlchemicalFactory.get_energy_components( + alchemical_system, alchemical_state, positions + ) + + # Lambda 13: LigandA sterics partially on, elec off, ligand B sterics on, elec on + alchemical_state.lambda_sterics_A = 0.857142857 + alchemical_state.lambda_sterics_B = 1 + alchemical_state.lambda_electrostatics_A = 0 + alchemical_state.lambda_electrostatics_B = 1 + energy_13 = AbsoluteAlchemicalFactory.get_energy_components( + alchemical_system, alchemical_state, positions + ) + + return na_A, na_B, nonbonded, energy, energy_0, energy_7, energy_8, energy_12, energy_13 + + +# @pytest.mark.integration # takes too long to be a slow test ~ 4 mins locally +@pytest.mark.flaky(reruns=3) # pytest-rerunfailures; we can get bad minimisation +# @pytest.mark.parametrize('platform', ['CPU', 'CUDA']) +def test_lambda_energies(bace_ligands, bace_protein_component, tmpdir): + # check system parametrisation works even if confgen fails + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + s.solvent_equil_simulation_settings.minimization_steps = 100 + s.solvent_equil_simulation_settings.equilibration_length_nvt = 10 * unit.picosecond + s.solvent_equil_simulation_settings.equilibration_length = 10 * unit.picosecond + s.solvent_equil_simulation_settings.production_length = 1 * unit.picosecond + s.solvent_solvation_settings.box_shape = 'dodecahedron' + s.solvent_solvation_settings.solvent_padding = 1.8 * unit.nanometer + + protocol = SepTopProtocol( + settings=s, + ) + + stateA = ChemicalSystem({ + 'lig_02': bace_ligands['lig_02'], + 'protein': bace_protein_component, + 'solvent': SolventComponent(), + }) + + stateB = ChemicalSystem({ + 'lig_03': bace_ligands['lig_03'], + 'protein': bace_protein_component, + 'solvent': SolventComponent(), + }) + + # Create DAG from protocol, get the vacuum and solvent units + # and eventually dry run the first vacuum unit + dag = protocol.create( + stateA=stateA, + stateB=stateB, + mapping=None, + ) + prot_units = list(dag.protocol_units) + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + + with tmpdir.as_cwd(): + output = solv_setup_unit[0].run() + system = output["system"] + alchemical_system = deserialize(system) + topology = output["topology"] + pdb = simtk.openmm.app.pdbfile.PDBFile(str(topology)) + positions = pdb.getPositions(asNumpy=True) + + # Remove Harmonic restraint force solvent + alchemical_system.removeForce(13) + + na_A, na_B, nonbonded, energy, energy_0, energy_7, energy_8, \ + energy_12, energy_13 = compare_energies(alchemical_system, positions) + + for key, value in energy.items(): + if key == na_A: + assert is_close(value, energy_0[key]) + assert is_close(value, energy_7[key]) + assert is_close(value, energy_8[key]) + assert is_close(value, energy_12[key]) + assert not is_close(value, energy_13[key]) + elif key == na_B: + assert not is_close(value, energy_0[key]) + assert energy_0[key].value_in_unit( + simtk.unit.kilojoule_per_mole) == 0 + assert is_close(value, energy_7[key]) + assert is_close(value, energy_8[key]) + assert is_close(value, energy_12[key]) + assert is_close(value, energy_13[key]) + elif key == nonbonded: + assert not is_close(value, energy_0[key]) + assert is_close(energy_0[key], energy_7[key]) + assert not is_close(energy_0[key], energy_8[key]) + assert not is_close(energy_0[key], energy_12[key]) + assert not is_close(energy_0[key], energy_13[key]) + else: + assert is_close(value, energy_0[key]) + assert is_close(value, energy_7[key]) + assert is_close(value, energy_8[key]) + assert is_close(value, energy_12[key]) + assert is_close(value, energy_13[key]) + + +@pytest.fixture +def available_platforms() -> set[str]: + return {Platform.getPlatform(i).getName() for i in range(Platform.getNumPlatforms())} + + +@pytest.fixture +def set_openmm_threads_1(): + # for vacuum sims, we want to limit threads to one + # this fixture sets OPENMM_CPU_THREADS='1' for a single test, then reverts to previously held value + previous: str | None = os.environ.get('OPENMM_CPU_THREADS') + + try: + os.environ['OPENMM_CPU_THREADS'] = '1' + yield + finally: + if previous is None: + del os.environ['OPENMM_CPU_THREADS'] + else: + os.environ['OPENMM_CPU_THREADS'] = previous + + +@pytest.mark.integration +@pytest.mark.flaky(reruns=3) # pytest-rerunfailures; we can get bad minimisation +@pytest.mark.parametrize('platform', ['CPU', 'CUDA']) +def test_openmm_run_engine(platform, + available_platforms, + benzene_modifications, + T4_protein_component, + set_openmm_threads_1, tmpdir): + if platform not in available_platforms: + pytest.skip(f"OpenMM Platform: {platform} not available") + + # Run a really short calculation to check everything is going well + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + s.solvent_output_settings.output_indices = "resname UNK" + s.complex_equil_simulation_settings.equilibration_length = 0.1 * unit.picosecond + s.complex_equil_simulation_settings.production_length = 0.1 * unit.picosecond + s.complex_simulation_settings.equilibration_length = 0.1 * unit.picosecond + s.complex_simulation_settings.production_length = 0.1 * unit.picosecond + s.solvent_equil_simulation_settings.equilibration_length_nvt = 0.1 * unit.picosecond + s.solvent_equil_simulation_settings.equilibration_length = 0.1 * unit.picosecond + s.solvent_equil_simulation_settings.production_length = 0.1 * unit.picosecond + s.solvent_simulation_settings.equilibration_length = 0.1 * unit.picosecond + s.solvent_simulation_settings.production_length = 0.1 * unit.picosecond + s.complex_engine_settings.compute_platform = platform + s.solvent_engine_settings.compute_platform = platform + s.complex_simulation_settings.time_per_iteration = 20 * unit.femtosecond + s.solvent_simulation_settings.time_per_iteration = 20 * unit.femtosecond + s.complex_output_settings.checkpoint_interval = 20 * unit.femtosecond + s.solvent_output_settings.checkpoint_interval = 20 * unit.femtosecond + + protocol = SepTopProtocol( + settings=s, + ) + + stateA = openfe.ChemicalSystem({ + 'benzene': benzene_modifications['benzene'], + 'T4L': T4_protein_component, + 'solvent': openfe.SolventComponent() + }) + + stateB = openfe.ChemicalSystem({ + 'toluene': benzene_modifications['toluene'], + 'T4L': T4_protein_component, + 'solvent': openfe.SolventComponent(), + }) + + # Create DAG from protocol, get the vacuum and solvent units + # and eventually dry run the first solvent unit + dag = protocol.create( + stateA=stateA, + stateB=stateB, + mapping=None, + ) + + cwd = pathlib.Path(str(tmpdir)) + r = execute_DAG(dag, shared_basedir=cwd, scratch_basedir=cwd, + keep_shared=True) + + assert r.ok() + for pur in r.protocol_unit_results: + unit_shared = tmpdir / f"shared_{pur.source_key}_attempt_0" + assert unit_shared.exists() + assert pathlib.Path(unit_shared).is_dir() + checkpoint = pur.outputs['last_checkpoint'] + assert checkpoint == f"{pur.outputs['simtype']}_checkpoint.nc" + assert (unit_shared / checkpoint).exists() + nc = pur.outputs['nc'] + assert nc == unit_shared / f"{pur.outputs['simtype']}.nc" + assert nc.exists() + + # Test results methods that need files present + results = protocol.gather([r]) + states = results.get_replica_states() + assert len(states.items()) == 2 + assert len(states['solvent']) == 1 + assert states['solvent'][0].shape[1] == 19 + + +@pytest.mark.integration +@pytest.mark.flaky(reruns=1) # pytest-rerunfailures; we can get bad minimisation +@pytest.mark.parametrize('platform', ['CPU', 'CUDA']) +def test_restraints_solvent(platform, + available_platforms, + benzene_complex_system, + toluene_complex_system, + set_openmm_threads_1, tmpdir): + if platform not in available_platforms: + pytest.skip(f"OpenMM Platform: {platform} not available") + + # Run a really short calculation to check everything is going well + s = SepTopProtocol.default_settings() + s.protocol_repeats = 1 + s.solvent_equil_simulation_settings.equilibration_length_nvt = 10 * unit.picosecond + s.solvent_equil_simulation_settings.equilibration_length = 10 * unit.picosecond + s.solvent_equil_simulation_settings.production_length = 10 * unit.picosecond + s.solvent_engine_settings.compute_platform = platform + + protocol = SepTopProtocol( + settings=s, + ) + + # Create DAG from protocol, get the vacuum and solvent units + # and eventually dry run the first solvent unit + dag = protocol.create( + stateA=benzene_complex_system, + stateB=toluene_complex_system, + mapping=None, + ) + prot_units = list(dag.protocol_units) + solv_setup_unit = [u for u in prot_units + if isinstance(u, SepTopSolventSetupUnit)] + solv_setup_output = solv_setup_unit[0].run() + pdb = md.load_pdb('topology.pdb') + assert pdb.n_atoms == 4481 + central_atoms = np.array([[2, 4475]], dtype=np.int32) + distance = md.compute_distances(pdb, central_atoms)[0][0] + # For right now just checking that ligands at least somewhat apart + assert distance > 0.5 \ No newline at end of file