diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 35d978d02d3836d420e2f2b09c2f925e867918cb..6476bce78f8fc3708d528125e9090ba470b0e0dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,77 +6,59 @@ stages: - test -# CentOS7 STAGE -test:centos7.3: +# Ubuntu22.04 STAGE +test:ubuntu22.04: stage: test - image: centos:7.3.1611 + image: ubuntu:22.04 before_script: - - echo "Running centos7.3 'before_script'..." - - yum -y -q -e 0 install tcl - - yum -y -q -e 0 install glibc-common - - yum -y -q -e 0 install glibc-devel - - yum -y -q -e 0 install make - - yum -y -q -e 0 install libicu - - yum -y -q -e 0 install libjpeg-turbo - - yum -y -q -e 0 install freetype - - yum -y -q -e 0 install openssl - - mkdir -p /scicore/soft/modules - - ln -s /export/soft/apps/centos7/generic /scicore/soft/apps - - ln -s /export/soft/modules/centos7/generic/all /scicore/soft/modules - - source /export/soft/lua_lmod/centos7/lmod/lmod/init/bash - - module use /scicore/soft/modules/all - - module load foss/2021a - - module load CMake/3.23.1-GCCcore-10.3.0 - - module load Python/3.9.5-GCCcore-10.3.0 - - module load Eigen/3.4.0-GCCcore-10.3.0 - - module load Boost.Python/1.76.0-GCC-10.3.0 - - module load LibTIFF/.4.2.0-GCCcore-10.3.0 - - module load libpng/.1.6.37-GCCcore-10.3.0 - - module load HH-suite/3.2.0-gompi-2021a - - module load Perl/5.32.1-GCCcore-10.3.0 - - module load OpenMM/7.7.0-foss-2021a - - module load SQLite/3.35.4-GCCcore-10.3.0 - - module load dssp/2.2.1-foss-2021a - - module load msms/2.6.1-linux-x86_64 - - module load ClustalW2/2.1-foss-2021a - - module load networkx/2.5.1-foss-2021a - - echo "... done running centos7.3 'before_script'." + - echo "Running ubuntu22.04 'before_script'..." + - apt-get update -y + - apt-get install -y cmake + - apt-get install -y g++ + - apt-get install -y wget + - apt-get install -y libsqlite3-dev + - apt-get install -y sip-dev + - apt-get install -y libtiff-dev + - apt-get install -y libfftw3-dev + - apt-get install -y libeigen3-dev + - apt-get install -y libboost-all-dev + - apt-get install -y libpng-dev + - apt-get install -y python3-all + - apt-get install -y python3-numpy + - apt-get install -y python3-scipy + - apt-get install -y python3-networkx + - apt-get install -y clustalw + - apt-get install -y voronota + - apt-get install -y libopenmm-dev + - apt-get install -y libparasail-dev + - echo "... done running ubuntu22.04 'before_script'." script: - - echo "Testing on CentOS 7..." + - echo "Testing on Ubuntu 22.04..." - echo " Building OST..." - mkdir build-ci - cd build-ci - - cmake .. -DENABLE_MM=1 - -DOPEN_MM_LIBRARY=$EBROOTOPENMM/lib/libOpenMM.so - -DOPEN_MM_PLUGIN_DIR=$EBROOTOPENMM/lib/plugins - -DOPEN_MM_INCLUDE_DIR=$EBROOTOPENMM/include - -DCOMPILE_TMTOOLS=1 - -DENABLE_INFO=OFF - -DENABLE_GFX=OFF + - cmake .. -DOPTIMIZE=ON + -DENABLE_GFX=ON -DENABLE_GUI=OFF - -DUSE_RPATH=1 - -DPython_ROOT_DIR=$EBROOTPYTHON - -DEIGEN3_INCLUDE_DIR=$EBROOTEIGEN/include - -DFFTW_LIBRARY=$EBROOTFFTW/lib/libfftw3f.a - -DFFTW_INCLUDE_DIR=$EBROOTFFTW/include - -DSQLITE3_LIBRARY=$EBROOTSQLITE/lib/libsqlite3.so - -DSQLITE3_INCLUDE_DIR=$EBROOTSQLITE/include - -DBOOST_ROOT=$EBROOTBOOST - -DPNG_LIBRARY=$EBROOTLIBPNG/lib/libpng.so - -DPNG_PNG_INCLUDE_DIR=$EBROOTLIBPNG/include - -DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.so - -DZLIB_INCLUDE_DIR=$EBROOTZLIB/include - -DTIFF_INCLUDE_DIR=$EBROOTLIBTIFF/include - -DTIFF_LIBRARY=$EBROOTLIBTIFF/lib/libtiff.so - -DZLIB_INCLUDE_DIR=$EBROOTZLIB/include - -DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.so - -DOPTIMIZE=1 - -DCMAKE_C_FLAGS='-L${EBROOTLIBPNG}/lib/ -L${EBROOTLIBTIFF}/lib/ -L${EBROOTZLIB}/lib/ -isystem ${EBROOTBOOST}/include -isystem ${EBROOTOPENMM}/include' - -DCMAKE_CXX_FLAGS='-L${EBROOTLIBPNG}/lib/ -L${EBROOTLIBTIFF}/lib/ -L${EBROOTZLIB}/lib/ -isystem ${EBROOTBOOST}/include -isystem ${EBROOTOPENMM}/include' - -DCMAKE_EXE_LINKER_FLAGS=" -pthread" + -DENABLE_INFO=OFF + -DENABLE_MM=1 + -DOPEN_MM_PLUGIN_DIR=/usr/lib/x86_64-linux-gnu/openmm + -DENABLE_PARASAIL=1 - make -j 2 - echo " ... done building OST." - - echo " Running unit tests for OST..." + - echo " Downloading chemical compounds..." + - wget ftp://ftp.wwpdb.org/pub/pdb/data/monomers/components.cif.gz + - echo " ... done downloading compounds" + - echo " Building a compound library..." + - stage/bin/chemdict_tool create components.cif.gz compounds.chemlib pdb -i + - stage/bin/chemdict_tool update ../modules/conop/data/charmm.cif compounds.chemlib charmm + - echo " ... done building the compound lib." + - echo " Building OST with the compound lib..." + - cmake .. -DCOMPOUND_LIB=compounds.chemlib + - make -j 2 + - echo " ... done building OST with the compound library..." + - echo " Running unit tests for OST..." - make check - echo " ... done running unit tests for OST..." - - echo "... done testing on CentOS 7." + - echo "... done testing on Ubuntu 22.04." + diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 7fa72744ab8b0779c24e9f1a12418f72c903e4c8..ef6d7297c4ad593b5988e81ecbd21a7e2c58ca3e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,58 @@ +Changes in Release 2.8.0 +-------------------------------------------------------------------------------- + + * heavy water (DOD) is now recognised as 'water' instead of 'non-polymer' by + the compounds library. + * Added a '--version' argument to the 'ost' executable + * SEQRES information is now read from the entity_poly_seq category in mmCIF. + The canonical as well as semi-canonical (with 3 letter-codes in bracket) + SEQRES are now available from the MMCifInfo object. The + (Get|Set)ReadCanonicalSeqRes (Get|Set)ReadSeqRes methods no longer exist. + * Disabled numpy support in C++ layer to simplify build system. Some exotic + OST functionality directly accessed Python numpy arrays from the C++ layer + which required to compile against numpy headers. + * Introduce GDT score which is equivalent to LGA (99.2% of CASP15 TS models + score within 3 GDTTS points when compared to LGA results). + Oligo/RNA support comes for free when using the ost.mol.alg.scoring.Scorer + object. + * Introduce ilDDT score in scoring.Scorer and compare-structures action. + It's an all atom lDDT score which only considers interface contacts. + * Rigid superposition based scores (RMSD, GDT) in ost.mol.alg.scoring.Scorer + now use RMSD based chain mapping when scoring oligos. + * scoring.Scorer and compare-structures action can now optionally enable + peptide specific parameterizations as defined by the CAPRI community for + DockQ related scores (fnat, fnonnat, irmsd, lrmsd). + * Ligand scoring refactoring. lDDT-PLI and symmetry corrected RMSD are now + completely separated and this comes with API changes. This also affects + trg/mdl ligand assignment which now differs between the two. lDDT-PLI + definition has been changed and slightly different results can be + expected. + * Breaking changes in compare-ligand-structures action output - run + 'ost compare-ligand-structures -h' for more information. + * Added 'full_bs_search' argument in ligand scoring. Binding sites for + symmetry corrected RMSD computation are now searched by only considering + polymer chains in proximity of ligands to speed up computations on large + complexes. The old behavior can be restored by enabling this flag. + * Added model contacts in lDDT. lDDT is not symmetric in a sense that + added/wrong contacts in the model do not penalize the score. lDDT now comes + with a flag to add such contacts, i.e. contacts between atom pairs in the + model that are within the specified lDDT threshold (usually 15A), IF the + respective atom pair is also present in the target. + * lDDT-PLI can optionally use the new added mdl contacts feature. Think of + nasty loops that interact with the ligand in the model which would not be + penalized by classic lDDT! + * Remove seq.alg.MATCH and seq.alg.IDENTITY preset substitution matrices + * Enable parasail (https://github.com/jeffdaily/parasail) as drop-in + replacement for naive LocalAlign/GlobalAlign/SemiGlobalAlign implementations. + Must be enabled at compile time - see installation instructions. + * Alignments in ChainMapper now use SemiGlobalAlign instead of GlobalAlign + strategy in order to improve the alignment of terminal regions. + * ChainMapper.GetMapping now uses backbone only lDDT with inclusion radius + 30A as target function if nucleotide chains are present. Protein only + structures still use QS-score as target function as before. + * Remove ost.io.IoProfile.quack_mode property + * Several bug fixes and improvements. + Changes in Release 2.7.0 -------------------------------------------------------------------------------- diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fd6b1c0339e3108d6a60d346ec4b6b82bcdb2ff..1ff94f97da8a9eced92f710db9139ef91150ea2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ cmake_policy(SET CMP0060 NEW) project(OpenStructure CXX C) set (CMAKE_EXPORT_COMPILE_COMMANDS 1) set (OST_VERSION_MAJOR 2) -set (OST_VERSION_MINOR 7) +set (OST_VERSION_MINOR 8) set (OST_VERSION_PATCH 0) set (OST_VERSION_STRING ${OST_VERSION_MAJOR}.${OST_VERSION_MINOR}.${OST_VERSION_PATCH} ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_support) @@ -36,8 +36,6 @@ option(OPENGLPREFERENCE_LEGACY "whether to use the OpenGL Legacy GL implementati OFF) option(ENABLE_INFO "whether openstructure should be compiled with support for the info library" ON) -option(USE_NUMPY "whether numpy support is added" - OFF) option(USE_DOUBLE_PRECISION "whether to compile in double precision" OFF) option(ENABLE_SPNAV "whether 3DConnexion devices should be supported" @@ -48,6 +46,7 @@ option(ENABLE_STATIC "whether static libraries should be compiled" OFF) option(UBUNTU_LAYOUT "whether Debian/Ubuntu's lib and libexec directory layout should be used" OFF) option(HIDDEN_VISIBILITY "on gcc, use -fvisibility=hidden" OFF) option(ENABLE_MM "whether openmm support is added" OFF) +option(ENABLE_PARASAIL, "whether parasail alignment library should be included" OFF) if (CXX) set(CMAKE_CXX_COMPILER ${CXX}) @@ -117,11 +116,6 @@ if (USE_SHADER) else() set(_SHADER OFF) endif() -if (USE_NUMPY) - set(_NUMPY ON) -else() - set(_NUMPY OFF) -endif() if (COMPILE_TMTOOLS) set(_TM_TOOLS ON) else() @@ -137,6 +131,11 @@ if(ENABLE_MM) else() set(_OPENMM OFF) endif() +if(ENABLE_PARASAIL) + set(_PARASAIL ON) +else() + set(_PARASAIL OFF) +endif() if (UBUNTU_LAYOUT) @@ -228,10 +227,6 @@ find_package(PNG REQUIRED) find_package(FFTW REQUIRED) find_package(TIFF REQUIRED) -if(USE_NUMPY) - find_package(Numpy REQUIRED) -endif() - if(ENABLE_MM) find_package(OpenMM REQUIRED) set(_OPENMM_PLUGINS "${OPEN_MM_PLUGIN_DIR}") @@ -239,6 +234,10 @@ else(ENABLE_MM) set(_OPENMM_PLUGINS "NONE") endif(ENABLE_MM) +if(ENABLE_PARASAIL) + find_package(Parasail REQUIRED) +endif(ENABLE_PARASAIL) + if (ENABLE_STATIC) set(Boost_LIBRARIES) set(Boost_USE_STATIC_LIBS ON) @@ -301,10 +300,7 @@ include_directories(${Boost_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS} ${OPEN_MM_INCLUDE_DIRS} ${SQLITE3_INCLUDE_DIRS} - ) -if(USE_NUMPY) -include_directories(${PYTHON_NUMPY_INCLUDE_DIR}) -endif() + ${PARASAIL_INCLUDE_DIR}) if (UNIX) SET(CMAKE_SKIP_BUILD_RPATH FALSE) @@ -353,10 +349,10 @@ message(STATUS " Graphical interface (-DENABLE_GUI) : ${_UI}\n" " OpenGL support (-DENABLE_GFX) : ${_OPENGL}\n" " Shader support (-DUSE_SHADER) : ${_SHADER}\n" - " Numpy support (-DUSE_NUMPY) : ${_NUMPY}\n" " SpaceNav Device support (-DENABLE_SPNAV) : ${_SPNAV}\n" " OpenMM support (-DENABLE_MM) : ${_OPENMM}\n" " OpenMM plugins (-DOPEN_MM_PLUGIN_DIR) : ${_OPENMM_PLUGINS}\n" + " Parasail alignment library (-DENABLE_PARASAIL) : ${_PARASAIL}\n" " Optimize (-DOPTIMIZE) : ${_OPT}\n" " Profiling support (-DPROFILE) : ${_PROFILE}\n" " Double Precision (-DUSE_DOUBLE_PRECISION) : ${_DOUBLE_PREC}\n" diff --git a/actions/ost-compare-ligand-structures b/actions/ost-compare-ligand-structures index bbeaf5a1d2f34e1eb4b14742fc0f2e06feba889f..b991037828f9b39a2e15924cd6cbefc2b5a669ca 100644 --- a/actions/ost-compare-ligand-structures +++ b/actions/ost-compare-ligand-structures @@ -47,10 +47,29 @@ options, this is a dictionary with three keys: content of the JSON output will be \"status\" set to FAILURE and an additional key: "traceback". -Each score is opt-in and, be enabled with optional arguments and is added -to the output. Keys correspond to the values in "model_ligands" above. -Unassigned ligands are reported with a message in "unassigned_model_ligands" -and "unassigned_reference_ligands". +Each score is opt-in and the respective results are available in three keys: + + * "assigned_scores": A list with data for each pair of assigned ligands. + Data is yet another dict containing score specific information for that + ligand pair. The following keys are there in any case: + + * "model_ligand": The model ligand + * "reference_ligand": The target ligand to which model ligand is assigned to + * "score": The score + * "coverage": Fraction of model ligand atoms which are covered by target + ligand. Will only deviate from 1.0 if --substructure-match is enabled. + + * "model_ligand_unassigned_reason": Dictionary with unassigned model ligands + as key and an educated guess why this happened. + + * "reference_ligand_unassigned_reason": Dictionary with unassigned target ligands + as key and an educated guess why this happened. + +If --full-results is enabled, another element with key "full_results" is added. +This is a list of data items for each pair of model/reference ligands. The data +items follow the same structure as in "assigned_scores". If no score for a +specific pair of ligands could be computed, "score" and "coverage" are set to +null and a key "reason" is added giving an educated guess why this happened. """ import argparse @@ -61,8 +80,9 @@ import traceback import ost from ost import io -from ost.mol.alg import ligand_scoring - +from ost.mol.alg import ligand_scoring_base +from ost.mol.alg import ligand_scoring_lddtpli +from ost.mol.alg import ligand_scoring_scrmsd def _ParseArgs(): parser = argparse.ArgumentParser(description = __doc__, @@ -175,123 +195,90 @@ def _ParseArgs(): help=("Make alignment based on residue number instead of using " "a global BLOSUM62-based alignment (NUC44 for nucleotides).")) - parser.add_argument( - "-ec", - "--enforce-consistency", - dest="enforce_consistency", - default=False, - action="store_true", - help=("Enforce consistency of residue names between the reference " - "binding site and the model. By default residue name " - "discrepancies are reported but the program proceeds. " - "If this is set to True, the program will fail with an error " - "message if the residues names differ. " - "Note: more binding site mappings may be explored during " - "scoring, but only inconsistencies in the selected mapping are " - "reported.")) - parser.add_argument( "-sm", "--substructure-match", dest="substructure_match", default=False, action="store_true", - help=("Allow incomplete target ligands.")) + help=("Allow incomplete (ie partially resolved) target ligands.")) parser.add_argument( "-cd", "--coverage-delta", dest="coverage_delta", - default=False, - action="store_true", - help=("Allow incomplete target ligands.")) - - parser.add_argument( - "-gcm", - "--global-chain-mapping", - dest="global_chain_mapping", default=0.2, help=("Coverage delta for partial ligand assignment.")) parser.add_argument( - "-c", - "--chain-mapping", - nargs="+", - dest="chain_mapping", - help=("Custom mapping of chains between the reference and the model. " - "Each separate mapping consist of key:value pairs where key " - "is the chain name in reference and value is the chain name in " - "model. Only has an effect if global-chain-mapping flag is set.")) + '-v', + '--verbosity', + dest="verbosity", + type=int, + default=3, + help="Set verbosity level. Defaults to 3 (INFO).") parser.add_argument( - "-ra", - "--rmsd-assignment", - dest="rmsd_assignment", + "--full-results", + dest="full_results", default=False, action="store_true", - help=("Use RMSD for ligand assignment.")) + help=("Outputs scoring results for all model/reference ligand pairs " + "and store as key \"full_results\"")) + + # arguments relevant for lddt-pli parser.add_argument( - "-u", - "--unassigned", - dest="unassigned", + "--lddt-pli", + dest="lddt_pli", default=False, action="store_true", - help=("Report unassigned model ligands in the output together with " - "assigned ligands, with a null score, and reason for not being " - "assigned.")) + help=("Compute lDDT-PLI scores and store as key \"lddt_pli\".")) parser.add_argument( - "--lddt-pli", - dest="lddt_pli", + "--lddt-pli-radius", + dest="lddt_pli_radius", + default=6.0, + help=("lDDT inclusion radius for lDDT-PLI.")) + + parser.add_argument( + "--lddt-pli-amc", + dest="lddt_pli_amc", default=False, action="store_true", - help=("Compute lDDT-PLI score and store as key \"lddt-pli\".")) + help=("Add model contacts (amc) when computing lDDT-PLI.")) + + # arguments relevant for rmsd parser.add_argument( "--rmsd", dest="rmsd", default=False, action="store_true", - help=("Compute RMSD score and store as key \"rmsd\".")) + help=("Compute RMSD scores and store as key \"rmsd\".")) parser.add_argument( "--radius", dest="radius", default=4.0, - help=("Inclusion radius for the binding site. Any residue with atoms " - "within this distance of the ligand will be included in the " - "binding site.")) - - parser.add_argument( - "--lddt-pli-radius", - dest="lddt_pli_radius", - default=6.0, - help=("lDDT inclusion radius for lDDT-PLI.")) + help=("Inclusion radius to extract reference binding site that is used " + "for RMSD computation. Any residue with atoms within this " + "distance of the ligand will be included in the binding site.")) parser.add_argument( "--lddt-lp-radius", dest="lddt_lp_radius", - default=10.0, + default=15.0, help=("lDDT inclusion radius for lDDT-LP.")) parser.add_argument( - '-v', - '--verbosity', - dest="verbosity", - type=int, - default=3, - help="Set verbosity level. Defaults to 3 (INFO).") - - parser.add_argument( - "--n-max-naive", - dest="n_max_naive", - required=False, - default=12, - type=int, - help=("If number of chains in model and reference are below or equal " - "that number, the global chain mapping will naively enumerate " - "all possible mappings. A heuristic is used otherwise.")) + "-fbs", + "--full-bs-search", + dest="full_bs_search", + default=False, + action="store_true", + help=("Enumerate all potential binding sites in the model when " + "searching rigid superposition for RMSD computation")) return parser.parse_args() @@ -429,35 +416,67 @@ def _QualifiedResidueNotation(r): ins_code=resnum.ins_code.strip("\u0000"), ) +def _SetupLDDTPLIScorer(model, model_ligands, reference, reference_ligands, args): + return ligand_scoring_lddtpli.LDDTPLIScorer(model, reference, + model_ligands = model_ligands, + target_ligands = reference_ligands, + resnum_alignments = args.residue_number_alignment, + rename_ligand_chain = True, + substructure_match = args.substructure_match, + coverage_delta = args.coverage_delta, + lddt_pli_radius = args.lddt_pli_radius, + add_mdl_contacts = args.lddt_pli_amc) + +def _SetupSCRMSDScorer(model, model_ligands, reference, reference_ligands, args): + return ligand_scoring_scrmsd.SCRMSDScorer(model, reference, + model_ligands = model_ligands, + target_ligands = reference_ligands, + resnum_alignments = args.residue_number_alignment, + rename_ligand_chain = True, + substructure_match = args.substructure_match, + coverage_delta = args.coverage_delta, + bs_radius = args.radius, + lddt_lp_radius = args.lddt_lp_radius) def _Process(model, model_ligands, reference, reference_ligands, args): - mapping = None - if args.chain_mapping is not None: - mapping = {x.split(':')[0]: x.split(':')[1] for x in args.chain_mapping} - - scorer = ligand_scoring.LigandScorer( - model=model, - target=reference, - model_ligands=model_ligands, - target_ligands=reference_ligands, - resnum_alignments=args.residue_number_alignment, - check_resnames=args.enforce_consistency, - rename_ligand_chain=True, - substructure_match=args.substructure_match, - coverage_delta=args.coverage_delta, - global_chain_mapping=args.global_chain_mapping, - rmsd_assignment=args.rmsd_assignment, - unassigned=args.unassigned, - radius=args.radius, - lddt_pli_radius=args.lddt_pli_radius, - lddt_lp_radius=args.lddt_lp_radius, - n_max_naive=args.n_max_naive, - custom_mapping=mapping - ) - out = dict() + ########################## + # Setup required scorers # + ########################## + + lddtpli_scorer = None + scrmsd_scorer = None + + if args.lddt_pli: + lddtpli_scorer = _SetupLDDTPLIScorer(model, model_ligands, + reference, reference_ligands, + args) + + if args.rmsd: + scrmsd_scorer = _SetupSCRMSDScorer(model, model_ligands, + reference, reference_ligands, + args) + + # basic info on ligands only requires baseclass functionality + # doesn't matter which scorer we use + scorer = None + if lddtpli_scorer is not None: + scorer = lddtpli_scorer + elif scrmsd_scorer is not None: + scorer = scrmsd_scorer + else: + ost.LogWarning("No score selected, output will be empty.") + # just create SCRMSD scorer to fill basic ligand info + scorer = _SetupSCRMSDScorer(model, model_ligands, + reference, reference_ligands, + args) + + #################################### + # Extract / Map ligand information # + #################################### + if model_ligands is not None: # Replace model ligand by path if len(model_ligands) == len(scorer.model_ligands): @@ -466,7 +485,7 @@ def _Process(model, model_ligands, reference, reference_ligands, args): elif len(model_ligands) < len(scorer.model_ligands): # Multi-ligand SDF files were given # Map ligand => path:idx - out["model_ligands"] = [] + out["model_ligands"] = list() for ligand, filename in zip(model_ligands, args.model_ligands): assert isinstance(ligand, ost.mol.EntityHandle) for i, residue in enumerate(ligand.residues): @@ -480,9 +499,6 @@ def _Process(model, model_ligands, reference, reference_ligands, args): # Map ligand => qualified residue out["model_ligands"] = [_QualifiedResidueNotation(l) for l in scorer.model_ligands] - model_ligands_map = {k.hash_code: v for k, v in zip( - scorer.model_ligands, out["model_ligands"])} - if reference_ligands is not None: # Replace reference ligand by path if len(reference_ligands) == len(scorer.target_ligands): @@ -491,7 +507,7 @@ def _Process(model, model_ligands, reference, reference_ligands, args): elif len(reference_ligands) < len(scorer.target_ligands): # Multi-ligand SDF files were given # Map ligand => path:idx - out["reference_ligands"] = [] + out["reference_ligands"] = list() for ligand, filename in zip(reference_ligands, args.reference_ligands): assert isinstance(ligand, ost.mol.EntityHandle) for i, residue in enumerate(ligand.residues): @@ -501,86 +517,155 @@ def _Process(model, model_ligands, reference, reference_ligands, args): raise RuntimeError("Fewer ligands in the reference scorer " "(%d) than given (%d)" % ( len(scorer.target_ligands), len(reference_ligands))) - else: # Map ligand => qualified residue out["reference_ligands"] = [_QualifiedResidueNotation(l) for l in scorer.target_ligands] - reference_ligands_map = {k.hash_code: v for k, v in zip( - scorer.target_ligands, out["reference_ligands"])} - - - if not (args.lddt_pli or args.rmsd): - ost.LogWarning("No score selected, output will be empty.") - else: - out["unassigned_model_ligands"] = {} - for chain, unassigned_residues in scorer.unassigned_model_ligands.items(): - for resnum, unassigned in unassigned_residues.items(): - mdl_lig = scorer.model.FindResidue(chain, resnum) - out["unassigned_model_ligands"][model_ligands_map[ - mdl_lig.hash_code]] = unassigned - out["unassigned_reference_ligands"] = {} - for chain, unassigned_residues in scorer.unassigned_target_ligands.items(): - for resnum, unassigned in unassigned_residues.items(): - trg_lig = scorer.target.FindResidue(chain, resnum) - out["unassigned_reference_ligands"][reference_ligands_map[ - trg_lig.hash_code]] = unassigned - out["unassigned_model_ligand_descriptions"] = scorer.unassigned_model_ligand_descriptions - out["unassigned_reference_ligand_descriptions"] = scorer.unassigned_target_ligand_descriptions + ################## + # Compute scores # + ################## if args.lddt_pli: - out["lddt_pli"] = {} - for chain, lddt_pli_results in scorer.lddt_pli_details.items(): - for resnum, lddt_pli in lddt_pli_results.items(): - if args.unassigned and lddt_pli["unassigned"]: - mdl_lig = scorer.model.FindResidue(chain, resnum) - model_key = model_ligands_map[mdl_lig.hash_code] - else: - model_key = model_ligands_map[lddt_pli["model_ligand"].hash_code] - lddt_pli["reference_ligand"] = reference_ligands_map[ - lddt_pli.pop("target_ligand").hash_code] - lddt_pli["model_ligand"] = model_key - transform_data = lddt_pli["transform"].data - lddt_pli["transform"] = [transform_data[i:i + 4] - for i in range(0, len(transform_data), - 4)] - lddt_pli["bs_ref_res"] = [_QualifiedResidueNotation(r) for r in - lddt_pli["bs_ref_res"]] - lddt_pli["bs_ref_res_mapped"] = [_QualifiedResidueNotation(r) for r in - lddt_pli["bs_ref_res_mapped"]] - lddt_pli["bs_mdl_res_mapped"] = [_QualifiedResidueNotation(r) for r in - lddt_pli["bs_mdl_res_mapped"]] - lddt_pli["inconsistent_residues"] = ["%s-%s" %( - _QualifiedResidueNotation(x), _QualifiedResidueNotation(y)) for x,y in lddt_pli[ - "inconsistent_residues"]] - out["lddt_pli"][model_key] = lddt_pli + out["lddt_pli"] = dict() + out["lddt_pli"]["assigned_scores"] = list() + for lig_pair in lddtpli_scorer.assignment: + score = float(lddtpli_scorer.score_matrix[lig_pair[0], lig_pair[1]]) + coverage = float(lddtpli_scorer.coverage_matrix[lig_pair[0], lig_pair[1]]) + aux_data = lddtpli_scorer.aux_matrix[lig_pair[0], lig_pair[1]] + target_key = out["reference_ligands"][lig_pair[0]] + model_key = out["model_ligands"][lig_pair[1]] + out["lddt_pli"]["assigned_scores"].append({"score": score, + "coverage": coverage, + "lddt_pli_n_contacts": aux_data["lddt_pli_n_contacts"], + "model_ligand": model_key, + "reference_ligand": target_key, + "bs_ref_res": [_QualifiedResidueNotation(r) for r in + aux_data["bs_ref_res"]], + "bs_mdl_res": [_QualifiedResidueNotation(r) for r in + aux_data["bs_mdl_res"]]}) + + out["lddt_pli"]["model_ligand_unassigned_reason"] = dict() + for i in lddtpli_scorer.unassigned_model_ligands: + key = out["model_ligands"][i] + reason = lddtpli_scorer.guess_model_ligand_unassigned_reason(i) + out["lddt_pli"]["model_ligand_unassigned_reason"][key] = reason + + out["lddt_pli"]["reference_ligand_unassigned_reason"] = dict() + for i in lddtpli_scorer.unassigned_target_ligands: + key = out["reference_ligands"][i] + reason = lddtpli_scorer.guess_target_ligand_unassigned_reason(i) + out["lddt_pli"]["reference_ligand_unassigned_reason"][key] = reason + + if args.full_results: + out["lddt_pli"]["full_results"] = list() + shape = lddtpli_scorer.score_matrix.shape + for ref_lig_idx in range(shape[0]): + for mdl_lig_idx in range(shape[1]): + state = int(lddtpli_scorer.state_matrix[(ref_lig_idx, mdl_lig_idx)]) + target_key = out["reference_ligands"][lig_pair[0]] + model_key = out["model_ligands"][lig_pair[1]] + if state == 0: + score = float(lddtpli_scorer.score_matrix[(ref_lig_idx, mdl_lig_idx)]) + coverage = float(lddtpli_scorer.coverage_matrix[(ref_lig_idx, mdl_lig_idx)]) + aux_data = lddtpli_scorer.aux_matrix[(ref_lig_idx, mdl_lig_idx)] + out["lddt_pli"]["full_results"].append({"score": score, + "coverage": coverage, + "lddt_pli_n_contacts": aux_data["lddt_pli_n_contacts"], + "model_ligand": model_key, + "reference_ligand": target_key, + "bs_ref_res": [_QualifiedResidueNotation(r) for r in + aux_data["bs_ref_res"]], + "bs_mdl_res": [_QualifiedResidueNotation(r) for r in + aux_data["bs_mdl_res"]]}) + + else: + reason = lddtpli_scorer.state_decoding[state] + out["lddt_pli"]["full_results"].append({"score": None, + "coverage": None, + "model_ligand": model_key, + "reference_ligand": target_key, + "reason": reason}) + if args.rmsd: - out["rmsd"] = {} - for chain, rmsd_results in scorer.rmsd_details.items(): - for _, rmsd in rmsd_results.items(): - if args.unassigned and rmsd["unassigned"]: - mdl_lig = scorer.model.FindResidue(chain, resnum) - model_key = model_ligands_map[mdl_lig.hash_code] - else: - model_key = model_ligands_map[rmsd["model_ligand"].hash_code] - rmsd["reference_ligand"] = reference_ligands_map[ - rmsd.pop("target_ligand").hash_code] - rmsd["model_ligand"] = model_key - transform_data = rmsd["transform"].data - rmsd["transform"] = [transform_data[i:i + 4] - for i in range(0, len(transform_data), 4)] - rmsd["bs_ref_res"] = [_QualifiedResidueNotation(r) for r in - rmsd["bs_ref_res"]] - rmsd["bs_ref_res_mapped"] = [_QualifiedResidueNotation(r) for r in - rmsd["bs_ref_res_mapped"]] - rmsd["bs_mdl_res_mapped"] = [_QualifiedResidueNotation(r) for r in - rmsd["bs_mdl_res_mapped"]] - rmsd["inconsistent_residues"] = ["%s-%s" %( - _QualifiedResidueNotation(x), _QualifiedResidueNotation(y)) for x,y in rmsd[ - "inconsistent_residues"]] - out["rmsd"][model_key] = rmsd + out["rmsd"] = dict() + out["rmsd"]["assigned_scores"] = list() + for lig_pair in scrmsd_scorer.assignment: + score = float(scrmsd_scorer.score_matrix[lig_pair[0], lig_pair[1]]) + coverage = float(scrmsd_scorer.coverage_matrix[lig_pair[0], lig_pair[1]]) + aux_data = scrmsd_scorer.aux_matrix[lig_pair[0], lig_pair[1]] + target_key = out["reference_ligands"][lig_pair[0]] + model_key = out["model_ligands"][lig_pair[1]] + transform_data = aux_data["transform"].data + out["rmsd"]["assigned_scores"].append({"score": score, + "coverage": coverage, + "lddt_lp": aux_data["lddt_lp"], + "bb_rmsd": aux_data["bb_rmsd"], + "model_ligand": model_key, + "reference_ligand": target_key, + "chain_mapping": aux_data["chain_mapping"], + "bs_ref_res": [_QualifiedResidueNotation(r) for r in + aux_data["bs_ref_res"]], + "bs_ref_res_mapped": [_QualifiedResidueNotation(r) for r in + aux_data["bs_ref_res_mapped"]], + "bs_mdl_res_mapped": [_QualifiedResidueNotation(r) for r in + aux_data["bs_mdl_res_mapped"]], + "inconsistent_residues": [_QualifiedResidueNotation(r) for r in + aux_data["inconsistent_residues"]], + "transform": [transform_data[i:i + 4] + for i in range(0, len(transform_data), 4)]}) + + out["rmsd"]["model_ligand_unassigned_reason"] = dict() + for i in scrmsd_scorer.unassigned_model_ligands: + key = out["model_ligands"][i] + reason = scrmsd_scorer.guess_model_ligand_unassigned_reason(i) + out["rmsd"]["model_ligand_unassigned_reason"][key] = reason + + out["rmsd"]["reference_ligand_unassigned_reason"] = dict() + for i in scrmsd_scorer.unassigned_target_ligands: + key = out["reference_ligands"][i] + reason = scrmsd_scorer.guess_target_ligand_unassigned_reason(i) + out["rmsd"]["reference_ligand_unassigned_reason"][key] = reason + + if args.full_results: + out["rmsd"]["full_results"] = list() + shape = scrmsd_scorer.score_matrix.shape + for ref_lig_idx in range(shape[0]): + for mdl_lig_idx in range(shape[1]): + state = int(scrmsd_scorer.state_matrix[(ref_lig_idx, mdl_lig_idx)]) + target_key = out["reference_ligands"][lig_pair[0]] + model_key = out["model_ligands"][lig_pair[1]] + if state == 0: + score = float(scrmsd_scorer.score_matrix[(ref_lig_idx, mdl_lig_idx)]) + coverage = float(scrmsd_scorer.coverage_matrix[(ref_lig_idx, mdl_lig_idx)]) + aux_data = scrmsd_scorer.aux_matrix[(ref_lig_idx, mdl_lig_idx)] + transform_data = aux_data["transform"].data + out["rmsd"]["full_results"].append({"score": score, + "coverage": coverage, + "lddt_lp": aux_data["lddt_lp"], + "bb_rmsd": aux_data["bb_rmsd"], + "model_ligand": model_key, + "reference_ligand": target_key, + "chain_mapping": aux_data["chain_mapping"], + "bs_ref_res": [_QualifiedResidueNotation(r) for r in + aux_data["bs_ref_res"]], + "bs_ref_res_mapped": [_QualifiedResidueNotation(r) for r in + aux_data["bs_ref_res_mapped"]], + "bs_mdl_res_mapped": [_QualifiedResidueNotation(r) for r in + aux_data["bs_mdl_res_mapped"]], + "inconsistent_residues": [_QualifiedResidueNotation(r) for r in + aux_data["inconsistent_residues"]], + "transform": [transform_data[i:i + 4] + for i in range(0, len(transform_data), 4)]}) + + else: + reason = scrmsd_scorer.state_decoding[state] + out["rmsd"]["full_results"].append({"score": None, + "coverage": None, + "model_ligand": model_key, + "reference_ligand": target_key, + "reason": reason}) return out @@ -590,7 +675,7 @@ def _Main(): args = _ParseArgs() ost.PushVerbosityLevel(args.verbosity) if args.verbosity < 4: - sys.tracebacklimit = 0 + sys.tracebacklimit = 100 _CheckCompoundLib() try: # Load structures @@ -635,7 +720,8 @@ def _Main(): out = dict() out["status"] = "FAILURE" out["traceback"] = traceback.format_exc(limit=1000) - out["exception"] = " ".join(traceback.format_exception_only(exc)) + etype, evalue, tb = sys.exc_info() + out["exception"] = " ".join(traceback.format_exception_only(etype, evalue)) with open(args.output, 'w') as fh: json.dump(out, fh, indent=4, sort_keys=False) raise diff --git a/actions/ost-compare-structures b/actions/ost-compare-structures index bbff630090e4ed7fa0484099917712ac6aa8b6dc..6b0269a4f1b66278811c4625d2ebe88e5a36e6a8 100644 --- a/actions/ost-compare-structures +++ b/actions/ost-compare-structures @@ -24,7 +24,7 @@ options, this is a dictionary with 8 keys describing model/reference comparison: * "chem_groups": Groups of polypeptides/polynucleotides from reference that are considered chemically equivalent. You can derive stoichiometry from this. Contains only chains that are considered in chain mapping, i.e. pass a - size threshold (defaults: 10 for peptides, 4 for nucleotides). + size threshold (defaults: 6 for peptides, 4 for nucleotides). * "chem_mapping": List of same length as "chem_groups". Assigns model chains to the respective chem group. Again, only contains chains that are considered in chain mapping. @@ -59,6 +59,8 @@ results: * "lddt_no_stereochecks" * "min_pep_length" * "min_nuc_length" + * "lddt_add_mdl_contacts" + * "dockq_capri_peptide" The pairwise sequence alignments are computed with Needleman-Wunsch using BLOSUM62 (NUC44 for nucleotides). Many benchmarking scenarios preprocess the @@ -264,6 +266,15 @@ def _ParseArgs(): "nucleotides. Per-residue scores are accessible as described for " "local_lddt.")) + parser.add_argument( + "--ilddt", + dest="ilddt", + default=False, + action="store_true", + help=("Compute global lDDT score which is solely based on inter-chain " + "contacts and store as key \"ilddt\". Same stereochemical " + "irregularities as for lddt apply.")) + parser.add_argument( "--cad-score", dest="cad_score", @@ -305,9 +316,9 @@ def _ParseArgs(): dest="oum", default=False, action="store_true", - help=("Override USalign mapping and inject our own mapping. Only works " - "if external usalign executable is provided that is reasonably " - "new and contains that feature.")) + help=("Override USalign mapping and inject our own rigid mapping. Only " + "works if external usalign executable is provided that is " + "reasonably new and contains that feature.")) parser.add_argument( "--qs-score", @@ -353,6 +364,27 @@ def _ParseArgs(): "in the average computation for each interface that is only " "present in the reference but not in the model.")) + parser.add_argument( + "--dockq-capri-peptide", + dest="dockq_capri_peptide", + default=False, + action="store_true", + help=("Flag that changes two things in the way DockQ and its " + "underlying scores are computed which is proposed by the CAPRI " + "community when scoring peptides (PMID: 31886916). " + "ONE: Two residues are considered in contact if any of their " + "atoms is within 5A. This is relevant for fnat and fnonat " + "scores. CAPRI suggests to lower this threshold to 4A for " + "protein-peptide interactions. " + "TWO: irmsd is computed on interface residues. A residue is " + "defined as interface residue if any of its atoms is within 10A " + "of another chain. CAPRI suggests to lower the default of 10A to " + "8A in combination with only considering CB atoms for " + "protein-peptide interactions. " + "Note that the resulting DockQ is not evaluated for these " + "slightly updated fnat and irmsd (lrmsd stays the same)." + "This flag has no influence on patch_dockq scores.")) + parser.add_argument( "--ics", dest="ics", @@ -500,7 +532,8 @@ def _ParseArgs(): dest="min_pep_length", default = 6, type=int, - help=("Relevant parameter if short peptides are involved in scoring." + help=("Default: 6 - " + "Relevant parameter if short peptides are involved in scoring. " "Minimum peptide length for a chain in the target structure to " "be considered in chain mapping. The chain mapping algorithm " "first performs an all vs. all pairwise sequence alignment to " @@ -515,7 +548,8 @@ def _ParseArgs(): dest="min_nuc_length", default = 4, type=int, - help=("Relevant parameter if short nucleotides are involved in scoring." + help=("Default: 4 - " + "Relevant parameter if short nucleotides are involved in scoring." "Minimum nucleotide length for a chain in the target structure to " "be considered in chain mapping. The chain mapping algorithm " "first performs an all vs. all pairwise sequence alignment to " @@ -524,6 +558,29 @@ def _ParseArgs(): "problematic as they may produce high sequence identity " "alignments by pure chance.") ) + + parser.add_argument( + '-v', + '--verbosity', + dest="verbosity", + type=int, + default=2, + help="Set verbosity level. Defaults to 3 (Script).") + + parser.add_argument( + "--lddt-add-mdl-contacts", + dest="lddt_add_mdl_contacts", + default=False, + action="store_true", + help=("Only using contacts in lDDT that" + "are within a certain distance threshold in the " + "reference does not penalize for added model " + "contacts. If set to True, this flag will also " + "consider reference contacts that are within the " + "specified distance threshold in the model but " + "not necessarily in the reference. No contact will " + "be added if the respective atom pair is not " + "resolved in the reference.")) return parser.parse_args() @@ -721,7 +778,9 @@ def _Process(model, reference, args, model_format, reference_format): n_max_naive = args.n_max_naive, oum = args.oum, min_pep_length = args.min_pep_length, - min_nuc_length = args.min_nuc_length) + min_nuc_length = args.min_nuc_length, + lddt_add_mdl_contacts = args.lddt_add_mdl_contacts, + dockq_capri_peptide = args.dockq_capri_peptide) ir = _GetInconsistentResidues(scorer.aln) if len(ir) > 0 and args.enforce_consistency: @@ -765,6 +824,9 @@ def _Process(model, reference, args, model_format, reference_format): if args.bb_local_lddt: out["bb_local_lddt"] = _LocalScoresToJSONDict(scorer.bb_local_lddt) + if args.ilddt: + out["ilddt"] = _RoundOrNone(scorer.ilddt) + if args.cad_score: out["cad_score"] = scorer.cad_score @@ -860,6 +922,9 @@ def _Process(model, reference, args, model_format, reference_format): def _Main(): args = _ParseArgs() + ost.PushVerbosityLevel(args.verbosity) + if args.verbosity < 4: + sys.tracebacklimit = 0 _CheckCompoundLib() try: compute_cad = args.cad_score or args.local_cad_score @@ -894,6 +959,8 @@ def _Main(): out["lddt_no_stereochecks"] = args.lddt_no_stereochecks out["min_pep_length"] = args.min_pep_length out["min_nuc_length"] = args.min_nuc_length + out["lddt_add_mdl_contacts"] = args.lddt_add_mdl_contacts + out["dockq_capri_peptide"] = args.dockq_capri_peptide out["status"] = "SUCCESS" with open(args.output, 'w') as fh: json.dump(out, fh, indent=4, sort_keys=False) @@ -901,7 +968,8 @@ def _Main(): out = dict() out["status"] = "FAILURE" out["traceback"] = traceback.format_exc() - out["exception"] = " ".join(traceback.format_exception_only(exc)) + etype, evalue, tb = sys.exc_info() + out["exception"] = " ".join(traceback.format_exception_only(etype, evalue)) with open(args.output, 'w') as fh: json.dump(out, fh, indent=4, sort_keys=False) raise diff --git a/cmake_support/FindNumpy.cmake b/cmake_support/FindNumpy.cmake deleted file mode 100644 index 2f67a64edf1586f32965dd5c8f85834b88148977..0000000000000000000000000000000000000000 --- a/cmake_support/FindNumpy.cmake +++ /dev/null @@ -1,31 +0,0 @@ -if (PYTHON_NUMPY_INCLUDE_DIR) - # in cache already - set (PYTHON_NUMPY_FIND_QUIETLY TRUE) -endif (PYTHON_NUMPY_INCLUDE_DIR) - -#INCLUDE(FindPython) - -IF(Python_EXECUTABLE) - EXEC_PROGRAM ("${Python_EXECUTABLE}" - ARGS "-c 'import numpy; print(numpy.get_include())'" - OUTPUT_VARIABLE PYTHON_NUMPY_INCLUDE_DIR - RETURN_VALUE PYTHON_NUMPY_NOT_FOUND) - if (PYTHON_NUMPY_NOT_FOUND) - set(PYTHON_NUMPY_FOUND FALSE) - else (PYTHON_NUMPY_NOT_FOUND) - set (PYTHON_NUMPY_FOUND TRUE) - set (PYTHON_NUMPY_INCLUDE_DIR ${PYTHON_NUMPY_INCLUDE_DIR} CACHE STRING "Numpy include path") - endif (PYTHON_NUMPY_NOT_FOUND) -ENDIF(Python_EXECUTABLE) - -if (PYTHON_NUMPY_FOUND) - if (NOT PYTHON_NUMPY_FIND_QUIETLY) - message (STATUS "Numpy headers found") - endif (NOT PYTHON_NUMPY_FIND_QUIETLY) -else (PYTHON_NUMPY_FOUND) - if (Numpy_FIND_REQUIRED) - message (FATAL_ERROR "Numpy headers missing") - endif (Numpy_FIND_REQUIRED) -endif (PYTHON_NUMPY_FOUND) - -MARK_AS_ADVANCED (PYTHON_NUMPY_INCLUDE_DIR) diff --git a/cmake_support/FindParasail.cmake b/cmake_support/FindParasail.cmake new file mode 100644 index 0000000000000000000000000000000000000000..40db27a15956429f31a3fce5508f433a91f7ffe9 --- /dev/null +++ b/cmake_support/FindParasail.cmake @@ -0,0 +1,11 @@ +# Try to find Parasail +# +# Find the native Parasail include and library. Sets: +# +# PARASAIL_INCLUDE_DIR - Parasail include dir. +# PARASAIL_LIBRARY - Parasail library. + +find_path(PARASAIL_INCLUDE_DIR parasail.h HINTS PARASAIL_INCLUDE_DIR REQUIRED) +find_library(PARASAIL_LIBRARY NAMES parasail HINTS PARASAIL_LIBRARY REQUIRED) + +mark_as_advanced (PARASAIL_LIBRARY PARASAIL_INCLUDE_DIR) diff --git a/docker/Dockerfile b/docker/Dockerfile index 075735de67f94fa7207ed4ff6bfd69377bdaa500..b7bbf68ab362aed955d0279f68455b31aadcc90a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:22.04 # ARGUMENTS ########### -ARG OPENSTRUCTURE_VERSION="2.7.0" +ARG OPENSTRUCTURE_VERSION="2.8.0" ARG SRC_FOLDER="/usr/local/src" ARG CPUS_FOR_MAKE=2 ARG OPENMM_VERSION="7.7.0" diff --git a/examples/code_fragments/mm/ethanol_example_using_topology.py b/examples/code_fragments/mm/ethanol_example_using_topology.py index 553ef88609ea77c1e172c60b6e064078d07885c9..2b060fcae9c8736c0cefe1ae80e68f479efd7910 100644 --- a/examples/code_fragments/mm/ethanol_example_using_topology.py +++ b/examples/code_fragments/mm/ethanol_example_using_topology.py @@ -44,7 +44,7 @@ class Anim(QtCore.QTimer): #create topology by only defining masses prof = io.IOProfile(dialect='PDB', fault_tolerant=False, - quack_mode=False, processor=conop.HeuristicProcessor()) + processor=conop.HeuristicProcessor()) ent = io.LoadPDB('ethanol.pdb', profile=prof) masses = [12.011,12.011,15.999,1.008,1.008,1.008,1.008,1.008,1.008] diff --git a/modules/base/doc/base.rst b/modules/base/doc/base.rst index 72d9ed9dcc547e63247afb10905942c1be04a8b0..24bbf4448bafc9c09046204c92899e9ea49f21e6 100644 --- a/modules/base/doc/base.rst +++ b/modules/base/doc/base.rst @@ -2,7 +2,22 @@ ================================================================================ .. toctree:: + :maxdepth: 1 + generic logging + ../bindings/bindings + ../conop/conop + ../db/db + ../geom/geom + ../gfx/gfx + ../gui/gui + ../img/base/img + ../io/io + ../mol/base/mol + ../seq/base/seq settings + table testutils + + diff --git a/modules/base/doc/settings.rst b/modules/base/doc/settings.rst index 8ba0ffc3786c1be74b85077fde007b696a85f50d..ffd01d0e7994274039e1fd58aeb8aaff82c3c53f 100644 --- a/modules/base/doc/settings.rst +++ b/modules/base/doc/settings.rst @@ -1,4 +1,4 @@ -:mod:`ost.settings` - Locate Files and Retrieve Preferences +:mod:`~ost.settings` - Locate Files and Retrieve Preferences ================================================================================ .. automodule:: ost.settings diff --git a/modules/doc/table.rst b/modules/base/doc/table.rst similarity index 100% rename from modules/doc/table.rst rename to modules/base/doc/table.rst diff --git a/modules/base/pymod/__init__.py.in b/modules/base/pymod/__init__.py.in index 4237d6b95919535347a8258e80d4eb5e94715983..45c3e6000245bcb03a15356a76e0503880cdb2fc 100644 --- a/modules/base/pymod/__init__.py.in +++ b/modules/base/pymod/__init__.py.in @@ -18,7 +18,7 @@ #------------------------------------------------------------------------------ import os -__all__=['CharList','Correl', 'FileLogSink', 'FloatList', 'FloatMatrix', 'FloatMatrix3', 'FloatMatrix4', 'GetCurrentLogSink', 'GetPrefixPath', 'GetSharedDataPath', 'GetVerbosityLevel', 'Histogram', 'IntList', 'LogDebug', 'LogError', 'LogInfo', 'LogScript', 'LogSink', 'LogTrace', 'LogVerbose', 'LogWarning', 'Max', 'Mean', 'Median', 'Min', 'MultiLogSink', 'PopLogSink', 'PopVerbosityLevel', 'PushLogSink', 'PushVerbosityLevel', 'Range', 'SetPrefixPath', 'StdDev', 'StreamLogSink', 'StringList', 'StringLogSink', 'Units', 'VERSION', 'VERSION_MAJOR', 'VERSION_MINOR', 'VERSION_PATCH', 'WITH_NUMPY', 'conop', 'geom', 'io', 'mol', 'seq', 'stutil' @ALL_ADDITIONAL_MODULES@] +__all__=['CharList','Correl', 'FileLogSink', 'FloatList', 'FloatMatrix', 'FloatMatrix3', 'FloatMatrix4', 'GetCurrentLogSink', 'GetPrefixPath', 'GetSharedDataPath', 'GetVerbosityLevel', 'Histogram', 'IntList', 'LogDebug', 'LogError', 'LogInfo', 'LogScript', 'LogSink', 'LogTrace', 'LogVerbose', 'LogWarning', 'Max', 'Mean', 'Median', 'Min', 'MultiLogSink', 'PopLogSink', 'PopVerbosityLevel', 'PushLogSink', 'PushVerbosityLevel', 'Range', 'SetPrefixPath', 'StdDev', 'StreamLogSink', 'StringList', 'StringLogSink', 'Units', 'VERSION', 'VERSION_MAJOR', 'VERSION_MINOR', 'VERSION_PATCH', 'conop', 'geom', 'io', 'mol', 'seq', 'stutil' @ALL_ADDITIONAL_MODULES@] from ._ost_base import * from .stutil import * diff --git a/modules/base/pymod/table.py b/modules/base/pymod/table.py index 1e20e4eae4100d265a6e7c3c008d9216a4e1516a..f5adc6a1012c66f70a549a679d1c937b58743ed5 100644 --- a/modules/base/pymod/table.py +++ b/modules/base/pymod/table.py @@ -2172,6 +2172,7 @@ Statistics for column %(col)s """ try: import scipy.stats.mstats + import numpy as np if IsStringLike(col1) and IsStringLike(col2): col1 = self.GetColIndex(col1) @@ -2183,7 +2184,7 @@ Statistics for column %(col)s vals2.append(v2) try: correl = scipy.stats.mstats.spearmanr(vals1, vals2)[0] - if scipy.isnan(correl): + if np.isnan(correl): return None return correl except: diff --git a/modules/base/pymod/wrap_base.cc b/modules/base/pymod/wrap_base.cc index 2c4877911aced587eb5d5ae0f930beb5eab67cea..7f2d8b114572fe9e43aeeb75bc8ed540b9f3de83 100644 --- a/modules/base/pymod/wrap_base.cc +++ b/modules/base/pymod/wrap_base.cc @@ -97,7 +97,6 @@ BOOST_PYTHON_MODULE(_ost_base) scope().attr("VERSION_MAJOR")=OST_VERSION_MAJOR; scope().attr("VERSION_MINOR")=OST_VERSION_MINOR; scope().attr("VERSION_PATCH")=OST_VERSION_PATCH; - scope().attr("WITH_NUMPY")= OST_NUMPY_SUPPORT_ENABLED; export_Logger(); export_Range(); export_Units(); diff --git a/modules/bindings/doc/tmtools.rst b/modules/bindings/doc/tmtools.rst index cc08e010d98a2b91cfc69841aad103df4422c295..2243170b438dad3da5b9fed47a14a00948e5a1c4 100644 --- a/modules/bindings/doc/tmtools.rst +++ b/modules/bindings/doc/tmtools.rst @@ -154,6 +154,7 @@ The advantage is that no intermediate files need to be generated. .. method:: WrappedTMAlign(pos1, pos2, seq1, seq2 [fast=False, rna=False]) + :noindex: Similar as described above, but directly feeding in raw data. diff --git a/modules/bindings/pymod/dockq.py b/modules/bindings/pymod/dockq.py index ff920f627e7f6332986f0a0d093e5a2face5641d..f096b868ed77251334fd25d4728a2d70b0270bde 100644 --- a/modules/bindings/pymod/dockq.py +++ b/modules/bindings/pymod/dockq.py @@ -91,10 +91,6 @@ def _Setup(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2): # Interface with more chains... raise NotImplementedError("DockQ computations beyond two interacting " "chains has not been properly tested...") - #mdl_chain_names = mdl_ch1 + mdl_ch2 - #ref_chain_names = ref_ch1 + ref_ch2 - #mdl_to_dump = mdl_to_dump.Select(f"cname={','.join(mdl_chain_names)}") - #ref_to_dump = ref_to_dump.Select(f"cname={','.join(ref_chain_names)}") # first write structures to string, only create a tmpdir and the actual # files if this succeeds diff --git a/modules/config/CMakeLists.txt b/modules/config/CMakeLists.txt index 60c1c38e2c92c53fa1f694a268762a0428c2c5eb..91d92232034d71c75657957a163111e1c7dcbd8c 100644 --- a/modules/config/CMakeLists.txt +++ b/modules/config/CMakeLists.txt @@ -15,12 +15,6 @@ if (USE_SHADER) else() set(shader_support 0) endif() - -if (USE_NUMPY) - set(numpy_support 1) -else() - set(numpy_support 0) -endif() if (PROFILE) set(profiling_enabled 1) else() @@ -56,6 +50,11 @@ if (ENABLE_INFO) else() set(info_enabled 0) endif() +if (ENABLE_PARASAIL) + set(parasail_enabled 1) +else() + set(parasail_enabled 0) +endif() set(config_hh_generator "CMake") set(CONFIG_HH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/config.hh") diff --git a/modules/config/config.hh.in b/modules/config/config.hh.in index e69421653566716ccbd29636fab7baaa7bdf2028..d84ca3b689e662ae4de739dadf9381b92570928d 100644 --- a/modules/config/config.hh.in +++ b/modules/config/config.hh.in @@ -29,8 +29,8 @@ #define OST_DOUBLE_PRECISION @double_prec@ #define OST_STATIC_PROPERTY_WORKAROUND @static_props@ #define OST_FFT_USE_THREADS @fftw_use_threads@ -#define OST_NUMPY_SUPPORT_ENABLED @numpy_support@ #define OST_UBUNTU_LAYOUT @ubuntu_layout@ #define OST_INFO_ENABLED @info_enabled@ +#define OST_PARASAIL_ENABLED @parasail_enabled@ #endif diff --git a/modules/conop/doc/cleanup.rst b/modules/conop/doc/cleanup.rst index a7a49bdf6d1463fdead7fd9ad02180be4ea0bcbe..744de01edcdb712e0027f1435ad605ccb4d24c2c 100644 --- a/modules/conop/doc/cleanup.rst +++ b/modules/conop/doc/cleanup.rst @@ -1,4 +1,4 @@ -:mod:`conop.cleanup <ost.conop.cleanup>` -- Sanitize structures +:mod:`~ost.conop.cleanup` -- Sanitize structures ================================================================================ .. module:: ost.conop.cleanup diff --git a/modules/db/doc/db.rst b/modules/db/doc/db.rst index a296c1ec6e5db939085a79dab3563841a38c5b39..3203a416b1ac89d779f957c7cbd8a6f0ed0f6cec 100644 --- a/modules/db/doc/db.rst +++ b/modules/db/doc/db.rst @@ -1,8 +1,8 @@ -Linear Database +:mod:`~ost.db` - Linear Database =============================================================================== -.. currentmodule:: ost.db - +.. module:: ost.db + :synopsis: Linear database. Many applications require to load lots of structures. Expecially on distributed file systems, io becomes a problem. @@ -115,6 +115,7 @@ use an indexer to keep track of where to find data for a certain entry. .. method:: GetDataRange(name, chain_name) + :noindex: Get the range for a chain of an assembly diff --git a/modules/doc/actions.rst b/modules/doc/actions.rst index 523926fc33fea5d92baaa86587b03766dc527656..635f9524de9ad7cc098c1682748143f52c8ba51c 100644 --- a/modules/doc/actions.rst +++ b/modules/doc/actions.rst @@ -20,13 +20,13 @@ Comparing two structures You can compare two structures from the command line with the ``ost compare-structures`` action. This can be considered a command line -interface to :class:`ost.mol.alg.scoring.Scorer` +interface to the :class:`~ost.mol.alg.scoring.Scorer`. -.. warning:: - ``compare-structures`` underwent a complete rewrite in OpenStructure - release 2.4.0. The old version is still available as - ``compare-structures-legacy`` with documentation available - :doc:`here <deprecated_actions>`. +.. note:: + + This is a new implementation of the ``compare-structures`` action, introduced + in OpenStructure 2.4. The old version is still available as + :doc:`compare-structures-legacy <deprecated_actions>`. Details on the usage (output of ``ost compare-structures --help``): @@ -38,25 +38,26 @@ Details on the usage (output of ``ost compare-structures --help``): [-rna] [-ec] [-d] [-ds DUMP_SUFFIX] [-ft] [-c CHAIN_MAPPING [CHAIN_MAPPING ...]] [--lddt] [--local-lddt] [--bb-lddt] [--bb-local-lddt] - [--cad-score] [--local-cad-score] + [--ilddt] [--cad-score] [--local-cad-score] [--cad-exec CAD_EXEC] [--usalign-exec USALIGN_EXEC] [--override-usalign-mapping] [--qs-score] - [--dockq] [--ics] [--ips] [--rigid-scores] - [--patch-scores] [--tm-score] - [--lddt-no-stereochecks] + [--dockq] [--dockq-capri-peptide] [--ics] + [--ips] [--rigid-scores] [--patch-scores] + [--tm-score] [--lddt-no-stereochecks] [--n-max-naive N_MAX_NAIVE] [--dump-aligned-residues] [--dump-pepnuc-alns] [--dump-pepnuc-aligned-residues] [--min-pep-length MIN_PEP_LENGTH] - [--min-nuc-length MIN_NUC_LENGTH] - + [--min-nuc-length MIN_NUC_LENGTH] [-v VERBOSITY] + [--lddt-add-mdl-contacts] + Evaluate model against reference - + Example: ost compare-structures -m model.pdb -r reference.cif - + Loads the structures and performs basic cleanup: - + * Assign elements according to the PDB Chemical Component Dictionary * Map nonstandard residues to their parent residues as defined by the PDB Chemical Component Dictionary, e.g. phospho-serine => serine @@ -65,18 +66,18 @@ Details on the usage (output of ``ost compare-structures --help``): * Remove unknown atoms, i.e. atoms that are not expected according to the PDB Chemical Component Dictionary * Select for peptide/nucleotide residues - + The cleaned structures are optionally dumped using -d/--dump-structures - + Output is written in JSON format (default: out.json). In case of no additional options, this is a dictionary with 8 keys describing model/reference comparison: - + * "reference_chains": Chain names of reference * "model_chains": Chain names of model * "chem_groups": Groups of polypeptides/polynucleotides from reference that are considered chemically equivalent. You can derive stoichiometry from this. Contains only chains that are considered in chain mapping, i.e. pass a - size threshold (defaults: 10 for peptides, 4 for nucleotides). + size threshold (defaults: 6 for peptides, 4 for nucleotides). * "chem_mapping": List of same length as "chem_groups". Assigns model chains to the respective chem group. Again, only contains chains that are considered in chain mapping. @@ -95,10 +96,10 @@ Details on the usage (output of ``ost compare-structures --help``): * "status": SUCCESS if everything ran through. In case of failure, the only content of the JSON output will be "status" set to FAILURE and an additional key: "traceback". - + The following additional keys store relevant input parameters to reproduce results: - + * "model" * "reference" * "fault_tolerant" @@ -111,23 +112,25 @@ Details on the usage (output of ``ost compare-structures --help``): * "lddt_no_stereochecks" * "min_pep_length" * "min_nuc_length" - + * "lddt_add_mdl_contacts" + * "dockq_capri_peptide" + The pairwise sequence alignments are computed with Needleman-Wunsch using BLOSUM62 (NUC44 for nucleotides). Many benchmarking scenarios preprocess the structures to ensure matching residue numbers (CASP/CAMEO). In these cases, enabling -rna/--residue-number-alignment is recommended. - + Each score is opt-in and can be enabled with optional arguments. - + Example to compute global and per-residue lDDT values as well as QS-score: - + ost compare-structures -m model.pdb -r reference.cif --lddt --local-lddt --qs-score - + Example to inject custom chain mapping - + ost compare-structures -m model.pdb -r reference.cif -c A:B B:A - - optional arguments: + + options: -h, --help show this help message and exit -m MODEL, --model MODEL Path to model file. @@ -148,13 +151,13 @@ Details on the usage (output of ``ost compare-structures --help``): Only has an effect if model is in mmcif format. By default, the asymmetric unit (AU) is used for scoring. If there are biounits defined in the mmcif file, you - can specify the (0-based) index of the one which + can specify the ID (as a string) of the one which should be used. -rb REFERENCE_BIOUNIT, --reference-biounit REFERENCE_BIOUNIT Only has an effect if reference is in mmcif format. By default, the asymmetric unit (AU) is used for scoring. If there are biounits defined in the mmcif file, you - can specify the (0-based) index of the one which + can specify the ID (as a string) of the one which should be used. -rna, --residue-number-alignment Make alignment based on residue number instead of @@ -167,11 +170,12 @@ Details on the usage (output of ``ost compare-structures --help``): the program fails for these cases. -d, --dump-structures Dump cleaned structures used to calculate all the - scores as PDB files using specified suffix. Files will - be dumped to the same location as original files. + scores as PDB or mmCIF files using specified suffix. + Files will be dumped to the same location and in the + same format as original files. -ds DUMP_SUFFIX, --dump-suffix DUMP_SUFFIX Use this suffix to dump structures. Defaults to - .compare.structures.pdb. + _compare_structures -ft, --fault-tolerant Fault tolerant parsing. -c CHAIN_MAPPING [CHAIN_MAPPING ...], --chain-mapping CHAIN_MAPPING [CHAIN_MAPPING ...] @@ -207,6 +211,9 @@ Details on the usage (output of ``ost compare-structures --help``): lDDT in this case is only computed on backbone atoms: CA for peptides and C3' for nucleotides. Per-residue scores are accessible as described for local_lddt. + --ilddt Compute global lDDT score which is solely based on + inter-chain contacts and store as key "ilddt". Same + stereochemical irregularities as for lddt apply. --cad-score Compute global CAD's atom-atom (AA) score and store as key "cad_score". --residue-number-alignment must be enabled to compute this score. Requires @@ -225,6 +232,11 @@ Details on the usage (output of ``ost compare-structures --help``): Path to USalign executable to compute TM-score. If not given, an OpenStructure internal copy of USalign code is used. + --override-usalign-mapping + Override USalign mapping and inject our own rigid + mapping. Only works if external usalign executable is + provided that is reasonably new and contains that + feature. --qs-score Compute QS-score, stored as key "qs_global", and the QS-best variant, stored as key "qs_best". Interfaces in the reference with non-zero contribution to QS- @@ -262,6 +274,23 @@ Details on the usage (output of ``ost compare-structures --help``): and "dockq_wave_full" add zeros in the average computation for each interface that is only present in the reference but not in the model. + --dockq-capri-peptide + Flag that changes two things in the way DockQ and its + underlying scores are computed which is proposed by + the CAPRI community when scoring peptides (PMID: + 31886916). ONE: Two residues are considered in contact + if any of their atoms is within 5A. This is relevant + for fnat and fnonat scores. CAPRI suggests to lower + this threshold to 4A for protein-peptide interactions. + TWO: irmsd is computed on interface residues. A + residue is defined as interface residue if any of its + atoms is within 10A of another chain. CAPRI suggests + to lower the default of 10A to 8A in combination with + only considering CB atoms for protein-peptide + interactions. Note that the resulting DockQ is not + evaluated for these slightly updated fnat and irmsd + (lrmsd stays the same).This flag has no influence on + patch_dockq scores. --ics Computes interface contact similarity (ICS) related scores. A contact between two residues of different chains is defined as having at least one heavy atom @@ -359,26 +388,36 @@ Details on the usage (output of ``ost compare-structures --help``): Dump additional info on model and reference residues that occur in pepnuc alignments. --min-pep-length MIN_PEP_LENGTH - Relevant parameter if short peptides are involved in - scoring.Minimum peptide length for a chain in the - target structure to be considered in chain mapping. - The chain mapping algorithm first performs an all vs. - all pairwise sequence alignment to identify "equal" - chains within the target structure. We go for simple - sequence identity there. Short sequences can be - problematic as they may produce high sequence identity - alignments by pure chance. + Default: 6 - Relevant parameter if short peptides are + involved in scoring. Minimum peptide length for a + chain in the target structure to be considered in + chain mapping. The chain mapping algorithm first + performs an all vs. all pairwise sequence alignment to + identify "equal" chains within the target structure. + We go for simple sequence identity there. Short + sequences can be problematic as they may produce high + sequence identity alignments by pure chance. --min-nuc-length MIN_NUC_LENGTH - Relevant parameter if short nucleotides are involved - in scoring.Minimum nucleotide length for a chain in - the target structure to be considered in chain - mapping. The chain mapping algorithm first performs an - all vs. all pairwise sequence alignment to identify - "equal" chains within the target structure. We go for - simple sequence identity there. Short sequences can be - problematic as they may produce high sequence identity - alignments by pure chance. - + Default: 4 - Relevant parameter if short nucleotides + are involved in scoring.Minimum nucleotide length for + a chain in the target structure to be considered in + chain mapping. The chain mapping algorithm first + performs an all vs. all pairwise sequence alignment to + identify "equal" chains within the target structure. + We go for simple sequence identity there. Short + sequences can be problematic as they may produce high + sequence identity alignments by pure chance. + -v VERBOSITY, --verbosity VERBOSITY + Set verbosity level. Defaults to 3 (Script). + --lddt-add-mdl-contacts + Only using contacts in lDDT thatare within a certain + distance threshold in the reference does not penalize + for added model contacts. If set to True, this flag + will also consider reference contacts that are within + the specified distance threshold in the model but not + necessarily in the reference. No contact will be added + if the respective atom pair is not resolved in the + reference. .. _ost compare ligand structures: @@ -388,147 +427,158 @@ Comparing two structures with ligands You can compare two structures with non-polymer/small molecule ligands and compute lDDT-PLI and ligand RMSD scores from the command line with the ``ost compare-ligand-structures`` action. This can be considered a command -line interface to :class:`ost.mol.alg.ligand_scoring.LigandScorer`. +line interface to :class:`ost.mol.alg.ligand_scoring.LigandScorer` and more +information about arguments and outputs can be found there. Details on the usage (output of ``ost compare-ligand-structures --help``): .. code-block:: console - usage: ost compare-ligand-structures [-h] -m MODEL [-ml [MODEL_LIGANDS ...]] - -r REFERENCE [-rl [REFERENCE_LIGANDS ...]] - [-o OUTPUT] [-mf {pdb,mmcif,cif}] - [-rf {pdb,mmcif,cif}] [-ft] [-rna] [-ec] [-sm] - [-gcm] [-c CHAIN_MAPPING [CHAIN_MAPPING ...]] - [-ra] [--lddt-pli] [--rmsd] [--radius RADIUS] - [--lddt-pli-radius LDDT_PLI_RADIUS] - [--lddt-lp-radius LDDT_LP_RADIUS] - [-v VERBOSITY] [--n-max-naive N_MAX_NAIVE] - - Evaluate model with non-polymer/small molecule ligands against reference. - - Example: ost compare-ligand-structures \ - -m model.pdb \ - -ml ligand.sdf \ - -r reference.cif \ - --lddt-pli --rmsd - - Structures of polymer entities (proteins and nucleotides) can be given in PDB - or mmCIF format. If the structure is given in mmCIF format, only the asymmetric - unit (AU) is used for scoring. - - Ligands can be given as path to SDF files containing the ligand for both model - (--model-ligands/-ml) and reference (--reference-ligands/-rl). If omitted, - ligands will be detected in the model and reference structures. For structures - given in mmCIF format, this is based on the annotation as "non polymer entity" - (i.e. ligands in the _pdbx_entity_nonpoly mmCIF category) and works reliably. - For structures given in PDB format, this is based on the HET records and is - normally not what you want. You should always give ligands as SDF for - structures in PDB format. - - Polymer/oligomeric ligands (saccharides, peptides, nucleotides) are not - supported. - - Only minimal cleanup steps are performed (remove hydrogens, and for structures - of polymers only, remove unknown atoms and cleanup element column). - - Ligands in mmCIF and PDB files must comply with the PDB component dictionary - definition, and have properly named residues and atoms, in order for - ligand connectivity to be loaded correctly. Ligands loaded from SDF files - are exempt from this restriction, meaning any arbitrary ligand can be assessed. - - Output is written in JSON format (default: out.json). In case of no additional - options, this is a dictionary with three keys: - - * "model_ligands": A list of ligands in the model. If ligands were provided - explicitly with --model-ligands, elements of the list will be the paths to - the ligand SDF file(s). Otherwise, they will be the chain name, residue - number and insertion code of the ligand, separated by a dot. - * "reference_ligands": A list of ligands in the reference. If ligands were - provided explicitly with --reference-ligands, elements of the list will be - the paths to the ligand SDF file(s). Otherwise, they will be the chain name, - residue number and insertion code of the ligand, separated by a dot. - * "status": SUCCESS if everything ran through. In case of failure, the only - content of the JSON output will be "status" set to FAILURE and an - additional key: "traceback". - - Each score is opt-in and, be enabled with optional arguments and is added - to the output. Keys correspond to the values in "model_ligands" above. - Unassigned ligands are reported with a message in - "unassigned_model_ligands" and "unassigned_reference_ligands". - - options: - -h, --help show this help message and exit - -m MODEL, --mdl MODEL, --model MODEL - Path to model file. - -ml [MODEL_LIGANDS ...], --mdl-ligands [MODEL_LIGANDS ...], - --model-ligands [MODEL_LIGANDS ...] - Path to model ligand files. - -r REFERENCE, --ref REFERENCE, --reference REFERENCE - Path to reference file. - -rl [REFERENCE_LIGANDS ...], --ref-ligands [REFERENCE_LIGANDS ...], - --reference-ligands [REFERENCE_LIGANDS ...] - Path to reference ligand files. - -o OUTPUT, --out OUTPUT, --output OUTPUT - Output file name. The output will be saved as a JSON - file. default: out.json - -mf {pdb,mmcif,cif}, --mdl-format {pdb,mmcif,cif}, - --model-format {pdb,mmcif,cif} - Format of model file. Inferred from path if not - given. - -rf {pdb,mmcif,cif}, --reference-format {pdb,mmcif,cif}, - --ref-format {pdb,mmcif,cif} - Format of reference file. Inferred from path if not - given. - -ft, --fault-tolerant - Fault tolerant parsing. - -rna, --residue-number-alignment - Make alignment based on residue number instead of - using a global BLOSUM62-based alignment (NUC44 for - nucleotides). - -ec, --enforce-consistency - Enforce consistency of residue names between the - reference binding site and the model. By default - residue name discrepancies are reported but the - program proceeds. If this is set to True, the program - will fail with an error message if the residues names - differ. Note: more binding site mappings may be - explored during scoring, but only inconsistencies in - the selected mapping are reported. - -sm, --substructure-match - Allow incomplete target ligands. - -gcm, --global-chain-mapping - Use a global chain mapping. - -c CHAIN_MAPPING [CHAIN_MAPPING ...], - --chain-mapping CHAIN_MAPPING [CHAIN_MAPPING ...] - Custom mapping of chains between the reference and - the model. Each separate mapping consist of key:value - pairs where key is the chain name in reference and - value is the chain name in model. Only has an effect - if global-chain-mapping flag is set. - -ra, --rmsd-assignment - Use RMSD for ligand assignment. - -u, --unassigned Report unassigned model ligands in the output - together with assigned ligands, with a null score, - and reason for not being assigned. - - --lddt-pli Compute lDDT-PLI score and store as key "lddt-pli". - --rmsd Compute RMSD score and store as key "rmsd". - --radius RADIUS Inclusion radius for the binding site. Any residue - with atoms within this distance of the ligand will - be included in the binding site. - --lddt-pli-radius LDDT_PLI_RADIUS - lDDT inclusion radius for lDDT-PLI. - --lddt-lp-radius LDDT_LP_RADIUS - lDDT inclusion radius for lDDT-LP. - -v VERBOSITY, --verbosity VERBOSITY - Set verbosity level. Defaults to 3 (INFO). - --n-max-naive N_MAX_NAIVE - If number of chains in model and reference are - below or equal that number, the global chain - mapping will naively enumerate all possible - mappings. A heuristic is used otherwise. - - -Additional information about the scores and output values is available in -:meth:`rmsd_details <ost.mol.alg.ligand_scoring.LigandScorer.rmsd_details>` and -:meth:`lddt_pli_details <ost.mol.alg.ligand_scoring.LigandScorer.lddt_pli_details>`. + usage: ost compare-ligand-structures [-h] -m MODEL [-ml [MODEL_LIGANDS ...]] + -r REFERENCE + [-rl [REFERENCE_LIGANDS ...]] [-o OUTPUT] + [-mf {pdb,cif,mmcif}] + [-rf {pdb,cif,mmcif}] [-mb MODEL_BIOUNIT] + [-rb REFERENCE_BIOUNIT] [-ft] [-rna] + [-sm] [-cd COVERAGE_DELTA] [-v VERBOSITY] + [--full-results] [--lddt-pli] + [--lddt-pli-radius LDDT_PLI_RADIUS] + [--lddt-pli-amc] [--rmsd] + [--radius RADIUS] + [--lddt-lp-radius LDDT_LP_RADIUS] [-fbs] + + Evaluate model with non-polymer/small molecule ligands against reference. + + Example: ost compare-ligand-structures \ + -m model.pdb \ + -ml ligand.sdf \ + -r reference.cif \ + --lddt-pli --rmsd + + Structures of polymer entities (proteins and nucleotides) can be given in PDB + or mmCIF format. + + Ligands can be given as path to SDF files containing the ligand for both model + (--model-ligands/-ml) and reference (--reference-ligands/-rl). If omitted, + ligands will be detected in the model and reference structures. For structures + given in mmCIF format, this is based on the annotation as "non polymer entity" + (i.e. ligands in the _pdbx_entity_nonpoly mmCIF category) and works reliably. + For structures given in legacy PDB format, this is based on the HET records + which is usually only set properly on files downloaded from the PDB (and even + then, this is not always the case). This is normally not what you want. You + should always give ligands as SDF for structures in legacy PDB format. + + Polymer/oligomeric ligands (saccharides, peptides, nucleotides) are not + supported. + + Only minimal cleanup steps are performed (remove hydrogens and deuteriums, + and for structures of polymers only, remove unknown atoms and cleanup element + column). + + Ligands in mmCIF and PDB files must comply with the PDB component dictionary + definition, and have properly named residues and atoms, in order for + ligand connectivity to be loaded correctly. Ligands loaded from SDF files + are exempt from this restriction, meaning any arbitrary ligand can be assessed. + + Output is written in JSON format (default: out.json). In case of no additional + options, this is a dictionary with three keys: + + * "model_ligands": A list of ligands in the model. If ligands were provided + explicitly with --model-ligands, elements of the list will be the paths to + the ligand SDF file(s). Otherwise, they will be the chain name, residue + number and insertion code of the ligand, separated by a dot. + * "reference_ligands": A list of ligands in the reference. If ligands were + provided explicitly with --reference-ligands, elements of the list will be + the paths to the ligand SDF file(s). Otherwise, they will be the chain name, + residue number and insertion code of the ligand, separated by a dot. + * "status": SUCCESS if everything ran through. In case of failure, the only + content of the JSON output will be "status" set to FAILURE and an + additional key: "traceback". + + Each score is opt-in and the respective results are available in three keys: + + * "assigned_scores": A list with data for each pair of assigned ligands. + Data is yet another dict containing score specific information for that + ligand pair. The following keys are there in any case: + + * "model_ligand": The model ligand + * "reference_ligand": The target ligand to which model ligand is assigned to + * "score": The score + * "coverage": Fraction of model ligand atoms which are covered by target + ligand. Will only deviate from 1.0 if --substructure-match is enabled. + + * "model_ligand_unassigned_reason": Dictionary with unassigned model ligands + as key and an educated guess why this happened. + + * "reference_ligand_unassigned_reason": Dictionary with unassigned target ligands + as key and an educated guess why this happened. + + If --full-results is enabled, another element with key "full_results" is added. + This is a list of data items for each pair of model/reference ligands. The data + items follow the same structure as in "assigned_scores". If no score for a + specific pair of ligands could be computed, "score" and "coverage" are set to + null and a key "reason" is added giving an educated guess why this happened. + + options: + -h, --help show this help message and exit + -m MODEL, --mdl MODEL, --model MODEL + Path to model file. + -ml [MODEL_LIGANDS ...], --mdl-ligands [MODEL_LIGANDS ...], --model-ligands [MODEL_LIGANDS ...] + Path to model ligand files. + -r REFERENCE, --ref REFERENCE, --reference REFERENCE + Path to reference file. + -rl [REFERENCE_LIGANDS ...], --ref-ligands [REFERENCE_LIGANDS ...], --reference-ligands [REFERENCE_LIGANDS ...] + Path to reference ligand files. + -o OUTPUT, --out OUTPUT, --output OUTPUT + Output file name. The output will be saved as a JSON + file. default: out.json + -mf {pdb,cif,mmcif}, --mdl-format {pdb,cif,mmcif}, --model-format {pdb,cif,mmcif} + Format of model file. pdb reads pdb but also pdb.gz, + same applies to cif/mmcif. Inferred from filepath if + not given. + -rf {pdb,cif,mmcif}, --reference-format {pdb,cif,mmcif}, --ref-format {pdb,cif,mmcif} + Format of reference file. pdb reads pdb but also + pdb.gz, same applies to cif/mmcif. Inferred from + filepath if not given. + -mb MODEL_BIOUNIT, --model-biounit MODEL_BIOUNIT + Only has an effect if model is in mmcif format. By + default, the asymmetric unit (AU) is used for scoring. + If there are biounits defined in the mmcif file, you + can specify the ID (as a string) of the one which + should be used. + -rb REFERENCE_BIOUNIT, --reference-biounit REFERENCE_BIOUNIT + Only has an effect if reference is in mmcif format. By + default, the asymmetric unit (AU) is used for scoring. + If there are biounits defined in the mmcif file, you + can specify the ID (as a string) of the one which + should be used. + -ft, --fault-tolerant + Fault tolerant parsing. + -rna, --residue-number-alignment + Make alignment based on residue number instead of + using a global BLOSUM62-based alignment (NUC44 for + nucleotides). + -sm, --substructure-match + Allow incomplete (ie partially resolved) target + ligands. + -cd COVERAGE_DELTA, --coverage-delta COVERAGE_DELTA + Coverage delta for partial ligand assignment. + -v VERBOSITY, --verbosity VERBOSITY + Set verbosity level. Defaults to 3 (INFO). + --full-results Outputs scoring results for all model/reference ligand + pairs and store as key "full_results" + --lddt-pli Compute lDDT-PLI scores and store as key "lddt_pli". + --lddt-pli-radius LDDT_PLI_RADIUS + lDDT inclusion radius for lDDT-PLI. + --lddt-pli-amc Add model contacts (amc) when computing lDDT-PLI. + --rmsd Compute RMSD scores and store as key "rmsd". + --radius RADIUS Inclusion radius to extract reference binding site + that is used for RMSD computation. Any residue with + atoms within this distance of the ligand will be + included in the binding site. + --lddt-lp-radius LDDT_LP_RADIUS + lDDT inclusion radius for lDDT-LP. + -fbs, --full-bs-search + Enumerate all potential binding sites in the model + when searching rigid superposition for RMSD + computation diff --git a/modules/doc/deprecated_actions.rst b/modules/doc/deprecated_actions.rst index 44cb1aa12f9be2c2d55035fec72cf2666ba42967..c29566d46230238e7e0c85d404ee1695bce65b98 100644 --- a/modules/doc/deprecated_actions.rst +++ b/modules/doc/deprecated_actions.rst @@ -10,10 +10,10 @@ Comparing two structures - legacy implementation .. warning:: - ``compare-structures`` underwent a complete rewrite in OpenStructure - release 2.4.0. Here we keep the original documentation. Call with - ``compare-structures-legacy`` instead of ``compare-structures`` as documented - below. + The ``compare-structures-legacy`` is the deprecated, original action to + compare structures. Consider using the new + :ref:`compare-structures action<ost compare structures>` which utilizes the + latest lDDT implementation. You can compare two structures in terms of quaternary structure score and lDDT scores between two complexes from the command line with the @@ -51,11 +51,11 @@ In summary it performs the following steps: same requirements on your OST installation (needs compound library, ClustalW, numpy and scipy). -Details on the usage (output of ``ost compare-structures --help``): +Details on the usage (output of ``ost compare-structures-legacy --help``): .. code-block:: console - usage: ost compare-structures [-h] -m MODEL -r REFERENCE [-v VERBOSITY] + usage: ost compare-structures-legacy [-h] -m MODEL -r REFERENCE [-v VERBOSITY] [-o OUTPUT] [-d] [-ds DUMP_SUFFIX] [-rs REFERENCE_SELECTION] [-ms MODEL_SELECTION] [-ca] [-ft] [-cl COMPOUND_LIBRARY] [-ml] @@ -72,7 +72,7 @@ Details on the usage (output of ``ost compare-structures --help``): eg. - ost compare-structures \ + ost compare-structures-legacy \ --model <MODEL> \ --reference <REF> \ --output output.json \ @@ -108,9 +108,9 @@ Details on the usage (output of ``ost compare-structures --help``): <FILEPATH> To be as much compatible with with CAMEO as possible one should call - compare-structures as follows: + compare-structures-legacy as follows: - ost compare-structures \ + ost compare-structures-legacy \ --model <MODEL> \ --reference <REF> \ --output output.json \ @@ -325,7 +325,7 @@ Example usage: $ CAMEO_TARGET_URL=https://www.cameo3d.org/static/data/modeling/2019.07.13/6PO4_F $ curl $CAMEO_TARGET_URL/bu_target_01.pdb > reference.pdb $ curl $CAMEO_TARGET_URL/servers/server20/oligomodel-1/oligomodel-1.pdb > model.pdb - $ $OST_ROOT/bin/ost compare-structures \ + $ $OST_ROOT/bin/ost compare-structures-legacy \ --model model.pdb --reference reference.pdb --output output.json \ --qs-score --residue-number-alignment --lddt --structural-checks \ --consistency-checks --inclusion-radius 15.0 --bond-tolerance 15.0 \ @@ -561,7 +561,7 @@ all the checking steps and calculate scores directly as here: .. code:: console - $ $OST_ROOT/bin/ost compare-structures \ + $ $OST_ROOT/bin/ost compare-structures-legacy \ --model model.pdb --reference reference.pdb --output output_qs.json \ --qs-score --residue-number-alignment diff --git a/modules/doc/install.rst b/modules/doc/install.rst index 2f5470c56617356d5789cd0a7f569b939c05ace7..42cf59b918bcc27161421c9ff6cbd36bb4407e05 100644 --- a/modules/doc/install.rst +++ b/modules/doc/install.rst @@ -57,6 +57,11 @@ If you would like to use the :mod:`molecular mechanics <ost.mol.mm>` module: * `OpenMM <https://simtk.org/home/openmm>`_ (7.7.0) +If you would like to do pairwise sequence alignments with parasail +in the :mod:`bindings <ost.bindings>` module: + +* `parasail <https://github.com/jeffdaily/parasail/>`_ (2.6.2) + We do not provide backwards compatibility to Python 2.7. The last release supporting Python 2.7 is 1.11.0. @@ -178,9 +183,6 @@ can influence it. then available at python level. This option requires a Fortran compiler. By default, this option is switched off. -* `USE_NUMPY` allows OpenStructure to pass back data in NumPy format. By - default, this is switched off. - * `ENABLE_MM` controls whether the molecular mechanics module is enabled. By default, this is switched off. If it is turned on, you should also set the paths to your local OpenMM installation: @@ -190,6 +192,13 @@ can influence it. * `OPEN_MM_PLUGIN_DIR`: the path for OpenMM plugins * see example below for commonly used paths +* `ENABLE_PARASAIL` controls whether parasail should be enabled. By default, + this is switched off. If it is turned on, you must also set the paths + to your parasail installation: + + * `PARASAIL_INCLUDE_DIR`: the include path containing the file parasail.h + * `PARASAIL_LIBRARY`: the parasail library + * Several paths to other libraries can be set if they are not in the expected locations: diff --git a/modules/geom/doc/composite.rst b/modules/geom/doc/composite.rst index c8e9701b9e565e33e271e83f87150936b7868b5d..50c8e52d274c757ffa05ba1384e74320d11d3482 100644 --- a/modules/geom/doc/composite.rst +++ b/modules/geom/doc/composite.rst @@ -452,7 +452,7 @@ Operations on Geometrical Objects :raises: :exc:`~exceptions.RuntimeError` when the two objects do not intersect :rtype: :class:`Vec3` (:class:`Vec2` in case of :class:`Line2`) -.. function:: IntersectionLine(plane2, plane2) +.. function:: IntersectionLine(plane1, plane2) Returns the intersection line between `plane1` and `plane2`. diff --git a/modules/gfx/doc/gfx.rst b/modules/gfx/doc/gfx.rst index de9cf3ddbcf1170f9cfac59f7377ec284fdf3b5a..4d54795d01220eaf402c3dcbccebb8fb32ad548d 100644 --- a/modules/gfx/doc/gfx.rst +++ b/modules/gfx/doc/gfx.rst @@ -1,10 +1,10 @@ :mod:`~ost.gfx` - Realtime 3D Rendering ================================================================================ -For a introduction to the :mod:`~ost.gfx` module, please have a look at the :doc:`../intro-03`. - .. module:: ost.gfx :synopsis: Realtime 3D Rendering + +For a introduction to the :mod:`~ost.gfx` module, please have a look at the :doc:`../intro-03`. .. toctree:: :maxdepth: 2 diff --git a/modules/gfx/pymod/export_primlist.cc b/modules/gfx/pymod/export_primlist.cc index 4538f366e1a2b5c4f2c4e5280194ddbbf5f6e3e2..e0d21eb816b64b0272dfde7a4ed5f78f24005dc5 100644 --- a/modules/gfx/pymod/export_primlist.cc +++ b/modules/gfx/pymod/export_primlist.cc @@ -26,122 +26,16 @@ using namespace boost::python; using namespace ost; using namespace ost::gfx; -/* The following #include triggers a deprecation warning upon compilation: - -In file included from /unibas/lcs-software/software/Python/2.7.11-goolf-1.7.20/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1781:0, - from /unibas/lcs-software/software/Python/2.7.11-goolf-1.7.20/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:18, - from /unibas/lcs-software/software/Python/2.7.11-goolf-1.7.20/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4, - from /home/zohixe92/build/ost-develop/modules/gfx/pymod/export_primlist.cc:30: -/unibas/lcs-software/software/Python/2.7.11-goolf-1.7.20/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] - #warning "Using deprecated NumPy API, disable it by " \ - ^ - -It looks like just including <numpy/arrayobject.h>, without actually using anything from it, already triggers the -warning. This could be a side effect of other includes in export_primlist.cc though, such as boost. - -The Numpy C API documentation <https://docs.scipy.org/doc/numpy-1.15.1/reference/c-api.deprecations.html> is very -unclear about what is deprecated exactly (the whole API or only direct data access?) The Array API doc -<https://docs.scipy.org/doc/numpy-1.16.0/reference/c-api.array.html> doesn't clearly state what to import instead, -and while some functions are marked as deprecated I couldn't see that we are using any of them. Last, the migration sed -script <https://github.com/numpy/numpy/blob/master/tools/replace_old_macros.sed> didn't trigger any changes. - -The warnings appear to be safe though, behavior has been checked in <https://jira.biozentrum.unibas.ch/browse/SCHWED-3149> -and Numpy guarantees to maintain them until the next major release (2.0). So it is safe to ignore them for now. -They can be silenced with the following #define, however it was decided to keep them for now as functionality *will* -disappear in the future. - -#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION - -In the future it might be desirable to move to the newer API in Boost::Python::NumPy -which uses modern C++ instead of old-style C macros. -<https://www.boost.org/doc/libs/1_64_0/libs/python/doc/html/numpy/reference/ndarray.html> -*/ -#if OST_NUMPY_SUPPORT_ENABLED -#include <numpy/arrayobject.h> -#endif - namespace { + // used numpy support that has been deprecated... void add_mesh(PrimList& p, object ova, object ona, object oca, object oia) { -#if OST_NUMPY_SUPPORT_ENABLED - if(!PyArray_Check(ova.ptr())) { - throw Error("ova is not a numpy array"); - } - PyArrayObject* va=reinterpret_cast<PyArrayObject*>(ova.ptr()); - if(!PyArray_ISCONTIGUOUS(va)) { - throw Error("expected vertex array to be contiguous"); - } - if(PyArray_TYPE(va)!=NPY_FLOAT) { - throw Error("expected vertex array to be of dtype=float32"); - } - size_t v_size=PyArray_SIZE(va); - if(v_size%3!=0) { - throw Error("expected vertex array size to be divisible by 3"); - } - size_t v_count=v_size/3; - float* vp=reinterpret_cast<float*>(PyArray_DATA(va)); - float* np=0; - float* cp=0; - if(!ona.is_none()) { - if(!PyArray_Check(ona.ptr())) { - throw Error("ona is not a numpy array"); - } - PyArrayObject* na=reinterpret_cast<PyArrayObject*>(ona.ptr()); - if(!PyArray_ISCONTIGUOUS(na)) { - throw Error("expected normal array to be contiguous"); - } - if(PyArray_TYPE(na)!=NPY_FLOAT) { - throw Error("expected normal array to be of dtype=float32"); - } - if((size_t)PyArray_SIZE(na)!=v_size) { - throw Error("expected normal array size to match vertex array size"); - } - np=reinterpret_cast<float*>(PyArray_DATA(na)); - } - if(!oca.is_none()) { - if(!PyArray_Check(oca.ptr())) { - throw Error("oca is not a numpy array"); - } - PyArrayObject* ca=reinterpret_cast<PyArrayObject*>(oca.ptr()); - if(!PyArray_ISCONTIGUOUS(ca)) { - throw Error("expected color array to be contiguous"); - } - if(PyArray_TYPE(ca)!=NPY_FLOAT) { - throw Error("expected color array to be of dtype=float32"); - } - if((size_t)PyArray_SIZE(ca)!=v_count*4) { - throw Error("expected color array size to equal vertex-count x 4"); - } - cp=reinterpret_cast<float*>(PyArray_DATA(ca)); - } - if(!PyArray_Check(oia.ptr())) { - throw Error("oia is not a numpy array"); - } - PyArrayObject* ia=reinterpret_cast<PyArrayObject*>(oia.ptr()); - if(!PyArray_ISCONTIGUOUS(ia)) { - throw Error("expected vertex array to be contiguous"); - } - if(PyArray_TYPE(ia)!=NPY_UINT) { - throw Error("expected vertex array to be of dtype=uint32"); - } - size_t i_size=PyArray_SIZE(ia); - unsigned int* ip=reinterpret_cast<unsigned int*>(PyArray_DATA(ia)); - - p.AddMesh(vp,np,cp,v_count,ip,i_size/3); -#else - throw Error("AddMesh requires compiled-in numpy support"); -#endif + throw Error("AddMesh requires compiled-in numpy support and that has been deprecated"); } } void export_primlist() { -#if OST_NUMPY_SUPPORT_ENABLED - // The following define enforces no return value when calling import_array - #define NUMPY_IMPORT_ARRAY_RETVAL - import_array(); // magic handshake for numpy module -#endif - class_<PrimList, bases<GfxObj>, boost::shared_ptr<PrimList>, boost::noncopyable>("PrimList", init<const String& >()) .def("Clear",&PrimList::Clear) .def("_add_line",&PrimList::AddLine) diff --git a/modules/gfx/tests/test_gfx.py b/modules/gfx/tests/test_gfx.py index 2baf689d8a4054663826426340bc9026974872df..d4635ca18ae643b451f9ab739573dfcbc99f0020 100644 --- a/modules/gfx/tests/test_gfx.py +++ b/modules/gfx/tests/test_gfx.py @@ -28,15 +28,6 @@ import ost.mol as mol import ost.gfx as gfx import ost.geom as geom -if ost.WITH_NUMPY: - has_numpy=True - try: - import numpy - except ImportError as e: - has_numpy=False -else: - has_numpy=False - def col_delta(c1,c2): return geom.Distance(geom.Vec3(c1[0],c1[1],c1[2]),geom.Vec3(c2[0],c2[1],c2[2])) @@ -120,38 +111,6 @@ class TestGfx(unittest.TestCase): pl.AddCyl(geom.Vec3(0,0,0),geom.Vec3(1,2,3),radius1=0.5,radius2=0.1,color1=gfx.BLUE,color2=gfx.GREEN) pl.AddText("foo",[0,2,3]) pl.AddText("bar",[-2,0,0],color=gfx.WHITE,point_size=8) - if has_numpy: - pl.AddMesh(numpy.zeros((5,3),dtype=numpy.float32), - numpy.zeros((5,3),dtype=numpy.float32), - numpy.zeros((5,4),dtype=numpy.float32), - numpy.zeros((2,3),dtype=numpy.uint32)) - pl.AddMesh(numpy.zeros((7,3),dtype=numpy.float32), - None, - None, - numpy.zeros((4,3),dtype=numpy.uint32)) - - # Passing wrong data type should fail - with self.assertRaises(Exception): - pl.AddMesh(numpy.zeros((5, 3), dtype=numpy.uint32), - numpy.zeros((5, 3), dtype=numpy.float32), - numpy.zeros((5, 4), dtype=numpy.float32), - numpy.zeros((2, 3), dtype=numpy.uint32)) - with self.assertRaises(Exception): - pl.AddMesh(numpy.zeros((5, 3), dtype=numpy.float32), - numpy.zeros((5, 3), dtype=numpy.uint32), - numpy.zeros((5, 4), dtype=numpy.float32), - numpy.zeros((2, 3), dtype=numpy.uint32)) - with self.assertRaises(Exception): - pl.AddMesh(numpy.zeros((5, 3), dtype=numpy.float32), - numpy.zeros((5, 3), dtype=numpy.float32), - numpy.zeros((5, 4), dtype=numpy.uint32), - numpy.zeros((2, 3), dtype=numpy.uint32)) - with self.assertRaises(Exception): - pl.AddMesh(numpy.zeros((5, 3), dtype=numpy.float32), - numpy.zeros((5, 3), dtype=numpy.float32), - numpy.zeros((5, 4), dtype=numpy.float32), - numpy.zeros((2, 3), dtype=numpy.float32)) - if __name__== '__main__': from ost import testutils diff --git a/modules/gui/doc/layout.rst b/modules/gui/doc/layout.rst index 5906dd96480480eb231af83ddf2ecdf146bba269..8fcdcf45b221a5f5dc7f80fa90c8b4cee5d6a738 100644 --- a/modules/gui/doc/layout.rst +++ b/modules/gui/doc/layout.rst @@ -112,6 +112,7 @@ how to add a widget to the MDI area: :type name: :class:`QWindowState` .. method:: AddPersistentWidget(title, name, widget, width, height, x, y) + :noindex: Add a widget whose geometry is preserved across application relaunches For widgets that are volatile, use #AddWidget() @@ -258,6 +259,7 @@ and finally display it in the right side bar: :type limit: :class:`int` .. method:: AddWidgetToPool(name, widget) + :noindex: Add a widget to the widget pool. Same as :meth:`AddWidgetToPool` diff --git a/modules/img/alg/doc/alg.rst b/modules/img/alg/doc/alg.rst index 5e38b19b56f626664ae8f91d99d66d028f946f47..1825f56c544b73078df97daba86bf52afc1bb8e6 100644 --- a/modules/img/alg/doc/alg.rst +++ b/modules/img/alg/doc/alg.rst @@ -1,4 +1,4 @@ -:mod:`img.alg <ost.img.alg>` - Image Processing Algorithms +:mod:`~ost.img.alg` - Image Processing Algorithms ================================================================================ .. module:: ost.img.alg @@ -495,5 +495,3 @@ most important ones. :type maximum: float - .. method:: GetBins() - diff --git a/modules/img/base/doc/img.rst b/modules/img/base/doc/img.rst index 9fe712166cb3240e94bdecf5b146e571c5372bfe..b36b0cd692ed02c18a450bd38c6912f6b51217ec 100644 --- a/modules/img/base/doc/img.rst +++ b/modules/img/base/doc/img.rst @@ -1,14 +1,15 @@ :mod:`~ost.img` - Images and Density Maps ================================================================================ +.. module:: ost.img + :synopsis: Images and density maps + .. toctree:: :hidden: point-size-extent + ../alg/alg -.. module:: ost.img - :synopsis: Images and density maps - Introduction : The ImageHandle -------------------------------------------------------------------------------- diff --git a/modules/index.rst b/modules/index.rst index 9727d322be7f61df6d9c20dd71f457ab6326f4be..9a286f1c114187f2c10e59968a108e447f18e2a6 100644 --- a/modules/index.rst +++ b/modules/index.rst @@ -8,30 +8,10 @@ OpenStructure documentation install intro users - base/generic base/base - geom/geom - mol/base/mol - mol/alg/molalg - mol/mm/molmm - conop/conop - img/base/img - img/alg/alg - seq/base/seq - seq/alg/seqalg - db/db - - bindings/bindings - - io/io - gfx/gfx - gui/gui newmodule external contributing - table - mol/alg/lddt - mol/alg/molck actions For Starters @@ -98,7 +78,7 @@ Graphical User Interface Varia -------------------------------------------------------------------------------- -**Datasets**: :doc:`tabular data <table>` +**Datasets**: :doc:`tabular data <base/table>` **Supported File Formats**: :doc:`structure formats<io/structure_formats>` | :doc:`sequence formats <io/sequence_formats>` | :doc:`sequence profile formats <io/sequence_profile_formats>` | :doc:`image formats <io/image_formats>` diff --git a/modules/io/doc/io.rst b/modules/io/doc/io.rst index 70174b3753f094fb5654c9a89a650c04943cb422..87bd4d3c808e7f6e6a2e990d1353c859ed3684a8 100644 --- a/modules/io/doc/io.rst +++ b/modules/io/doc/io.rst @@ -1,6 +1,9 @@ :mod:`~ost.io` - Input and Output of Sequences, Structures and Maps ================================================================================ +.. module:: ost.io + :synopsis: Input and output of sequences, alignments, structures, images and density maps. + .. toctree:: :hidden: @@ -11,10 +14,7 @@ mmcif profile -.. module:: ost.io - :synopsis: Input and output of sequences, alignments, structures, images and density maps. - -The io module deals with the input and output of :class:`entities +The io module deals with the input and output of :class:`entities <ost.mol.EntityHandle>`, :class:`alignments <ost.seq.AlignmentHandle>`, :class:`sequences <ost.seq.SequenceHandle>`, :class:`images <ost.img.ImageHandle>`. Importers for common file formats containing molecules diff --git a/modules/io/doc/mmcif.rst b/modules/io/doc/mmcif.rst index 91d6cda1f8f9a9461326f67257d1df9a6ebc0222..1c7d17c98ed50a92261d15ba90175914fd39d1ed 100644 --- a/modules/io/doc/mmcif.rst +++ b/modules/io/doc/mmcif.rst @@ -45,8 +45,8 @@ The following categories of a mmCIF file are considered by the reader: * ``pdbx_database_PDB_obs_spr``: Verbose information on obsoleted/ superseded entries, stored in :class:`MMCifInfoObsolete` * ``struct_ref`` stored in :class:`MMCifInfoStructRef` -* ``struct_ref_seq`` stored in :class:`MMCifInfoStructRefSeqDif` -* ``struct_ref_seq_dif`` stored in :class:`MMCifInfoStructRefDif` +* ``struct_ref_seq`` stored in :class:`MMCifInfoStructRefSeq` +* ``struct_ref_seq_dif`` stored in :class:`MMCifInfoStructRefSeqDif` * ``database_pdb_rev`` (mmCIF dictionary version < 5) stored in :class:`MMCifInfoRevisions` * ``pdbx_audit_revision_history`` and ``pdbx_audit_revision_details`` @@ -65,8 +65,7 @@ Notes: It is added as string property named "pdb_auth_chain_name" to the :class:`~ost.mol.ChainHandle`. The mapping is also stored in :class:`MMCifInfo` as :meth:`~MMCifInfo.GetMMCifPDBChainTr` and - :meth:`~MMCifInfo.GetPDBMMCifChainTr` if a non-empty SEQRES record exists for - that chain (this should exclude ligands and water). + :meth:`~MMCifInfo.GetPDBMMCifChainTr` (the latter only for polymer chains). * Molecular entities in mmCIF are identified by an ``entity.id``, which is extracted from ``atom_site.label_entity_id`` for the first atom of the chain. It is added as string property named "entity_id" to the @@ -141,7 +140,7 @@ of the annotation available. :meth:`SetMethod`. Some PDB entries have multiple experimental methods. This function - only a single one of them. + returns only a single one of them. .. attribute:: resolution @@ -195,7 +194,11 @@ of the annotation available. .. attribute:: struct_refs - Lists all links to external databases in the mmCIF file. + Lists all links to external databases in the mmCIF file as a + list of :class:`MMCifInfoStructRef`. + + Also available as :meth:`GetStructRefs`. May also be modified by + :meth:`SetStructRefs`. .. attribute:: revisions @@ -288,6 +291,16 @@ of the annotation available. .. method:: GetStructDetails() + See :attr:`struct_details` + + .. method:: SetStructRef(refs) + + See :attr:`struct_refs` + + .. method:: GetStructRef() + + See :attr:`struct_refs` + .. method:: AddMMCifPDBChainTr(cif_chain_id, pdb_chain_id) Set up a translation for a certain mmCIF chain name to the traditional PDB @@ -1142,16 +1155,22 @@ of the annotation available. :attr:`db_name`. :type: :class:`str` + + .. attribute:: aligned_seqs + + List of aligned sequences (all entries of the struct_ref_seq category + mapping to this struct_ref) as :class:`MMCifInfoStructRefSeq`. + + Also available as :meth:`GetAlignedSeqs`. .. method:: GetAlignedSeq(name) - Returns the aligned sequence for the given name, None if the sequence does + Returns the aligned sequence for the given name, None if the sequence does not exist. - - .. attribute:: aligned_seqs - List of aligned sequences (all entries of the struct_ref_seq category - mapping to this struct_ref). + .. method:: GetAlignedSeqs() + + See :attr:`aligned_seqs` .. class:: MMCifInfoStructRefSeq @@ -1182,8 +1201,8 @@ of the annotation available. .. attribute:: difs - List of differences between the deposited sequence and the sequence in the - database. + List of differences (:class:`MMCifInfoStructRefSeqDif`) between the + deposited sequence and the sequence in the database. .. attribute:: chain_name @@ -1194,12 +1213,19 @@ of the annotation available. A particular difference between the deposited sequence and the sequence in the database. - .. attribute:: rnum + .. attribute:: seq_rnum The residue number (1-based) of the residue in the deposited sequence :type: :class:`int` + .. attribute:: db_rnum + + The number of the residue in the database sequence or '?' if + 'struct_ref_seq_dif.pdbx_seq_db_seq_num' was missing. + + :type: :class:`str` + .. attribute:: details A textual description of the difference, e.g. point mutation, @@ -1417,16 +1443,21 @@ of the annotation available. :class:`str` - .. attribute:: seqres + .. attribute:: seqres_canonical + + Canonical SEQRES - empty string if entity is not of type "polymer". + This contains the canonical sequence extracted from the + ``_entity_poly.pdbx_seq_one_letter_code_can`` data item. + + :type: :class:`str` + + .. attribute:: seqres_pdbx - SEQRES with gentle preprocessing - empty string if entity is not of type - "polymer". By default, the :class:`ost.io.MMCifReader` reads the value of the - ``_entity_poly.pdbx_seq_one_letter_code`` token. Copies all letters but - searches a :class:`ost.conop.CompoundLib` for compound names in brackets. - *seqres* gets an 'X' if no compound is found or the respective compound has - one letter code '?'. Uses the one letter code of the found compound - otherwise. So it's basically a canonical SEQRES with exactly one character - per residue. + PDBx SEQRES - empty string if entity is not of type "polymer". + This contains the sequence extracted from the + ``_entity_poly.pdbx_seq_one_letter_code`` data item. + Modifications and non-standard amino acids are represented by + their three letter code in brackets, e.g. "(MSE)" :type: :class:`str` @@ -1784,6 +1815,7 @@ a mmCIF file according to `mmcif_pdbx_v50 <https://mmcif.wwpdb.org/dictionaries/ * id * type + * name * `_atom_type <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/atom_type.html>`_ diff --git a/modules/io/doc/profile.rst b/modules/io/doc/profile.rst index 9ab8a395cc0e6b99d583fd2eff1dabfcab25d1d9..0dd9908675393478ee3c28ce83311872b60cd0e0 100644 --- a/modules/io/doc/profile.rst +++ b/modules/io/doc/profile.rst @@ -52,7 +52,7 @@ STRICT .. code-block:: python - IOProfile(dialect='PDB', fault_tolerant=False, quack_mode=False, + IOProfile(dialect='PDB', fault_tolerant=False, processor=conop.RuleBasedProcessor(conop.GetDefaultLib())) SLOPPY: @@ -61,7 +61,7 @@ SLOPPY: .. code-block:: python - IOProfile(dialect='PDB', fault_tolerant=True, quack_mode=True, + IOProfile(dialect='PDB', fault_tolerant=True, processor=conop.RuleBasedProcessor(conop.GetDefaultLib())) CHARMM: @@ -71,7 +71,7 @@ CHARMM: .. code-block:: python - IOProfile(dialect='CHARMM', fault_tolerant=True, quack_mode=False, + IOProfile(dialect='CHARMM', fault_tolerant=True, processor=conop.RuleBasedProcessor(conop.GetDefaultLib())) .. note:: @@ -92,7 +92,7 @@ CHARMM: The IOProfile Class -------------------------------------------------------------------------------- -.. class:: IOProfile(dialect='PDB', quack_mode=False, fault_tolerant=False,\ +.. class:: IOProfile(dialect='PDB', fault_tolerant=False,\ join_spread_atom_records=False, no_hetatms=False,\ calpha_only=False, read_conect=False, processor=None) @@ -108,16 +108,6 @@ The IOProfile Class support for chain names with length up to 4 characters (column 72-76) and increase the size of the residue name to 4 residues. - .. attribute:: quack_mode - - :type: bool - - Read/write property. When quack_mode is enabled, the chemical class for - unknown residues is guessed based on its atoms and connectivity. Turn this - on if you are working with non-standard conforming PDB files and are - experiencing problems with the rendering of the backbone trace and/or see - peptidic residues with unknown chemical classes. - .. attribute:: fault_tolerant :type: bool diff --git a/modules/io/doc/structure_formats.rst b/modules/io/doc/structure_formats.rst index 1ed16923ca17cf853b724424775df561a173a73d..2fe0eaf676f9bc5f146225563a398011e0614a71 100644 --- a/modules/io/doc/structure_formats.rst +++ b/modules/io/doc/structure_formats.rst @@ -36,7 +36,7 @@ the .gz file extension. .cif, .cif.gz *Format Name* - mmcif + cif PQR ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/modules/io/pymod/__init__.py b/modules/io/pymod/__init__.py index 91d2593a28eb67030f1191846a1075a4b538ee3c..66a518def1a71f81b638090da38f3a743584e2ae 100644 --- a/modules/io/pymod/__init__.py +++ b/modules/io/pymod/__init__.py @@ -30,11 +30,11 @@ class IOProfiles: else: processor = conop.HeuristicProcessor() self['STRICT'] = IOProfile(dialect='PDB', fault_tolerant=False, - quack_mode=False, processor=processor.Copy()) + processor=processor.Copy()) self['SLOPPY'] = IOProfile(dialect='PDB', fault_tolerant=True, - quack_mode=True, processor=processor.Copy()) + processor=processor.Copy()) self['CHARMM'] = IOProfile(dialect='CHARMM', fault_tolerant=True, - quack_mode=False, processor=processor.Copy()) + processor=processor.Copy()) self['DEFAULT'] = 'STRICT' def __getitem__(self, key): @@ -80,7 +80,7 @@ def _override(val1, val2): return val1 def LoadPDB(filename, restrict_chains="", no_hetatms=None, - fault_tolerant=None, load_multi=False, quack_mode=None, + fault_tolerant=None, load_multi=False, join_spread_atom_records=None, calpha_only=None, profile='DEFAULT', remote=False, remote_repo='pdb', dialect=None, seqres=False, bond_feasibility_check=None, @@ -112,11 +112,6 @@ def LoadPDB(filename, restrict_chains="", no_hetatms=None, multi-PDB files. :type load_multi: :class:`bool` - :param quack_mode: Guess the chemical class for unknown residues based on its - atoms and connectivity. If set, overrides the value of - :attr:`IOProfile.quack_mode`. - :type quack_mode: :class:`bool` - :param join_spread_atom_records: If set, overrides the value of :attr:`IOProfile.join_spread_atom_records`. :type join_spread_atom_records: :class:`bool` @@ -206,7 +201,6 @@ def LoadPDB(filename, restrict_chains="", no_hetatms=None, prof.calpha_only=_override(prof.calpha_only, calpha_only) prof.no_hetatms=_override(prof.no_hetatms, no_hetatms) prof.dialect=_override(prof.dialect, dialect) - prof.quack_mode=_override(prof.quack_mode, quack_mode) prof.read_conect=_override(prof.read_conect, read_conect) if prof.processor: prof.processor.check_bond_feasibility=_override(prof.processor.check_bond_feasibility, @@ -436,16 +430,15 @@ def LoadMMCIF(filename, fault_tolerant=None, calpha_only=None, try: ent = mol.CreateEntity() reader = MMCifReader(filename, ent, prof) - + # NOTE: to speed up things, we could introduce a restrict_chains parameter # similar to the one in LoadPDB. Here, it would have to be a list/set # of chain-name-strings. #if reader.HasNext(): - reader.Parse() + reader.Parse() # branch links are connected in here if prof.processor: prof.processor.Process(ent) - reader.info.ConnectBranchLinks() #else: # raise IOError("File doesn't contain any entities") if seqres and info: diff --git a/modules/io/pymod/export_mmcif_io.cc b/modules/io/pymod/export_mmcif_io.cc index 455dc1ed124bd0a3c9334af88b2a1669548dfd5f..551103b8832d121b58fdb3e1c92cd538b916efcf 100644 --- a/modules/io/pymod/export_mmcif_io.cc +++ b/modules/io/pymod/export_mmcif_io.cc @@ -107,7 +107,6 @@ void export_mmcif_io() class_<MMCifReader, boost::noncopyable>("MMCifReader", init<const String&, EntityHandle&, const IOProfile&>()) .def("Parse", &MMCifReader::Parse) .def("SetRestrictChains", &MMCifReader::SetRestrictChains) - .def("SetReadCanonicalSeqRes", &MMCifReader::SetReadCanonicalSeqRes) .def("GetSeqRes", &MMCifReader::GetSeqRes) .def("GetInfo", make_function(&MMCifReader::GetInfo, return_value_policy<copy_const_reference>())) @@ -116,8 +115,6 @@ void export_mmcif_io() return_value_policy<copy_const_reference>()), &MMCifReader::SetRestrictChains) .add_property("seqres", &MMCifReader::GetSeqRes) - .add_property("read_seqres", &MMCifReader::GetReadSeqRes, - &MMCifReader::SetReadSeqRes) .add_property("info", make_function(&MMCifReader::GetInfo, return_value_policy<copy_const_reference>())) ; @@ -155,6 +152,11 @@ void export_mmcif_io() .def("Write", &WrapStarWriterWrite, (arg("data_name"), arg("filename"))) ; + class_<ChainNameGenerator>("ChainNameGenerator", init<>()) + .def("Get", &ChainNameGenerator::Get) + .def("Reset", &ChainNameGenerator::Reset) + ; + class_<MMCifWriterEntity>("MMCifWriterEntity", no_init) .def("FromPolymer", &MMCifWriterEntity::FromPolymer).staticmethod("FromPolymer") .def("AddHet", &MMCifWriterEntity::AddHet, (arg("rnum"), arg("mon_id"))) @@ -297,37 +299,37 @@ void export_mmcif_io() .def(vector_indexing_suite<std::vector<MMCifInfoTransOpPtrList >, true >()) ; class_<MMCifInfoStructRef, MMCifInfoStructRefPtr>("MMCifInfoStructRef", no_init) - .add_property("id", make_function(&MMCifInfoStructRef::GetID, - return_value_policy<copy_const_reference>())) - .add_property("db_name", make_function(&MMCifInfoStructRef::GetDBName, - return_value_policy<copy_const_reference>())) - .add_property("db_id", make_function(&MMCifInfoStructRef::GetDBID, - return_value_policy<copy_const_reference>())) - .add_property("entity_id", make_function(&MMCifInfoStructRef::GetEntityID, - return_value_policy<copy_const_reference>())) - .add_property("db_access", make_function(&MMCifInfoStructRef::GetDBAccess, - return_value_policy<copy_const_reference>())) - .def("GetAlignedSeq", &MMCifInfoStructRef::GetAlignedSeq, arg("align_id")) - .def("GetAlignedSeqs", &MMCifInfoStructRef::GetAlignedSeqs) - .add_property("aligned_seqs", &MMCifInfoStructRef::GetAlignedSeqs) + .add_property("id", make_function(&MMCifInfoStructRef::GetID, + return_value_policy<copy_const_reference>())) + .add_property("db_name", make_function(&MMCifInfoStructRef::GetDBName, + return_value_policy<copy_const_reference>())) + .add_property("db_id", make_function(&MMCifInfoStructRef::GetDBID, + return_value_policy<copy_const_reference>())) + .add_property("entity_id", make_function(&MMCifInfoStructRef::GetEntityID, + return_value_policy<copy_const_reference>())) + .add_property("db_access", make_function(&MMCifInfoStructRef::GetDBAccess, + return_value_policy<copy_const_reference>())) + .def("GetAlignedSeq", &MMCifInfoStructRef::GetAlignedSeq, arg("align_id")) + .def("GetAlignedSeqs", &MMCifInfoStructRef::GetAlignedSeqs) + .add_property("aligned_seqs", &MMCifInfoStructRef::GetAlignedSeqs) ; class_<MMCifInfoStructRefSeq, MMCifInfoStructRefSeqPtr>("MMCifInfoStructRefSeq", no_init) - .add_property("align_id", make_function(&MMCifInfoStructRefSeq::GetID, - return_value_policy<copy_const_reference>())) - .add_property("chain_name", make_function(&MMCifInfoStructRefSeq::GetChainName, - return_value_policy<copy_const_reference>())) - .add_property("seq_begin", &MMCifInfoStructRefSeq::GetSeqBegin) - .add_property("seq_end", &MMCifInfoStructRefSeq::GetSeqEnd) - .add_property("db_begin", &MMCifInfoStructRefSeq::GetDBBegin) - .add_property("db_end", &MMCifInfoStructRefSeq::GetDBEnd) - .add_property("difs", make_function(&MMCifInfoStructRefSeq::GetDifs, - return_value_policy<copy_const_reference>())) + .add_property("align_id", make_function(&MMCifInfoStructRefSeq::GetID, + return_value_policy<copy_const_reference>())) + .add_property("chain_name", make_function(&MMCifInfoStructRefSeq::GetChainName, + return_value_policy<copy_const_reference>())) + .add_property("seq_begin", &MMCifInfoStructRefSeq::GetSeqBegin) + .add_property("seq_end", &MMCifInfoStructRefSeq::GetSeqEnd) + .add_property("db_begin", &MMCifInfoStructRefSeq::GetDBBegin) + .add_property("db_end", &MMCifInfoStructRefSeq::GetDBEnd) + .add_property("difs", make_function(&MMCifInfoStructRefSeq::GetDifs, + return_value_policy<copy_const_reference>())) ; class_<MMCifInfoStructRefSeqDif, - MMCifInfoStructRefSeqDifPtr>("MMCifInfoStructRefSeqDif", no_init) - .add_property("details", make_function(&MMCifInfoStructRefSeqDif::GetDetails, - return_value_policy<copy_const_reference>())) - .add_property("seq_rnum", &MMCifInfoStructRefSeqDif::GetSeqRNum) + MMCifInfoStructRefSeqDifPtr>("MMCifInfoStructRefSeqDif", no_init) + .add_property("details", make_function(&MMCifInfoStructRefSeqDif::GetDetails, + return_value_policy<copy_const_reference>())) + .add_property("seq_rnum", &MMCifInfoStructRefSeqDif::GetSeqRNum) .add_property("db_rnum", make_function(&MMCifInfoStructRefSeqDif::GetDBRNum, return_value_policy<copy_const_reference>())) ; @@ -377,13 +379,13 @@ void export_mmcif_io() ; class_<MMCifInfoStructRefs>("MMCifInfoStructRefs", init<>()) - .def(vector_indexing_suite<MMCifInfoStructRefs, true>()) + .def(vector_indexing_suite<MMCifInfoStructRefs, true>()) ; class_<MMCifInfoStructRefSeqs>("MMCifInfoStructRefSeqs", init<>()) - .def(vector_indexing_suite<MMCifInfoStructRefSeqs, true>()) + .def(vector_indexing_suite<MMCifInfoStructRefSeqs, true>()) ; class_<MMCifInfoStructRefSeqDifs>("MMCifInfoStructRefSeqDifs", init<>()) - .def(vector_indexing_suite<MMCifInfoStructRefSeqDifs, true>()) + .def(vector_indexing_suite<MMCifInfoStructRefSeqDifs, true>()) ; class_<std::vector<MMCifInfoBioUnit> >("MMCifInfoBioUnitList", init<>()) .def(vector_indexing_suite<std::vector<MMCifInfoBioUnit> >()) @@ -466,22 +468,14 @@ void export_mmcif_io() ; class_<MMCifInfoEntityBranchLink>("MMCifInfoEntityBranchLink", - init<mol::AtomHandle, - mol::AtomHandle, unsigned char>()) - .def("GetAtom1", &MMCifInfoEntityBranchLink::GetAtom1) - .def("GetAtom2", &MMCifInfoEntityBranchLink::GetAtom2) - .def("GetBondOrder", &MMCifInfoEntityBranchLink::GetBondOrder) - .def("ConnectBranchLink", &MMCifInfoEntityBranchLink::ConnectBranchLink) - .def("SetAtom1", &MMCifInfoEntityBranchLink::SetAtom1) - .def("SetAtom2", &MMCifInfoEntityBranchLink::SetAtom2) - .def("SetBondOrder", &MMCifInfoEntityBranchLink::SetBondOrder) - .def(self_ns::str(self)) - .add_property("atom1", &MMCifInfoEntityBranchLink::GetAtom1, - &MMCifInfoEntityBranchLink::SetAtom1) - .add_property("atom2", &MMCifInfoEntityBranchLink::GetAtom2, - &MMCifInfoEntityBranchLink::SetAtom2) - .add_property("bond_order", &MMCifInfoEntityBranchLink::GetBondOrder, - &MMCifInfoEntityBranchLink::SetBondOrder) + init<int, int, const String&, + const String&, + unsigned char>()) + .add_property("rnum1", &MMCifInfoEntityBranchLink::rnum1) + .add_property("rnum2", &MMCifInfoEntityBranchLink::rnum2) + .add_property("aname1", &MMCifInfoEntityBranchLink::aname1) + .add_property("aname2", &MMCifInfoEntityBranchLink::aname2) + .add_property("bond_order", &MMCifInfoEntityBranchLink::bond_order) ; class_<MMCifInfoEntityBranchLinkMap>("MMCifInfoEntityBranchLinkMap", init<>()) @@ -501,7 +495,8 @@ void export_mmcif_io() .add_property("entity_poly_type", &MMCifEntityDesc::entity_poly_type) .add_property("branched_type", &MMCifEntityDesc::branched_type) .add_property("details", &MMCifEntityDesc::details) - .add_property("seqres", &MMCifEntityDesc::seqres) + .add_property("seqres_canonical", &MMCifEntityDesc::seqres_canonical) + .add_property("seqres_pdbx", &MMCifEntityDesc::seqres_pdbx) .add_property("mon_ids", &MMCifEntityDesc::mon_ids) .add_property("hetero_num", &MMCifEntityDesc::hetero_num) .add_property("hetero_ids", &MMCifEntityDesc::hetero_ids) @@ -530,6 +525,10 @@ void export_mmcif_io() return_value_policy<copy_const_reference>())) .def("SetStructDetails", &MMCifInfo::SetStructDetails) .def("GetStructDetails", &MMCifInfo::GetStructDetails) + .def("SetStructRefs", make_function(&MMCifInfo::SetStructRefs, + return_value_policy<copy_const_reference>())) + .def("GetStructRefs", make_function(&MMCifInfo::GetStructRefs, + return_value_policy<copy_const_reference>())) .def("SetObsoleteInfo", &MMCifInfo::SetObsoleteInfo) .def("GetObsoleteInfo", &MMCifInfo::GetObsoleteInfo) .def("AddMMCifPDBChainTr", &MMCifInfo::AddMMCifPDBChainTr) @@ -544,11 +543,8 @@ void export_mmcif_io() arg("minor")=-1)) .def("GetRevisions", &MMCifInfo::GetRevisions) .def("AddEntityBranchLink", &MMCifInfo::AddEntityBranchLink) - .def("GetEntityBranchLinks", &MMCifInfo::GetEntityBranchLinks) .def("GetEntityBranchByChain", &MMCifInfo::GetEntityBranchByChain) - .def("ConnectBranchLinks", &MMCifInfo::ConnectBranchLinks) .def("GetEntityBranchChainNames", &WrapGetNames) - .def("GetEntityBranchChains", &MMCifInfo::GetEntityBranchChains) .def("SetEntityDesc", &MMCifInfo::SetEntityDesc) .def("GetEntityDesc", &MMCifInfo::GetEntityDesc, return_value_policy<copy_const_reference>()) .def("GetEntityIds", &MMCifInfo::GetEntityIds) @@ -569,7 +565,7 @@ void export_mmcif_io() .add_property("struct_details", &MMCifInfo::GetStructDetails, &MMCifInfo::SetStructDetails) .add_property("struct_refs", make_function(&MMCifInfo::GetStructRefs, - return_value_policy<copy_const_reference>())) + return_value_policy<copy_const_reference>())) .add_property("obsolete", &MMCifInfo::GetObsoleteInfo, &MMCifInfo::SetObsoleteInfo) .add_property("revisions", &MMCifInfo::GetRevisions) diff --git a/modules/io/pymod/export_pdb_io.cc b/modules/io/pymod/export_pdb_io.cc index cad44b855f2869f3234ad22bbc3c5a66ede2da8b..7e0926352674e0ce6878f022775de28c07823c81 100644 --- a/modules/io/pymod/export_pdb_io.cc +++ b/modules/io/pymod/export_pdb_io.cc @@ -45,9 +45,8 @@ void remove_profiles() { void export_pdb_io() { class_<IOProfile>("IOProfile", - init<String,bool,bool,bool,bool,bool,bool, + init<String,bool,bool,bool,bool,bool, conop::ProcessorPtr>((arg("dialect")="PDB", - arg("quack_mode")=false, arg("fault_tolerant")=false, arg("join_spread_atom_records")=false, arg("no_hetatms")=false, @@ -57,7 +56,6 @@ void export_pdb_io() .def(init<const IOProfile&>()) .def_readwrite("dialect", &IOProfile::dialect) .def_readwrite("fault_tolerant", &IOProfile::fault_tolerant) - .def_readwrite("quack_mode", &IOProfile::quack_mode) .def_readwrite("no_hetatms", &IOProfile::no_hetatms) .def_readwrite("calpha_only", &IOProfile::calpha_only) .def_readwrite("join_spread_atom_records", &IOProfile::join_spread_atom_records) diff --git a/modules/io/src/mol/chemdict_parser.cc b/modules/io/src/mol/chemdict_parser.cc index cf47edb6fe500a82dda179acef119689ccef074e..2213225d696f832b460799d00cda331f8bd24354 100644 --- a/modules/io/src/mol/chemdict_parser.cc +++ b/modules/io/src/mol/chemdict_parser.cc @@ -101,7 +101,7 @@ void ChemdictParser::OnDataItem(const StarDataItem& item) *i=toupper(*i); } // The type of water is set to "?". let's change it to water... - if (compound_->GetID()=="HOH") { + if ((compound_->GetID()=="HOH") || (compound_->GetID()=="DOD")) { compound_->SetChemClass(mol::ChemClass(mol::ChemClass::WATER)); compound_->SetOneLetterCode('.'); } else { diff --git a/modules/io/src/mol/entity_io_mmcif_handler.cc b/modules/io/src/mol/entity_io_mmcif_handler.cc index fa12d5a5ae9b98afb9c005d7e4f3141ff53acb4e..fe5674788226f40e6dc5a0a789c8e501e5e9c968 100644 --- a/modules/io/src/mol/entity_io_mmcif_handler.cc +++ b/modules/io/src/mol/entity_io_mmcif_handler.cc @@ -55,13 +55,8 @@ void EntityIOMMCIFHandler::Import(mol::EntityHandle& ent, MMCifReader reader(stream,ent, IOProfileRegistry::Instance().GetDefault()); reader.Parse(); - // This is a hack: the reader is not available in - // file_loader.cc/ FileLoader::TryLoadEntity, but this is where the Conop - // processor is called to establish covalent bonds. Since RequiresProcessor() - // always returns true, the mechanism always tries to establish bonds, so we - // do that here. - MMCifInfo info = reader.GetInfo(); - info.ConnectBranchLinks(); + // branch links are already connect in Parse call + // all other connectivity is delegated to processor call } void EntityIOMMCIFHandler::Export(const mol::EntityView& ent, @@ -76,13 +71,8 @@ void EntityIOMMCIFHandler::Import(mol::EntityHandle& ent, MMCifReader reader(filename, ent, IOProfileRegistry::Instance().GetDefault()); reader.Parse(); - // This is a hack: the reader is not available in - // file_loader.cc/ FileLoader::TryLoadEntity, but this is where the Conop - // processor is called to establish covalent bonds. Since RequiresProcessor() - // always returns true, the mechanism always tries to establish bonds, so we - // do that here. - MMCifInfo info = reader.GetInfo(); - info.ConnectBranchLinks(); + // branch links are already connect in Parse call + // all other connectivity is delegated to processor call } bool EntityIOMMCIFHandler::ProvidesImport(const boost::filesystem::path& loc, diff --git a/modules/io/src/mol/io_profile.hh b/modules/io/src/mol/io_profile.hh index d8f078e391fd867e847c71ecd821eafba12ad78f..8f1d045075b4e700739988d457b0eb6680adefc6 100644 --- a/modules/io/src/mol/io_profile.hh +++ b/modules/io/src/mol/io_profile.hh @@ -30,20 +30,19 @@ namespace ost { namespace io { struct DLLEXPORT IOProfile { public: - IOProfile(String d, bool qm, bool ft, bool js, bool nh, + IOProfile(String d, bool ft, bool js, bool nh, bool co, bool rc, conop::ProcessorPtr proc=conop::ProcessorPtr()): - dialect(d), quack_mode(qm), fault_tolerant(ft), join_spread_atom_records(js), + dialect(d), fault_tolerant(ft), join_spread_atom_records(js), no_hetatms(nh), calpha_only(co), read_conect(rc), processor(proc) { } - IOProfile(): dialect("PDB"), quack_mode(false), fault_tolerant(false), + IOProfile(): dialect("PDB"), fault_tolerant(false), join_spread_atom_records(false), no_hetatms(false), calpha_only(false), read_conect(false), processor() { } String dialect; - bool quack_mode; bool fault_tolerant; bool join_spread_atom_records; bool no_hetatms; @@ -52,7 +51,7 @@ public: conop::ProcessorPtr processor; IOProfile Copy() { - return IOProfile(dialect, quack_mode, fault_tolerant, join_spread_atom_records, + return IOProfile(dialect, fault_tolerant, join_spread_atom_records, no_hetatms, calpha_only, read_conect, processor ? processor->Copy() : conop::ProcessorPtr()); } @@ -61,8 +60,7 @@ public: inline std::ostream& operator<<(std::ostream& stream, const IOProfile& p) { - stream << "IOProfile(dialect='" << p.dialect - << "', quack_mode=" << (p.quack_mode ? "True" : "False") << ", " + stream << "IOProfile(dialect='" << p.dialect << ", " << "join_spread_atom_records=" << (p.join_spread_atom_records ? "True" : "False") << ", " << "calpha_only=" << (p.calpha_only ? "True" : "False") << ", " << "fault_tolerant=" << (p.fault_tolerant ? "True" : "False") << ", " diff --git a/modules/io/src/mol/mmcif_info.cc b/modules/io/src/mol/mmcif_info.cc index e723440a4acf6f086a6e89d514ef5066d19d9a02..77ae604029e8a0b71a00a3c0b48fec6972c5bf61 100644 --- a/modules/io/src/mol/mmcif_info.cc +++ b/modules/io/src/mol/mmcif_info.cc @@ -23,14 +23,22 @@ namespace ost { namespace io { -void MMCifInfo::AddMMCifPDBChainTr(String cif, String pdb) +void MMCifInfo::AddMMCifPDBChainTr(String cif, String pdb, bool fault_tolerant) { std::map<String, String>::iterator tr_it = cif_2_pdb_chain_id_.find(cif); if (tr_it != cif_2_pdb_chain_id_.end()) { - throw IOException("mmCIF chain id '"+ cif +"' is already mapped to '"+ - tr_it->second+"'."); + std::stringstream msg; + msg << "mmCIF chain id '" << cif << "' is already mapped to '" << + tr_it->second << "'. Cannot map it to '" << pdb << "'." ; + if(fault_tolerant) { + LOG_WARNING(msg.str()); + return; + } else { + throw IOException(msg.str()); + } + } else { + cif_2_pdb_chain_id_.insert(std::pair<String, String>(cif, pdb)); } - cif_2_pdb_chain_id_.insert(std::pair<String, String>(cif, pdb)); } String MMCifInfo::GetMMCifPDBChainTr(String cif) const @@ -41,14 +49,22 @@ String MMCifInfo::GetMMCifPDBChainTr(String cif) const return tr_it->second; } -void MMCifInfo::AddPDBMMCifChainTr(String pdb, String cif) +void MMCifInfo::AddPDBMMCifChainTr(String pdb, String cif, bool fault_tolerant) { std::map<String, String>::iterator tr_it = pdb_2_cif_chain_id_.find(pdb); if (tr_it != pdb_2_cif_chain_id_.end()) { - throw IOException("PDB chain id '"+ pdb +"' is already mapped to '"+ - tr_it->second+"'."); + std::stringstream msg; + msg << "PDB chain id '" << pdb << "' is already mapped to '" << + tr_it->second << "'. Cannot map it to '" << cif << "'." ; + if(fault_tolerant) { + LOG_WARNING(msg.str()); + return; + } else { + throw IOException(msg.str()); + } + } else { + pdb_2_cif_chain_id_.insert(std::pair<String, String>(pdb, cif)); } - pdb_2_cif_chain_id_.insert(std::pair<String, String>(pdb, cif)); } String MMCifInfo::GetPDBMMCifChainTr(String pdb) const @@ -59,14 +75,23 @@ String MMCifInfo::GetPDBMMCifChainTr(String pdb) const return tr_it->second; } -void MMCifInfo::AddMMCifEntityIdTr(String cif, String ent_id) +void MMCifInfo::AddMMCifEntityIdTr(String cif, String ent_id, bool fault_tolerant) { std::map<String, String>::iterator tr_it = cif_2_entity_id_.find(cif); if (tr_it != cif_2_entity_id_.end()) { - throw IOException("mmCIF chain id '" + cif + "' is already mapped to " - "entity id '" + tr_it->second + "'."); + std::stringstream msg; + msg << "mmCIF chain id '" << cif << "' is already mapped to " << + "entity id '" << tr_it->second << "'. Cannot map it to '" << + ent_id << "'." ; + if(fault_tolerant) { + LOG_WARNING(msg.str()); + return; + } else { + throw IOException(msg.str()); + } + } else { + cif_2_entity_id_.insert(std::pair<String, String>(cif, ent_id)); } - cif_2_entity_id_.insert(std::pair<String, String>(cif, ent_id)); } String MMCifInfo::GetMMCifEntityIdTr(String cif) const @@ -170,18 +195,18 @@ void MMCifInfoBioUnit::Merge(MMCifInfoBioUnit& from) MMCifInfoStructRefSeqPtr MMCifInfoStructRef::AddAlignedSeq(const String& aid, const String& chain_name, - int seq_begin, int seq_end, int db_begin, - int db_end) + int seq_begin, int seq_end, int db_begin, + int db_end) { - std::map<String, MMCifInfoStructRefSeqPtr>::const_iterator i=seqs_.find(aid); - if (i!=seqs_.end()) { - throw IOException("duplicate align_id for struct_ref '"+id_+"'"); - } - MMCifInfoStructRefSeqPtr p(new MMCifInfoStructRefSeq(aid, chain_name, - seq_begin, seq_end, - db_begin, db_end)); - seqs_[aid]=p; - return p; + std::map<String, MMCifInfoStructRefSeqPtr>::const_iterator i=seqs_.find(aid); + if (i!=seqs_.end()) { + throw IOException("duplicate align_id for struct_ref '"+id_+"'"); + } + MMCifInfoStructRefSeqPtr p(new MMCifInfoStructRefSeq(aid, chain_name, + seq_begin, seq_end, + db_begin, db_end)); + seqs_[aid]=p; + return p; } @@ -196,48 +221,21 @@ MMCifInfoStructRef::GetAlignedSeq(const String& aid) const MMCifInfoStructRefSeqDifPtr MMCifInfoStructRefSeq::AddDif(int seq_rnum, const String& db_rnum, const String& details) { - MMCifInfoStructRefSeqDifPtr d(new MMCifInfoStructRefSeqDif(seq_rnum, db_rnum, - details)); - difs_.push_back(d); - return d; + MMCifInfoStructRefSeqDifPtr d(new MMCifInfoStructRefSeqDif(seq_rnum, db_rnum, + details)); + difs_.push_back(d); + return d; } void MMCifInfo::AddEntityBranchLink(String chain_name, - mol::AtomHandle atom1, - mol::AtomHandle atom2, - unsigned char bond_order) -{ - if (!atom1.IsValid() || !atom2.IsValid()) { - /* Would love to give details about the atoms... but atom names are not - available at this point. */ - LOG_WARNING("Invalid branch link found in chain '"+chain_name+"'."); - return; - } - // check if element already exists - MMCifInfoEntityBranchLinkMap::iterator blm_it = - entity_branches_.find(chain_name); - if (blm_it == entity_branches_.end()) { - // `find` points to the end of the map so chain_name was not found - std::pair<MMCifInfoEntityBranchLinkMap::iterator, bool> rit = - entity_branches_.insert(MMCifInfoEntityBranchLinkMap::value_type(chain_name, - std::vector<MMCifInfoEntityBranchLink>())); - // let blm_it point to the new element so we can add to the vector - blm_it = rit.first; - } - // add new branch element - blm_it->second.push_back(MMCifInfoEntityBranchLink(atom1, atom2, bond_order)); -} - -const std::vector<MMCifInfoEntityBranchLink> MMCifInfo::GetEntityBranchLinks() const -{ - std::vector<MMCifInfoEntityBranchLink> all_links; - MMCifInfoEntityBranchLinkMap::const_iterator blm_it; - for (blm_it = entity_branches_.begin(); - blm_it != entity_branches_.end(); ++blm_it) { - std::copy(blm_it->second.begin(), blm_it->second.end(), - std::back_inserter(all_links)); - } - return all_links; + int rnum1, int rnum2, + const String& aname1, + const String& aname2, + unsigned char bond_order) { + // [] operator creates new value if no such element exists for key + entity_branches_[chain_name].push_back(MMCifInfoEntityBranchLink(rnum1, rnum2, + aname1, aname2, + bond_order)); } const std::vector<MMCifInfoEntityBranchLink> MMCifInfo::GetEntityBranchByChain( @@ -263,36 +261,6 @@ const std::vector<String> MMCifInfo::GetEntityBranchChainNames() const return chain_names; } -const mol::ChainHandleList MMCifInfo::GetEntityBranchChains() const -{ - std::vector<mol::ChainHandle> chains; - MMCifInfoEntityBranchLinkMap::const_iterator blm_it; - for (blm_it = entity_branches_.begin(); - blm_it != entity_branches_.end(); ++blm_it) { - chains.push_back(blm_it->second[0].GetAtom1().GetResidue().GetChain()); - } - - return chains; -} - -void MMCifInfo::ConnectBranchLinks() -{ - MMCifInfoEntityBranchLinkMap::iterator blm_it; - for (blm_it = entity_branches_.begin(); - blm_it != entity_branches_.end(); ++blm_it) { - // We assume that one chain only comes from one entity, so we go with one - // editor per chain - std::vector<MMCifInfoEntityBranchLink>::iterator blv_it = - blm_it->second.begin(); - if (blv_it != blm_it->second.end()) { - mol::XCSEditor editor = blv_it->GetAtom1().GetEntity().EditXCS(); - for (; blv_it != blm_it->second.end(); ++blv_it) { - blv_it->ConnectBranchLink(editor); - } - } - } -} - const MMCifEntityDesc& MMCifInfo::GetEntityDesc(const String& entity_id) const { MMCifEntityDescMap::const_iterator it = entity_desc_.find(entity_id); if(it == entity_desc_.end()) { @@ -330,8 +298,9 @@ std::vector<String> MMCifInfo::GetEntityIdsOfType(const String& entity_type) con std::ostream& operator<<(std::ostream& os, const MMCifInfoEntityBranchLink& eb) { - os << "<MMCifInfoEntityBranchLink atom1:" << eb.GetAtom1() << " atom2:" - << eb.GetAtom2() << ">"; + os << "<MMCifInfoEntityBranchLink rnum1:" << eb.rnum1 << + " rnum2: " << eb.rnum2 << " aname1: " << eb.aname1 << + " aname2: " << eb.aname2 << "bond_order: " << eb.bond_order << '>'; return os; } @@ -341,8 +310,7 @@ std::ostream& operator<<(std::ostream& os, os << "<MMCifInfoEntityBranchLinkList"; std::vector<MMCifInfoEntityBranchLink>::const_iterator bl_it; for (bl_it = eb_list.begin(); bl_it != eb_list.end(); ++bl_it) { - os << " <atom1:" << bl_it->GetAtom1() << " atom2:" - << bl_it->GetAtom2() << ">"; + os << *bl_it; } os << ">"; return os; diff --git a/modules/io/src/mol/mmcif_info.hh b/modules/io/src/mol/mmcif_info.hh index 438b906115670a8b97086b6af1d26710f474a450..73d3c25d2b69feafb098ed4f0d1dbd00add0657a 100644 --- a/modules/io/src/mol/mmcif_info.hh +++ b/modules/io/src/mol/mmcif_info.hh @@ -846,47 +846,47 @@ typedef std::vector<MMCifInfoStructRefSeqDifPtr> MMCifInfoStructRefSeqDifs; class DLLEXPORT_OST_IO MMCifInfoStructRef { public: MMCifInfoStructRef(const String& id, const String& ent_id, - const String& db_name, - const String& db_ident, const String& db_access): - id_(id), ent_id_(ent_id), db_name_(db_name), db_ident_(db_ident), - db_access_(db_access) - { } + const String& db_name, + const String& db_ident, const String& db_access): + id_(id), ent_id_(ent_id), db_name_(db_name), db_ident_(db_ident), + db_access_(db_access) + { } const String& GetID() const { return id_; } const String& GetDBName() const { return db_name_; } const String& GetDBID() const { return db_ident_; } const String& GetEntityID() const { return ent_id_; } const String& GetDBAccess() const { return db_access_; } - MMCifInfoStructRefSeqPtr AddAlignedSeq(const String& align_id, - const String& chain_name, int seq_begin, - int seq_end, int db_begin, int db_end); + MMCifInfoStructRefSeqPtr AddAlignedSeq(const String& align_id, + const String& chain_name, int seq_begin, + int seq_end, int db_begin, int db_end); MMCifInfoStructRefSeqPtr GetAlignedSeq(const String& align_id) const; MMCifInfoStructRefSeqs GetAlignedSeqs() const - { - MMCifInfoStructRefSeqs seqs; - seqs.reserve(seqs_.size()); - for (std::map<String, MMCifInfoStructRefSeqPtr>::const_iterator - i=seqs_.begin(), e=seqs_.end(); i!=e; ++i) { - seqs.push_back(i->second); - } - return seqs; - } + { + MMCifInfoStructRefSeqs seqs; + seqs.reserve(seqs_.size()); + for (std::map<String, MMCifInfoStructRefSeqPtr>::const_iterator + i=seqs_.begin(), e=seqs_.end(); i!=e; ++i) { + seqs.push_back(i->second); + } + return seqs; + } private: - String id_; - String ent_id_; - String db_name_; - String db_ident_; - String db_access_; - std::map<String, MMCifInfoStructRefSeqPtr> seqs_; + String id_; + String ent_id_; + String db_name_; + String db_ident_; + String db_access_; + std::map<String, MMCifInfoStructRefSeqPtr> seqs_; }; class DLLEXPORT_OST_IO MMCifInfoStructRefSeq { public: - MMCifInfoStructRefSeq(const String& align_id, const String& chain_name, - int seq_begin, int seq_end, - int db_begin, int db_end): - id_(align_id), chain_name_(chain_name), - seq_begin_(seq_begin), seq_end_(seq_end), db_begin_(db_begin), db_end_(db_end) - { } + MMCifInfoStructRefSeq(const String& align_id, const String& chain_name, + int seq_begin, int seq_end, + int db_begin, int db_end): + id_(align_id), chain_name_(chain_name), + seq_begin_(seq_begin), seq_end_(seq_end), db_begin_(db_begin), db_end_(db_end) + { } const String& GetID() const { return id_; } const String& GetChainName() const { return chain_name_; } @@ -894,68 +894,58 @@ public: int GetSeqEnd() const { return seq_end_; } int GetDBBegin() const { return db_begin_; } int GetDBEnd() const { return db_end_; } - MMCifInfoStructRefSeqDifPtr AddDif(int seq_num, const String& db_rnum, + MMCifInfoStructRefSeqDifPtr AddDif(int seq_num, const String& db_rnum, const String& details); const std::vector<MMCifInfoStructRefSeqDifPtr>& GetDifs() const { return difs_; } private: - String id_; - String chain_name_; - int seq_begin_; - int seq_end_; - int db_begin_; - int db_end_; - std::vector<MMCifInfoStructRefSeqDifPtr> difs_; + String id_; + String chain_name_; + int seq_begin_; + int seq_end_; + int db_begin_; + int db_end_; + std::vector<MMCifInfoStructRefSeqDifPtr> difs_; }; class DLLEXPORT_OST_IO MMCifInfoStructRefSeqDif { public: - MMCifInfoStructRefSeqDif(int seq_rnum, const String& db_rnum, const String& details): - seq_rnum_(seq_rnum), db_rnum_(db_rnum), details_(details) {} - int GetSeqRNum() const { return seq_rnum_;} - const String& GetDBRNum() const { return db_rnum_; } - const String& GetDetails() const { return details_; } + MMCifInfoStructRefSeqDif(int seq_rnum, const String& db_rnum, const String& details): + seq_rnum_(seq_rnum), db_rnum_(db_rnum), details_(details) {} + int GetSeqRNum() const { return seq_rnum_;} + const String& GetDBRNum() const { return db_rnum_; } + const String& GetDetails() const { return details_; } private: - int seq_rnum_; - String db_rnum_; - String details_; + int seq_rnum_; + String db_rnum_; + String details_; }; /// \brief Store information on branched structures (oligosaccharides) /// -class DLLEXPORT_OST_IO MMCifInfoEntityBranchLink { -public: - MMCifInfoEntityBranchLink(mol::AtomHandle atom1, - mol::AtomHandle atom2, - unsigned char bond_order): -atom1_(atom1), atom2_(atom2), bond_order_(bond_order) {} - mol::AtomHandle GetAtom1() const { return atom1_;} - mol::AtomHandle GetAtom2() const { return atom2_; } - unsigned char GetBondOrder() const { return bond_order_; } - void SetAtom1(mol::AtomHandle atom) { atom1_ = atom; } - void SetAtom2(mol::AtomHandle atom) { atom2_ = atom; } - void SetBondOrder(unsigned char bond_order) { bond_order_ = bond_order; } - void ConnectBranchLink(mol::XCSEditor editor) { - editor.Connect(atom1_, atom2_, bond_order_); - } - - bool operator==(const MMCifInfoEntityBranchLink& eb) const { - if (this->atom1_ != eb.atom1_) { - return false; - } - if (this->atom2_ != eb.atom2_) { - return false; - } - return true; +struct DLLEXPORT_OST_IO MMCifInfoEntityBranchLink { + MMCifInfoEntityBranchLink(int rnum1, + int rnum2, + const String& aname1, + const String& aname2, + unsigned char bond_order): rnum1(rnum1), rnum2(rnum2), + aname1(aname1), aname2(aname2), + bond_order(bond_order) { } + + bool operator==(const MMCifInfoEntityBranchLink& rhs) const { + return rnum1 == rhs.rnum1 && rnum2 == rhs.rnum2 && + aname1 == rhs.aname1 && aname2 == rhs.aname2 && + bond_order == rhs.bond_order; } - bool operator!=(const MMCifInfoEntityBranchLink& eb) const { - return !this->operator == (eb); + bool operator!=(const MMCifInfoEntityBranchLink& rhs) const { + return !((*this) == rhs); } -private: - mol::AtomHandle atom1_; - mol::AtomHandle atom2_; - unsigned char bond_order_; + int rnum1; + int rnum2; + String aname1; + String aname2; + unsigned char bond_order; }; typedef std::map<String, std::vector<MMCifInfoEntityBranchLink> > MMCifInfoEntityBranchLinkMap; @@ -967,7 +957,8 @@ typedef struct { String entity_poly_type; ///< value of _entity_poly.type String branched_type; ///< value of _pdbx_entity_branch.type String details; ///< description of this entity - String seqres; ///< chain of monomers + String seqres_canonical; ///< _entity_poly.pdbx_seq_one_letter_code_can + String seqres_pdbx; ///< _entity_poly.pdbx_seq_one_letter_code std::vector<String> mon_ids; ///< list of monomer names from _entity_poly_seq std::vector<int> hetero_num; ///< res num of heterogeneous compounds std::vector<String> hetero_ids;///< names of heterogeneous compounds @@ -1074,7 +1065,8 @@ public: /// /// \param cif chain name as used by the mmCIF file (label_asym_id) /// \param pdb chain name as used in the PDB file (auth_asym_id) - void AddMMCifPDBChainTr(String cif, String pdb); + void AddMMCifPDBChainTr(String cif, String pdb, + bool fault_tolerant=false); /// \brief Get a PDB chain name for a CIF chain name /// @@ -1086,7 +1078,8 @@ public: /// /// \param pdb chain name as used by the PDB file (auth_asym_id) /// \param cif chain name as used in the mmCIF file (label_asym_id) - void AddPDBMMCifChainTr(String pdb, String cif); + void AddPDBMMCifChainTr(String pdb, String cif, + bool fault_tolerant=false); /// \brief Get a CIF chain name for a PDB chain name /// @@ -1098,7 +1091,8 @@ public: /// /// \param cif chain name as used by the mmCIF file (label_asym_id) /// \param ent_id entity ID as used by the mmCIF file (label_entity_id) - void AddMMCifEntityIdTr(String cif, String ent_id); + void AddMMCifEntityIdTr(String cif, String ent_id, + bool fault_tolerant=false); /// \brief Get the entity ID for a CIF chain name /// @@ -1202,32 +1196,21 @@ public: /// \param atom1 first atom of the bond /// \param atom2 second atom of the bond void AddEntityBranchLink(String chain_name, - mol::AtomHandle atom1, - mol::AtomHandle atom2, + int rnum1, int rnum2, + const String& aname1, + const String& aname2, unsigned char bond_order); - /// \brief Get all links for all branched entities - /// - const std::vector<MMCifInfoEntityBranchLink> GetEntityBranchLinks() const; - /// \brief Check if a chain is a branched entity and return it /// /// \param chain_name Name of the chain to check const std::vector<MMCifInfoEntityBranchLink> GetEntityBranchByChain( - const String& chain_name) const; + const String& chain_name) const; /// \brief Get the names of all chains of branched entities. /// const std::vector<String> GetEntityBranchChainNames() const; - /// \brief Get the all chains of branched entities. - /// - const mol::ChainHandleList GetEntityBranchChains() const; - - /// \brief Connect all atoms listed as links for branched entities. - /// - void ConnectBranchLinks(); - const MMCifEntityDesc& GetEntityDesc(const String& entity_id) const; void SetEntityDesc(const String& entity_id, diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc index 27a08f0895251d0cc6ad3e84a286890f59755b5e..fd440812ea485a3174501f438ff9e82ac4d4ed62 100644 --- a/modules/io/src/mol/mmcif_reader.cc +++ b/modules/io/src/mol/mmcif_reader.cc @@ -33,7 +33,7 @@ namespace ost { namespace io { bool is_undef(StringRef value) { - return value.size()==1 && (value[0]=='?' || value[0]=='.'); + return value.size()==1 && (value[0]=='?' || value[0]=='.'); } MMCifReader::MMCifReader(std::istream& stream, mol::EntityHandle& ent_handle, @@ -59,15 +59,11 @@ void MMCifReader::Init() atom_count_ = 0; residue_count_ = 0; auth_chain_id_ = false; - seqres_can_ = false; has_model_ = false; restrict_chains_ = ""; subst_res_id_ = ""; curr_chain_ = mol::ChainHandle(); curr_residue_ = mol::ResidueHandle(); - seqres_ = seq::CreateSequenceList(); - read_seqres_ = true; - warned_rule_based_ = false; info_ = MMCifInfo(); } @@ -80,7 +76,6 @@ void MMCifReader::ClearState() atom_count_ = 0; category_ = DONT_KNOW; warned_name_mismatch_ = false; - seqres_ = seq::CreateSequenceList(); info_ = MMCifInfo(); entity_desc_map_.clear(); authors_map_.clear(); @@ -306,27 +301,33 @@ bool MMCifReader::OnBeginLoop(const StarLoopDesc& header) cat_available = true; } else if (header.GetCategory() == "struct_ref") { category_ = STRUCT_REF; + // mandatory items this->TryStoreIdx(SR_ENTITY_ID, "entity_id", header); this->TryStoreIdx(SR_ID, "id", header); this->TryStoreIdx(SR_DB_NAME, "db_name", header); this->TryStoreIdx(SR_DB_CODE, "db_code", header); + // optional items indices_[SR_DB_ACCESS]=header.GetIndex("pdbx_db_accession"); cat_available = true; } else if (header.GetCategory() == "struct_ref_seq") { - category_ = STRUCT_REF_SEQ; + category_ = STRUCT_REF_SEQ; + // mandatory items this->TryStoreIdx(SRS_ALIGN_ID, "align_id", header); this->TryStoreIdx(SRS_STRUCT_REF_ID, "ref_id", header); this->TryStoreIdx(SRS_ENT_ALIGN_BEG, "seq_align_beg", header); this->TryStoreIdx(SRS_ENT_ALIGN_END, "seq_align_end", header); this->TryStoreIdx(SRS_DB_ALIGN_BEG, "db_align_beg", header); this->TryStoreIdx(SRS_DB_ALIGN_END, "db_align_end", header); + // optional items indices_[SRS_PDBX_STRAND_ID]=header.GetIndex("pdbx_strand_id"); cat_available = true; } else if (header.GetCategory()=="struct_ref_seq_dif") { category_ = STRUCT_REF_SEQ_DIF; + // mandatory items this->TryStoreIdx(SRSD_ALIGN_ID, "align_id", header); - this->TryStoreIdx(SRSD_SEQ_RNUM, "seq_num", header); - this->TryStoreIdx(SRSD_DB_RNUM, "pdbx_seq_db_seq_num", header); + // optional items + indices_[SRSD_SEQ_RNUM]=header.GetIndex("seq_num"); + indices_[SRSD_DB_RNUM]=header.GetIndex("pdbx_seq_db_seq_num"); indices_[SRSD_DETAILS]=header.GetIndex("details"); cat_available = true; } else if (header.GetCategory()=="database_PDB_rev") { @@ -516,7 +517,10 @@ void MMCifReader::ParseAndAddAtom(const std::vector<StringRef>& columns) } if (indices_[OCCUPANCY] != -1) { // unit test - occ = this->TryGetReal(columns[indices_[OCCUPANCY]], "atom_site.occupancy"); + occ = this->GetRealOrDefault(columns[indices_[OCCUPANCY]], + "atom_site.occupancy", + 1.0, + is_undef); } if (indices_[B_ISO_OR_EQUIV] != -1) { if (!is_undef(columns[indices_[B_ISO_OR_EQUIV]])) { @@ -613,7 +617,7 @@ void MMCifReader::ParseAndAddAtom(const std::vector<StringRef>& columns) curr_chain_.SetStringProp("entity_id", ent_id); chain_id_pairs_.push_back(std::pair<mol::ChainHandle,String>(curr_chain_, ent_id)); - info_.AddMMCifEntityIdTr(cif_chain_name, ent_id); + info_.AddMMCifEntityIdTr(cif_chain_name, ent_id, profile_.fault_tolerant); } assert(curr_chain_.IsValid()); } else if (chain_id_pairs_.back().second != // unit test @@ -700,10 +704,10 @@ void MMCifReader::ParseAndAddAtom(const std::vector<StringRef>& columns) } } else { mol::AtomHandle atom=curr_residue_.FindAtom(aname); - if (atom.IsValid() && !profile_.quack_mode) { // unit test + if (atom.IsValid()) { // unit test if (profile_.fault_tolerant) { // unit test LOG_WARNING("duplicate atom '" << aname << "' in residue " - << curr_residue_); + << curr_residue_ << " only first atom added"); return; } throw IOException(this->FormatDiagnostic(STAR_DIAG_ERROR, @@ -737,7 +741,8 @@ MMCifEntityDescMap::iterator MMCifReader::GetEntityDescMapIterator( .entity_poly_type = "", .branched_type = "", .details="", - .seqres="", + .seqres_canonical="", + .seqres_pdbx="", .mon_ids=std::vector<String>(), .hetero_num=std::vector<int>(), .hetero_ids=std::vector<String>()}; @@ -785,93 +790,17 @@ void MMCifReader::ParseEntityPoly(const std::vector<StringRef>& columns) edm_it->second.entity_poly_type = columns[indices_[EP_TYPE]].str(); } - // store seqres - if (edm_it->second.seqres.length() > 0) { - throw IOException(this->FormatDiagnostic(STAR_DIAG_ERROR, - "entity_poly.pdbx_seq_one_letter_code[_can] clash: sequence for entry '" + - columns[indices_[ENTITY_ID]].str() + - "' is already set to '" + - edm_it->second.seqres + "'.", - this->GetCurrentLinenum())); - } - if (read_seqres_) { - StringRef seqres; - if (seqres_can_) { - if (indices_[PDBX_SEQ_ONE_LETTER_CODE_CAN] != -1) { - seqres=columns[indices_[PDBX_SEQ_ONE_LETTER_CODE_CAN]]; - edm_it->second.seqres = seqres.str_no_whitespace(); - } else { - throw IOException(this->FormatDiagnostic(STAR_DIAG_ERROR, - "'entity_poly.pdbx_seq_one_letter_code_can' not available.'", - this->GetCurrentLinenum())); - } - } else if (indices_[PDBX_SEQ_ONE_LETTER_CODE] != -1) { - seqres=columns[indices_[PDBX_SEQ_ONE_LETTER_CODE]]; - - conop::CompoundLibBasePtr comp_lib=conop::Conopology::Instance() - .GetDefaultLib(); - if (!comp_lib) { - if (!warned_rule_based_) { - LOG_WARNING("SEQRES import requires a valid compound library to " - "handle non standard compounds. Their One letter " - "codes will be set to X."); - } - warned_rule_based_=true; - comp_lib = conop::CompoundLibBasePtr(new ost::conop::MinimalCompoundLib); - } - edm_it->second.seqres = this->ConvertSEQRES(seqres.str_no_whitespace(), - comp_lib); - } else { - throw IOException(this->FormatDiagnostic(STAR_DIAG_ERROR, - "'entity_poly.pdbx_seq_one_letter_code' not available.'", - this->GetCurrentLinenum())); - } + // store canonical seqres + if (indices_[PDBX_SEQ_ONE_LETTER_CODE_CAN] != -1) { + StringRef seqres_can=columns[indices_[PDBX_SEQ_ONE_LETTER_CODE_CAN]]; + edm_it->second.seqres_canonical = seqres_can.str_no_whitespace(); } -} - -String MMCifReader::ConvertSEQRES(const String& seqres, - conop::CompoundLibBasePtr comp_lib) -{ - String can_seqres; - for (String::const_iterator i=seqres.begin(), e=seqres.end(); i!=e; ++i) { - if (*i=='(') { - bool found_end_paren=false; - String tlc; - tlc.reserve(3); - while ((++i)!=seqres.end()) { - if (*i==')') { - found_end_paren=true; - break; - } - tlc.push_back(*i); - } - if (!found_end_paren) { - throw IOException(this->FormatDiagnostic(STAR_DIAG_ERROR, - "'entity_poly.pdbx_seq_one_letter_code' contains " - "unmatched '('", this->GetCurrentLinenum())); - } - conop::CompoundPtr compound=comp_lib->FindCompound(tlc, - conop::Compound::PDB); - if (!compound) { - if (tlc!="UNK") { - - LOG_WARNING("unknown residue '" << tlc << "' in SEQRES record. " - "Setting one-letter-code to 'X'"); - } - can_seqres.push_back('X'); - continue; - } - if (compound->GetOneLetterCode()=='?') { - can_seqres.push_back('X'); - } else { - can_seqres.push_back(compound->GetOneLetterCode()); - } - } else { - can_seqres.push_back(*i); + // store non canonical seqres + if (indices_[PDBX_SEQ_ONE_LETTER_CODE] != -1) { + StringRef seqres_pdbx=columns[indices_[PDBX_SEQ_ONE_LETTER_CODE]]; + edm_it->second.seqres_pdbx = seqres_pdbx.str_no_whitespace(); } - } - return can_seqres; } void MMCifReader::ParseCitation(const std::vector<StringRef>& columns) @@ -1710,17 +1639,17 @@ void MMCifReader::AssignSecStructure(mol::EntityHandle ent) void MMCifReader::ParseStructRef(const std::vector<StringRef>& columns) { - String ent_id=columns[indices_[SR_ENTITY_ID]].str(); - String db_name=columns[indices_[SR_DB_NAME]].str(); - String db_code=columns[indices_[SR_DB_CODE]].str(); - String id=columns[indices_[SR_ID]].str(); - String db_access; - if (indices_[SR_DB_ACCESS]!=-1) { - db_access=columns[indices_[SR_DB_ACCESS]].str(); - } - MMCifInfoStructRefPtr sr(new MMCifInfoStructRef(id, ent_id, db_name, - db_code, db_access)); - struct_refs_.push_back(sr); + String ent_id=columns[indices_[SR_ENTITY_ID]].str(); + String db_name=columns[indices_[SR_DB_NAME]].str(); + String db_code=columns[indices_[SR_DB_CODE]].str(); + String id=columns[indices_[SR_ID]].str(); + String db_access; + if (indices_[SR_DB_ACCESS]!=-1) { + db_access=columns[indices_[SR_DB_ACCESS]].str(); + } + MMCifInfoStructRefPtr sr(new MMCifInfoStructRef(id, ent_id, db_name, + db_code, db_access)); + struct_refs_.push_back(sr); } void MMCifReader::ParseStructRefSeq(const std::vector<StringRef>& columns) @@ -1729,43 +1658,43 @@ void MMCifReader::ParseStructRefSeq(const std::vector<StringRef>& columns) String sr_id=columns[indices_[SRS_STRUCT_REF_ID]].str(); String chain_name; if (indices_[SRS_PDBX_STRAND_ID]!=-1) { - chain_name=columns[indices_[SRS_PDBX_STRAND_ID]].str(); + chain_name=columns[indices_[SRS_PDBX_STRAND_ID]].str(); } std::pair<bool,int> dbbeg=this->TryGetInt(columns[indices_[SRS_DB_ALIGN_BEG]], - "_struct_ref_seq.db_align_beg", - profile_.fault_tolerant); + "_struct_ref_seq.db_align_beg", + profile_.fault_tolerant); std::pair<bool,int> dbend=this->TryGetInt(columns[indices_[SRS_DB_ALIGN_END]], - "_struct_ref_seq.db_align_end", - profile_.fault_tolerant); + "_struct_ref_seq.db_align_end", + profile_.fault_tolerant); std::pair<bool,int> entbeg=this->TryGetInt(columns[indices_[SRS_ENT_ALIGN_BEG]], - "_struct_ref_seq.seq_align_beg", - profile_.fault_tolerant); + "_struct_ref_seq.seq_align_beg", + profile_.fault_tolerant); std::pair<bool,int> entend=this->TryGetInt(columns[indices_[SRS_ENT_ALIGN_END]], - "_struct_ref_seq.seq_align_END", - profile_.fault_tolerant); + "_struct_ref_seq.seq_align_END", + profile_.fault_tolerant); if (!(dbbeg.first && dbend.first && entbeg.first && entend.first)) { - return; + return; } bool found=false; for (MMCifInfoStructRefs::iterator i=struct_refs_.begin(), - e=struct_refs_.end(); i!=e; ++i) { - if ((*i)->GetID()==sr_id) { - (*i)->AddAlignedSeq(aln_id, chain_name, entbeg.second, entend.second, - dbbeg.second, dbend.second); - found=true; - break; - } + e=struct_refs_.end(); i!=e; ++i) { + if ((*i)->GetID()==sr_id) { + (*i)->AddAlignedSeq(aln_id, chain_name, entbeg.second, entend.second, + dbbeg.second, dbend.second); + found=true; + break; + } } if (!found) { - if (profile_.fault_tolerant) { - LOG_ERROR("struct_ref_seq.ref_id points to inexistent struct_ref '" - << sr_id << "'"); - return; - } - std::stringstream ss; - ss << "struct_ref_seq.ref_id points to inexistent struct_ref '"; - ss << sr_id << "'"; - throw IOException(ss.str()); + if (profile_.fault_tolerant) { + LOG_ERROR("struct_ref_seq.ref_id points to inexistent struct_ref '" + << sr_id << "'"); + return; + } + std::stringstream ss; + ss << "struct_ref_seq.ref_id points to inexistent struct_ref '"; + ss << sr_id << "'"; + throw IOException(ss.str()); } } @@ -1773,42 +1702,48 @@ void MMCifReader::ParseStructRefSeqDif(const std::vector<StringRef>& columns) { String aln_id=columns[indices_[SRSD_ALIGN_ID]].str(); String db_rnum; - if (!is_undef(columns[indices_[SRSD_DB_RNUM]])) { + if (indices_[SRSD_DB_RNUM] != -1) { db_rnum=columns[indices_[SRSD_DB_RNUM]].str(); + } else { + db_rnum="?"; + LOG_INFO("Setting missing struct_ref_seq_dif.pdbx_seq_db_seq_num to '?"); } - std::pair<bool,int> seq_rnum(true, -1); - if (!is_undef(columns[indices_[SRSD_SEQ_RNUM]])) { - seq_rnum=this->TryGetInt(columns[indices_[SRSD_SEQ_RNUM]], - "_struct_ref_seq_dif.seq_num", - profile_.fault_tolerant); - + + std::pair<bool,int> seq_rnum; + if (indices_[SRSD_SEQ_RNUM] != -1) { + if (!is_undef(columns[indices_[SRSD_SEQ_RNUM]])) { + seq_rnum=this->TryGetInt(columns[indices_[SRSD_SEQ_RNUM]], + "_struct_ref_seq_dif.seq_num", + profile_.fault_tolerant); + } } if (!seq_rnum.first) { + LOG_WARNING("Ignoring struct_ref_seq_dif with missing data item seq_num"); return; } String details; if (indices_[SRSD_DETAILS]!=-1) { - details=columns[indices_[SRSD_DETAILS]].str(); + details=columns[indices_[SRSD_DETAILS]].str(); } bool found=false; for (MMCifInfoStructRefs::iterator i=struct_refs_.begin(), - e=struct_refs_.end(); i!=e; ++i) { - if (MMCifInfoStructRefSeqPtr s=(*i)->GetAlignedSeq(aln_id)) { - s->AddDif(seq_rnum.second, db_rnum, details); - found=true; - break; - } + e=struct_refs_.end(); i!=e; ++i) { + if (MMCifInfoStructRefSeqPtr s=(*i)->GetAlignedSeq(aln_id)) { + s->AddDif(seq_rnum.second, db_rnum, details); + found=true; + break; + } } if (!found) { - if (profile_.fault_tolerant) { - LOG_ERROR("struct_ref_seq_dif.align_id points to inexistent " - "struct_ref_seq '" << aln_id << "'"); - return; - } - std::stringstream ss; - ss << "struct_ref_seq.ref_id points to inexistent struct_ref '"; - ss << aln_id << "'"; - throw IOException(ss.str()); + if (profile_.fault_tolerant) { + LOG_ERROR("struct_ref_seq_dif.align_id points to inexistent " + "struct_ref_seq '" << aln_id << "'"); + return; + } + std::stringstream ss; + ss << "struct_ref_seq.ref_id points to inexistent struct_ref '"; + ss << aln_id << "'"; + throw IOException(ss.str()); } } @@ -1943,15 +1878,17 @@ void MMCifReader::OnEndData() if (edm_it != entity_desc_map_.end()) { editor.SetChainType(css->first, edm_it->second.type); editor.SetChainDescription(css->first, edm_it->second.details); - if (edm_it->second.seqres.length() > 0) { - seqres_.AddSequence(seq::CreateSequence(css->first.GetName(), - edm_it->second.seqres)); - pdb_auth_chain_name = css->first.GetStringProp("pdb_auth_chain_name"); - info_.AddMMCifPDBChainTr(css->first.GetName(), pdb_auth_chain_name); - info_.AddPDBMMCifChainTr(pdb_auth_chain_name, css->first.GetName()); - } else if (edm_it->second.type!=mol::CHAINTYPE_WATER) { - // mark everything that doesn't have SEQRES and isn't of type - // water as ligand + // Add chain mapping for all chains + pdb_auth_chain_name = css->first.GetStringProp("pdb_auth_chain_name"); + info_.AddMMCifPDBChainTr(css->first.GetName(), pdb_auth_chain_name, + profile_.fault_tolerant); + + if (edm_it->second.entity_type=="polymer") { + // PDB -> mmCIF chain mapping only for polymers + // This is not a 1:1 mapping because of ligands + info_.AddPDBMMCifChainTr(pdb_auth_chain_name, css->first.GetName(), + profile_.fault_tolerant); + } else if (edm_it->second.entity_type=="non-polymer") { mol::ChainHandle chain=css->first; mol::ResidueHandleList residues=chain.GetResidueList(); for (mol::ResidueHandleList::iterator @@ -1961,7 +1898,8 @@ void MMCifReader::OnEndData() } } else { LOG_WARNING("No entity description found for atom_site.label_entity_id '" - << css->second << "'"); + << css->second << "'. SEQRES, chain mapping and ligand " + << " annotation will be missing."); } // find blm_it = entity_branch_link_map_.find(css->second); @@ -1969,14 +1907,23 @@ void MMCifReader::OnEndData() if (blm_it != entity_branch_link_map_.end()) { for (bl_it = blm_it->second.begin(); bl_it != blm_it->second.end(); ++bl_it) { + info_.AddEntityBranchLink(css->second, + bl_it->res_num_1, bl_it->res_num_2, + bl_it->atm_nm_1, bl_it->atm_nm_2, + bl_it->bond_order); + + // and directly connect if respective atoms are available... mol::ResidueHandle res1 = css->first.FindResidue(to_res_num( bl_it->res_num_1, ' ')); mol::ResidueHandle res2 = css->first.FindResidue(to_res_num( bl_it->res_num_2, ' ')); - info_.AddEntityBranchLink(css->first.GetName(), - res1.FindAtom(bl_it->atm_nm_1), - res2.FindAtom(bl_it->atm_nm_2), - bl_it->bond_order); + if(res1.IsValid() && res2.IsValid()) { + mol::AtomHandle a1 = res1.FindAtom(bl_it->atm_nm_1); + mol::AtomHandle a2 = res2.FindAtom(bl_it->atm_nm_2); + if(a1.IsValid() && a2.IsValid()) { + editor.Connect(a1, a2, bl_it->bond_order); + } + } } } } @@ -2067,19 +2014,19 @@ void MMCifReader::OnEndData() } // conclude EntityDesc (add entity_poly_seq if present) and add to MMCifInfo - for(auto entity_it: entity_desc_map_) { + for(auto &entity_it: entity_desc_map_) { if(entity_poly_seq_map_.find(entity_it.first) != entity_poly_seq_map_.end()) { int max_num = 1; - for(auto seqres_it: entity_poly_seq_map_[entity_it.first]) { + for(auto &seqres_it: entity_poly_seq_map_[entity_it.first]) { max_num = std::max(max_num, seqres_it.first); } entity_it.second.mon_ids.assign(max_num, "?"); - for(auto seqres_it: entity_poly_seq_map_[entity_it.first]) { + for(auto &seqres_it: entity_poly_seq_map_[entity_it.first]) { entity_it.second.mon_ids[seqres_it.first-1] = seqres_it.second; } } if(entity_poly_seq_h_map_.find(entity_it.first) != entity_poly_seq_h_map_.end()) { - for(auto hetero_it: entity_poly_seq_h_map_[entity_it.first]) { + for(auto &hetero_it: entity_poly_seq_h_map_[entity_it.first]) { entity_it.second.hetero_num.push_back(hetero_it.first); entity_it.second.hetero_ids.push_back(hetero_it.second); } @@ -2155,4 +2102,68 @@ String OSTBondOrderToMMCifValueOrder(const unsigned char bond_order) return String(""); } +seq::SequenceList MMCifReader::GetSeqRes() const { + std::map<String, String> entity_seqres_map; // Map entity_id -> seqres + seq::SequenceList seqres_list = seq::CreateSequenceList(); + + // We need a compound lib for the conversion + conop::CompoundLibBasePtr comp_lib=conop::Conopology::Instance() + .GetDefaultLib(); + if (!comp_lib) { + LOG_WARNING("SEQRES requires a valid compound library to " + "handle non standard compounds. Their One letter " + "codes will be set to X."); + comp_lib = conop::CompoundLibBasePtr(new ost::conop::MinimalCompoundLib); + } + + // Generate the SEQRES for every entity + for(auto const &entity_it: entity_desc_map_) { + if (entity_it.second.entity_type == "polymer") { + entity_seqres_map[entity_it.first] = ""; + auto mon_ids = entity_it.second.mon_ids; +// if (mon_ids.size() == 0) { +// // We hit this if there was an _entity_poly category but no _entity_poly_seq +// LOG_WARNING("No SEQRES found for entity '" +// << entity_it.first << "'."); +// } + entity_seqres_map[entity_it.first].reserve(mon_ids.size()); + for (auto const &mon_id: mon_ids) { + conop::CompoundPtr compound=comp_lib->FindCompound(mon_id, conop::Compound::PDB); + if (!compound) { + if (mon_id != "UNK") { + LOG_WARNING("unknown residue '" << mon_id << "' in SEQRES record. " + "Setting one-letter-code to 'X'"); + } + entity_seqres_map[entity_it.first].push_back('X'); + continue; + } + if (compound->GetOneLetterCode()=='?') { + entity_seqres_map[entity_it.first].push_back('X'); + } else { + entity_seqres_map[entity_it.first].push_back(compound->GetOneLetterCode()); + } + } + } + } + + // Assign + for (auto const &css: chain_id_pairs_) { + auto entity_seqres_map_it = entity_seqres_map.find(css.second); + if (entity_seqres_map_it != entity_seqres_map.end()) { + if (entity_seqres_map_it->second == "") { + // We hit this if there was an _entity_poly category but no _entity_poly_seq + LOG_WARNING("No SEQRES found for chain '" + << css.first << "'. Most likely the entity_poly_seq " + << "category was missing from the input file."); + } else { + seqres_list.AddSequence(seq::CreateSequence(css.first.GetName(), + entity_seqres_map_it->second)); + } + } + // else: either non polymer chain, or no entity_poly was available (this + // triggered a warning before) + } + return seqres_list; +} + }} diff --git a/modules/io/src/mol/mmcif_reader.hh b/modules/io/src/mol/mmcif_reader.hh index 28798a49f371232e304d42f62f5195d6431c62ea..23cfc2f4bc50c66bc4312680e1fbddeb6d77e879 100644 --- a/modules/io/src/mol/mmcif_reader.hh +++ b/modules/io/src/mol/mmcif_reader.hh @@ -89,16 +89,6 @@ public: /// \param restrict_chains chain name void SetRestrictChains(const String& restrict_chains); - /// \brief Toggle reading of canonical sequence residues - /// (entity_poly.pdbx_seq_one_letter_code_can instead of - /// entity_poly.pdbx_seq_one_letter_code). This flag is exclusive. - /// - /// \param flag True for reading canonical sequences. - void SetReadCanonicalSeqRes(bool flag) - { - seqres_can_ = flag; - } - const String& GetRestrictChains() const { return restrict_chains_; @@ -141,25 +131,7 @@ public: /// \brief Return sequences /// /// \return List of sequences - seq::SequenceList GetSeqRes() const { - return seqres_; - } - - /// \brief Toggle reading of SEQRES - /// - /// \param flag True enables, False disables reading SEQRES - void SetReadSeqRes(bool flag) - { - read_seqres_ = flag; - } - - /// \brief Check if reading of SEQRES is enabled - /// - /// \return True if reading of SEQRES is enabled - bool GetReadSeqRes() const - { - return read_seqres_; - } + seq::SequenceList GetSeqRes() const; /// \brief Get additional information of the mmCIF file. /// @@ -231,16 +203,8 @@ protected: /// \param columns data row void ParseCitation(const std::vector<StringRef>& columns); - const MMCifInfoStructRefs& GetStructRefs() const { return struct_refs_; } - /// \brief convert the seqres data item to canonical form. - /// - /// The seqres sequence lists non-standard residues in parenthesis. For - /// proper handling of our sequence classes, these need to be converted to - /// one-letter-codes. Ideally, we would use the canonical SEQRES. This is - /// not possible, however, since the PDB assigns multiple one letter codes - /// to some of the residues. To be consistent, we have to do the conversion - /// on our own. - String ConvertSEQRES(const String& seqres, conop::CompoundLibBasePtr compound_lib); + const MMCifInfoStructRefs& GetStructRefs() const { return struct_refs_; } + /// \brief Fetch mmCIF citation_author information /// /// \param columns data row @@ -459,13 +423,13 @@ private: // \enum items of the struct_ref category typedef enum { - SR_ENTITY_ID, - SR_ID, - SR_DB_CODE, - SR_DB_NAME, - SR_DB_ACCESS - } StructRefItems; - + SR_ENTITY_ID, + SR_ID, + SR_DB_CODE, + SR_DB_NAME, + SR_DB_ACCESS + } StructRefItems; + /// \enum items of the struct_ref_seq category typedef enum { SRS_ALIGN_ID, @@ -717,7 +681,6 @@ private: mol::EntityHandle& ent_handle_; String restrict_chains_; bool auth_chain_id_; ///< use chain IDs given by authors rather than pdb - bool seqres_can_; ///< read canonical 1-letter residues? mol::ChainHandle curr_chain_; mol::ResidueHandle curr_residue_; int chain_count_; @@ -731,8 +694,6 @@ private: std::vector<std::pair<mol::ChainHandle, String> > chain_id_pairs_; ///< chain and label_entity_id MMCifEntityDescMap entity_desc_map_; ///< stores entity items - seq::SequenceList seqres_; - bool read_seqres_; MMCifInfo info_; ///< info container MMCifCitationAuthorMap authors_map_; MMCifBioUAssemblyVector bu_assemblies_; diff --git a/modules/io/src/mol/mmcif_str.cc b/modules/io/src/mol/mmcif_str.cc index 6fde265e405357cd8f6d310a34785a20247ec02a..604af0d2d61f67c5af4bed559d6a31c9b595253a 100644 --- a/modules/io/src/mol/mmcif_str.cc +++ b/modules/io/src/mol/mmcif_str.cc @@ -50,7 +50,6 @@ MMCifStringToEntity(const String& mmcif, const IOProfile& profile, bool process) std::stringstream stream(mmcif); mol::EntityHandle ent = mol::CreateEntity(); MMCifReader reader(stream, ent, profile); - reader.SetReadSeqRes(true); reader.Parse(); if(profile.processor && process) { profile.processor->Process(ent); diff --git a/modules/io/src/mol/mmcif_writer.cc b/modules/io/src/mol/mmcif_writer.cc index 495e79a8c7d554f39025ffb705fc61bd2f77f6dc..6ea364aa868975fbb5cee1a8956809de576726d6 100644 --- a/modules/io/src/mol/mmcif_writer.cc +++ b/modules/io/src/mol/mmcif_writer.cc @@ -24,52 +24,6 @@ namespace { - // generates as many chain names as you want (potentially multiple characters) - struct ChainNameGenerator{ - ChainNameGenerator() { - chain_names = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; - n_chain_names = chain_names.size(); - indices.push_back(-1); - } - - String Get() { - int idx = indices.size() - 1; - indices[idx] += 1; - bool more_digits = false; - while(idx >= 0) { - if(indices[idx] >= n_chain_names) { - indices[idx] = 0; - if(idx>0) { - indices[idx-1] += 1; - --idx; - } else { - more_digits = true; - break; - } - } else { - break; - } - } - if(more_digits) { - indices.insert(indices.begin(), 0); - } - String ch_name(indices.size(), 'X'); - for(uint i = 0; i < indices.size(); ++i) { - ch_name[i] = chain_names[indices[i]]; - } - return ch_name; - } - - void Reset() { - indices.clear(); - indices.push_back(-1); - } - - String chain_names; - int n_chain_names; - std::vector<int> indices; - }; - void CheckValidEntityPolyType(const String& entity_poly_type) { std::unordered_set<std::string> s = {"cyclic-pseudo-peptide", "other", @@ -742,6 +696,7 @@ namespace { ost::io::StarWriterLoopDesc desc("_chem_comp"); desc.Add("id"); desc.Add("type"); + desc.Add("name"); ost::io::StarWriterLoopPtr sl(new ost::io::StarWriterLoop(desc)); return sl; } @@ -878,9 +833,10 @@ namespace { } } + bool all_hetatm = entity_info.type != "polymer"; for(auto at: at_list) { // group_PDB - if(at.IsHetAtom()) { + if(at.IsHetAtom() || all_hetatm) { at_data[0] = ost::io::StarWriterValue::FromString("HETATM"); } else { at_data[0] = ost::io::StarWriterValue::FromString("ATOM"); @@ -1023,7 +979,7 @@ namespace { unique_compounds.insert(het_it.second.begin(), het_it.second.end()); } } - std::vector<ost::io::StarWriterValue> comp_data(2); + std::vector<ost::io::StarWriterValue> comp_data(3); for(auto mon_id: unique_compounds) { comp_data[0] = ost::io::StarWriterValue::FromString(mon_id); ost::conop::CompoundPtr comp = compound_lib->FindCompound(mon_id, @@ -1031,9 +987,11 @@ namespace { if(comp) { String type = ChemClassToChemCompType(comp->GetChemClass()); comp_data[1] = ost::io::StarWriterValue::FromString(type); + comp_data[2] = ost::io::StarWriterValue::FromString(comp->GetName()); } else { String type = ChemClassToChemCompType(ost::mol::ChemClass::UNKNOWN); comp_data[1] = ost::io::StarWriterValue::FromString(type); + comp_data[2] = ost::io::StarWriterValue::FromString(""); } chem_comp_ptr->AddData(comp_data); } @@ -1065,7 +1023,7 @@ namespace { "is not mmcif_conform"); } - ChainNameGenerator chain_name_gen; + ost::io::ChainNameGenerator chain_name_gen; std::set<String> unique_compounds; for(auto res_list: res_lists) { @@ -1182,8 +1140,25 @@ namespace { String poly_type = poly_types[i]; if(poly_chains[i]->size() <= 2) { // must have length of at least 3 to be polymer + // feed them as separate non-polymers type = "non-polymer"; poly_type = ""; + String branch_type = ""; + for(auto r: *poly_chains[i]) { + T tmp; + tmp.push_back(r); + String chain_name = chain_name_gen.Get(); + int entity_id = SetupEntity(chain_name, + type, + poly_type, + branch_type, + tmp, + false, + entity_info); + Feed_atom_site(atom_site, chain_name, entity_id+1, entity_info[entity_id], + tmp); + } + continue; } String branch_type = ""; String chain_name = chain_name_gen.Get(); @@ -1447,6 +1422,45 @@ namespace { namespace ost { namespace io { +ChainNameGenerator::ChainNameGenerator() { + chain_names = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; + n_chain_names = chain_names.size(); + indices.push_back(-1); +} + +String ChainNameGenerator::Get() { + int idx = indices.size() - 1; + indices[idx] += 1; + bool more_digits = false; + while(idx >= 0) { + if(indices[idx] >= n_chain_names) { + indices[idx] = 0; + if(idx>0) { + indices[idx-1] += 1; + --idx; + } else { + more_digits = true; + break; + } + } else { + break; + } + } + if(more_digits) { + indices.insert(indices.begin(), 0); + } + String ch_name(indices.size(), 'X'); + for(uint i = 0; i < indices.size(); ++i) { + ch_name[i] = chain_names[indices[i]]; + } + return ch_name; +} + +void ChainNameGenerator::Reset() { + indices.clear(); + indices.push_back(-1); +} + MMCifWriterEntity MMCifWriterEntity::FromPolymer(const String& entity_poly_type, const std::vector<String>& mon_ids, conop::CompoundLibPtr compound_lib) { diff --git a/modules/io/src/mol/mmcif_writer.hh b/modules/io/src/mol/mmcif_writer.hh index edfd50b7f65c51e14988278ea93ed82dcc312031..3c150672dcca8fd68161bc6ec0733fa43474170c 100644 --- a/modules/io/src/mol/mmcif_writer.hh +++ b/modules/io/src/mol/mmcif_writer.hh @@ -30,6 +30,18 @@ namespace ost { namespace io { +// generates as many chain names as you want (potentially multiple characters) +struct ChainNameGenerator{ + ChainNameGenerator(); + + String Get(); + + void Reset(); + + String chain_names; + int n_chain_names; + std::vector<int> indices; +}; struct MMCifWriterEntity { diff --git a/modules/io/src/mol/pdb_reader.cc b/modules/io/src/mol/pdb_reader.cc index 78b6bec4d63e7917647ea2d09027343e3c05e545..af1e5f729fe0fdf0204c6e9e562b69917e64c6b7 100644 --- a/modules/io/src/mol/pdb_reader.cc +++ b/modules/io/src/mol/pdb_reader.cc @@ -844,26 +844,24 @@ void PDBReader::ParseAndAddAtom(const StringRef& line, int line_num, << "residue with number " << res_num << " has more than one name."; throw IOException(ss.str()); } - if(!profile_.quack_mode) { - if (!warned_name_mismatch_) { - if (alt_loc==' ') { - LOG_WARNING("Residue with number " << res_num << " has more than one name. " - "Ignoring atoms for everything but the first"); - } else { - LOG_WARNING("Residue with number " << res_num - << " contains a microheterogeneity. Everything but atoms for " - << "the residue '" << curr_residue_.GetName() - << "' will be ignored"); - } + if (!warned_name_mismatch_) { + if (alt_loc==' ') { + LOG_WARNING("Residue with number " << res_num << " has more than one name. " + "Ignoring atoms for everything but the first"); + } else { + LOG_WARNING("Residue with number " << res_num + << " contains a microheterogeneity. Everything but atoms for " + << "the residue '" << curr_residue_.GetName() + << "' will be ignored"); } - warned_name_mismatch_=true; - return; } + warned_name_mismatch_=true; + return; } Real b=temp.first ? temp.second : 0.0; Real o=occ.first ? occ.second : 1.0; - if (!profile_.quack_mode && alt_loc!=' ') { + if (alt_loc!=' ') { // Check if there is already a atom with the same name. mol::AtomHandle me=curr_residue_.FindAtom(aname); if (me.IsValid()) { @@ -871,7 +869,7 @@ void PDBReader::ParseAndAddAtom(const StringRef& line, int line_num, editor.AddAltAtomPos(String(1, alt_loc), me, apos, o, b); } catch (Error&) { LOG_INFO("Ignoring atom alt location since there is already an atom " - "with name " << aname << ", but without an alt loc"); + "with name " << aname << ", but without an alt loc"); return; } return; @@ -882,10 +880,10 @@ void PDBReader::ParseAndAddAtom(const StringRef& line, int line_num, } } else { mol::AtomHandle atom=curr_residue_.FindAtom(aname); - if (atom.IsValid() && !profile_.quack_mode) { + if (atom.IsValid()) { if (profile_.fault_tolerant) { LOG_WARNING("duplicate atom '" << aname << "' in residue " - << curr_residue_); + << curr_residue_ << " only first atom added"); return; } throw IOException("duplicate atom '"+aname+"' in residue "+ diff --git a/modules/io/src/mol/star_parser.cc b/modules/io/src/mol/star_parser.cc index c16bc24831c4b1ab5128e7606544f0100a1b470b..9c240a179312cdf0610f066018156268775b5770 100644 --- a/modules/io/src/mol/star_parser.cc +++ b/modules/io/src/mol/star_parser.cc @@ -98,6 +98,18 @@ Real StarParser::TryGetReal(const StringRef& data, const String& name) const return value.second; } +Real StarParser::GetRealOrDefault(const StringRef& data, + const String& name, + Real alt, + bool (*is_default)(StringRef)) const +{ + if(is_default(data)) { + return alt; + } + + return TryGetReal(data, name); +} + float StarParser::TryGetFloat(const StringRef& data, const String& name) const { std::pair<bool, float> value = data.to_float(); diff --git a/modules/io/src/mol/star_parser.hh b/modules/io/src/mol/star_parser.hh index bc6a3947a6694ec83e8e3fd699d30223cc87359f..ba00f43980d4aa6346b74119ceef2dd4b3b1cc73 100644 --- a/modules/io/src/mol/star_parser.hh +++ b/modules/io/src/mol/star_parser.hh @@ -160,6 +160,19 @@ public: /// \return converted value Real TryGetReal(const StringRef& data, const String& name) const; + /// \brief try to convert a value to Real, on failure return default value. + /// + /// \param data value to be converted + /// \param name to be included in the message + /// \param alt value + /// \param is_default a function to check if data is a default value. + /// + /// \return converted or alt value + Real GetRealOrDefault(const StringRef& data, + const String& name, + Real alt, + bool (*is_default)(StringRef)) const; + /// \brief try to convert a value to float, on failure raise an exception. /// /// \param data value to be converted diff --git a/modules/io/tests/CMakeLists.txt b/modules/io/tests/CMakeLists.txt index e19fd631ec247f9ecd8fcf0ef5ff7685572281c0..3fb17f6d80b6fd1c041e233714bb81681209e1b7 100644 --- a/modules/io/tests/CMakeLists.txt +++ b/modules/io/tests/CMakeLists.txt @@ -15,6 +15,7 @@ set(OST_IO_UNIT_TESTS tests.cc test_star_parser.cc test_mmcif_reader.cc + test_mmcif_writer.cc test_mmcif_info.cc test_io_img.cc test_exceptions.cc diff --git a/modules/io/tests/test_io_mmcif.py b/modules/io/tests/test_io_mmcif.py index 37e9ac6b03cd7bf034f947504473fca74fbbe66f..c7d89c92b320d59dbab4743004aee02339bf352c 100644 --- a/modules/io/tests/test_io_mmcif.py +++ b/modules/io/tests/test_io_mmcif.py @@ -268,52 +268,63 @@ class TestMMCifInfo(unittest.TestCase): def test_mmcifinfo_entitybranch(self): # test MMCifInfoEntityBranchLink - eh = mol.CreateEntity() - editor = eh.EditXCS(); - ch = editor.InsertChain("A"); - res1 = editor.AppendResidue(ch, "BMA"); - res2 = editor.AppendResidue(ch, "MAN"); - atom1 = editor.InsertAtom(res2, "C1", geom.Vec3()); - atom2 = editor.InsertAtom(res1, "O3", geom.Vec3()); - branch = io.MMCifInfoEntityBranchLink(atom1, atom2, 1) - self.assertEqual(branch.atom1.qualified_name, "A.MAN2.C1") - self.assertEqual(branch.bond_order, 1) - - branch.ConnectBranchLink(editor) - self.assertEqual(atom2.GetBondPartners()[0].qualified_name, "A.MAN2.C1") - - # test entity_branches_ - ch = editor.InsertChain("B"); - res1 = editor.AppendResidue(ch, "NAG"); - res2 = editor.AppendResidue(ch, "NAG"); - atom3 = editor.InsertAtom(res2, "C1", geom.Vec3()); - atom4 = editor.InsertAtom(res1, "O4", geom.Vec3()); + info = io.MMCifInfo() - info.AddEntityBranchLink("A", atom1, atom2, 1) - info.AddEntityBranchLink(ch.name, atom3, atom4, 1) - - blinks = info.GetEntityBranchLinks() - self.assertEqual(blinks[0].GetAtom1().qualified_name, "A.MAN2.C1") - self.assertEqual(blinks[0].atom2.qualified_name, "A.BMA1.O3") - self.assertEqual(blinks[0].GetBondOrder(), 1) - self.assertEqual(blinks[1].atom1.qualified_name, "B.NAG2.C1") - self.assertEqual(blinks[1].GetAtom2().qualified_name, "B.NAG1.O4") - self.assertEqual(blinks[1].GetBondOrder(), 1) - - info.ConnectBranchLinks() - self.assertEqual(atom4.GetBondPartners()[0].qualified_name, "B.NAG2.C1") - - chain_names = info.GetEntityBranchChainNames() - self.assertEqual(chain_names, ['A', 'B']) - chains = info.GetEntityBranchChains() - self.assertEqual(chains[0].name, 'A') - self.assertEqual(chains[1].name, 'B') - - blinks = info.GetEntityBranchByChain('B') - self.assertEqual(len(blinks), 1) - self.assertEqual(blinks[0].atom1.qualified_name, "B.NAG2.C1") - blinks = info.GetEntityBranchByChain('C') - self.assertEqual(len(blinks), 0) + info.AddEntityBranchLink("A", 42, 43, "O3", "C4", 2) + info.AddEntityBranchLink("B", 142, 143, "XXO3", "XXC4", 3) + info.AddEntityBranchLink("B", 1142, 1143, "XXXXO3", "XXXXC4", 5) + + self.assertEqual(len(info.GetEntityBranchChainNames()), 2) + self.assertEqual(len(info.GetEntityBranchByChain("A")), 1) + self.assertEqual(len(info.GetEntityBranchByChain("B")), 2) + self.assertEqual(len(info.GetEntityBranchByChain("X")), 0) + + self.assertEqual(info.GetEntityBranchByChain("A")[0].rnum1, 42) + self.assertEqual(info.GetEntityBranchByChain("A")[0].rnum2, 43) + self.assertEqual(info.GetEntityBranchByChain("A")[0].aname1, "O3") + self.assertEqual(info.GetEntityBranchByChain("A")[0].aname2, "C4") + self.assertEqual(info.GetEntityBranchByChain("A")[0].bond_order, 2) + + self.assertEqual(info.GetEntityBranchByChain("B")[0].rnum1, 142); + self.assertEqual(info.GetEntityBranchByChain("B")[0].rnum2, 143); + self.assertEqual(info.GetEntityBranchByChain("B")[0].aname1, "XXO3"); + self.assertEqual(info.GetEntityBranchByChain("B")[0].aname2, "XXC4"); + self.assertEqual(info.GetEntityBranchByChain("B")[0].bond_order, 3); + + self.assertEqual(info.GetEntityBranchByChain("B")[1].rnum1, 1142) + self.assertEqual(info.GetEntityBranchByChain("B")[1].rnum2, 1143) + self.assertEqual(info.GetEntityBranchByChain("B")[1].aname1, "XXXXO3") + self.assertEqual(info.GetEntityBranchByChain("B")[1].aname2, "XXXXC4") + self.assertEqual(info.GetEntityBranchByChain("B")[1].bond_order, 5) + + def test_mmcif_connect_branch_links(self): + + p = os.path.join("testfiles", "mmcif", "154L.cif") + ent = mol.CreateEntity() + reader = io.MMCifReader(p, ent, io.profiles['STRICT']) + reader.Parse() + + # there are two branch links specified and they should be connected + # in reader.Parse() + bonds = ent.bonds + self.assertEqual(len(bonds), 2) + + # first branch link manually parsed from cif file + r1 = ent.FindResidue("B", mol.ResNum(2)) + a1 = r1.FindAtom("C1") + r2 = ent.FindResidue("B", mol.ResNum(1)) + a2 = r2.FindAtom("O4") + + self.assertTrue(mol.BondExists(a1, a2)) + + # second branch link manually parsed from cif file + r1 = ent.FindResidue("B", mol.ResNum(3)) + a1 = r1.FindAtom("C1") + r2 = ent.FindResidue("B", mol.ResNum(2)) + a2 = r2.FindAtom("O4") + + self.assertTrue(mol.BondExists(a1, a2)) + def test_mmcif_fault_tolerant_citation(self): diff --git a/modules/io/tests/test_io_pdb.cc b/modules/io/tests/test_io_pdb.cc index ce507a6fed70668fe2eeaa1de486264bb1ff9aa8..3ebffd12c7662efa2d4f9da2c7f0f31aef33233a 100644 --- a/modules/io/tests/test_io_pdb.cc +++ b/modules/io/tests/test_io_pdb.cc @@ -975,7 +975,7 @@ BOOST_AUTO_TEST_CASE(charmm_rname) { { PDBWriter writer(String("testfiles/pdb/charmm_rname-out.pdb"), - IOProfile("CHARMM", false, false, false, false, false, false)); + IOProfile("CHARMM", false, false, false, false, false)); mol::EntityHandle ent=mol::CreateEntity(); mol::XCSEditor edi=ent.EditXCS(); @@ -994,7 +994,7 @@ BOOST_AUTO_TEST_CASE(charmm_longcname) { { PDBWriter writer(String("testfiles/pdb/charmm_longcname-out.pdb"), - IOProfile("CHARMM", false, false, false, false, false, false)); + IOProfile("CHARMM", false, false, false, false, false)); mol::EntityHandle ent=mol::CreateEntity(); mol::XCSEditor edi=ent.EditXCS(); @@ -1013,7 +1013,7 @@ BOOST_AUTO_TEST_CASE(write_charmm_ter) { { PDBWriter writer(String("testfiles/pdb/charmm_ter-out.pdb"), - IOProfile("CHARMM", false, false, false, false, false, false)); + IOProfile("CHARMM", false, false, false, false, false)); mol::EntityHandle ent=mol::CreateEntity(); mol::XCSEditor edi=ent.EditXCS(); diff --git a/modules/io/tests/test_io_pdb.py b/modules/io/tests/test_io_pdb.py index 7a34502ff592ae13544d7d4e32b803c8df15f51d..33ee8afc1ba4016969a25676b11cc2abb4710bba 100644 --- a/modules/io/tests/test_io_pdb.py +++ b/modules/io/tests/test_io_pdb.py @@ -14,12 +14,12 @@ class TestPDB(unittest.TestCase): def test_properly_assigns_profile_properties(self): io.profiles['TEST'] = io.IOProfile() - io.profiles['TEST'].quack_mode = False - self.assertFalse(io.profiles['TEST'].quack_mode) - self.assertFalse(io.profiles['TEST'].Copy().quack_mode) - io.profiles['TEST'].quack_mode = True - self.assertTrue(io.profiles['TEST'].quack_mode) - self.assertTrue(io.profiles['TEST'].Copy().quack_mode) + io.profiles['TEST'].fault_tolerant = False + self.assertFalse(io.profiles['TEST'].fault_tolerant) + self.assertFalse(io.profiles['TEST'].Copy().fault_tolerant) + io.profiles['TEST'].fault_tolerant = True + self.assertTrue(io.profiles['TEST'].fault_tolerant) + self.assertTrue(io.profiles['TEST'].Copy().fault_tolerant) def test_no_bond_feasibility(self): io.profiles['FEAS_CHECK']=io.IOProfile(processor=conop.HeuristicProcessor(check_bond_feasibility=True)) io.profiles['NO_FEAS_CHECK']=io.IOProfile(processor=conop.HeuristicProcessor(check_bond_feasibility=False)) diff --git a/modules/io/tests/test_mmcif_info.cc b/modules/io/tests/test_mmcif_info.cc index faf5cc10379e88b73db25e58be05bbf64a34ce6b..846b6193a4b98964bb683ab7865e2563c012f443 100644 --- a/modules/io/tests/test_mmcif_info.cc +++ b/modules/io/tests/test_mmcif_info.cc @@ -282,22 +282,12 @@ BOOST_AUTO_TEST_CASE(mmcif_info_revisions) BOOST_AUTO_TEST_CASE(mmcif_info_branch) { BOOST_TEST_MESSAGE(" Running mmcif_info_branch tests..."); - - // create a dummy entity to start an editor... - mol::EntityHandle eh = mol::CreateEntity(); - mol::XCSEditor editor = eh.EditXCS(); - mol::ChainHandle ch = editor.InsertChain("A"); - mol::ResidueHandle res1 = editor.AppendResidue(ch, "NAG"); - mol::ResidueHandle res2 = editor.AppendResidue(ch, "NAG"); - // create AtomHandles for testing - mol::AtomHandle atom1 = editor.InsertAtom(res2, "C1",geom::Vec3()); - mol::AtomHandle atom2 = editor.InsertAtom(res1, "O4",geom::Vec3()); - - MMCifInfoEntityBranchLink branch1(atom1, atom2, 1); - BOOST_CHECK(branch1.GetAtom1().GetQualifiedName() == "A.NAG2.C1"); - BOOST_CHECK(branch1.GetAtom2().GetQualifiedName() == "A.NAG1.O4"); - BOOST_CHECK(branch1.GetBondOrder() == 1); - + MMCifInfoEntityBranchLink branch(42, 43, "O3", "C4", 2); + BOOST_CHECK(branch.rnum1 == 42); + BOOST_CHECK(branch.rnum2 == 43); + BOOST_CHECK(branch.aname1 == "O3"); + BOOST_CHECK(branch.aname2 == "C4"); + BOOST_CHECK(branch.bond_order == 2); BOOST_TEST_MESSAGE(" done."); } @@ -335,61 +325,33 @@ BOOST_AUTO_TEST_CASE(mmcif_info) BOOST_CHECK(info.GetRevisions().GetSize() == 0); // simple check that we can add branch links - mol::EntityHandle eh = mol::CreateEntity(); - mol::XCSEditor editor = eh.EditXCS(); - mol::ChainHandle ch1 = editor.InsertChain("A"); - mol::ResidueHandle res11 = editor.AppendResidue(ch1, "NAG"); - mol::ResidueHandle res12 = editor.AppendResidue(ch1, "NAG"); - // create AtomHandles for testing - mol::AtomHandle atom11 = editor.InsertAtom(res12, "C1", geom::Vec3()); - mol::AtomHandle atom12 = editor.InsertAtom(res11, "O4", geom::Vec3()); - mol::ChainHandle ch2 = editor.InsertChain("B"); - mol::ResidueHandle res21 = editor.AppendResidue(ch2, "BMA"); - mol::ResidueHandle res22 = editor.AppendResidue(ch2, "MAN"); - // create AtomHandles for testing - mol::AtomHandle atom21 = editor.InsertAtom(res22, "C1", geom::Vec3()); - mol::AtomHandle atom22 = editor.InsertAtom(res21, "O3", geom::Vec3()); - // create invalid AtomHandle pairs for testing - mol::AtomHandle atom_invalid; - info.AddEntityBranchLink(ch1.GetName(), atom11, atom12, 1); - info.AddEntityBranchLink(ch2.GetName(), atom21, atom22, 1); - /* Sometimes branched PDB entries link two atoms which are available in the - compound's definition but not resolved (missing) in the coordinates, e.g. - RCSB entry 7zim. Check that in case of invalid atom, no link is created. */ - info.AddEntityBranchLink(ch2.GetName(), atom11, atom_invalid, 1); - info.AddEntityBranchLink(ch2.GetName(), atom_invalid, atom12, 1); - std::vector<MMCifInfoEntityBranchLink> blinks = info.GetEntityBranchLinks(); - - BOOST_CHECK(blinks.size() == 2); - BOOST_CHECK(blinks[0].GetAtom1().GetQualifiedName() == "A.NAG2.C1"); - BOOST_CHECK(blinks[0].GetAtom2().GetQualifiedName() == "A.NAG1.O4"); - BOOST_CHECK(blinks[0].GetBondOrder() == 1); - BOOST_CHECK(blinks[1].GetAtom1().GetQualifiedName() == "B.MAN2.C1"); - BOOST_CHECK(blinks[1].GetAtom2().GetQualifiedName() == "B.BMA1.O3"); - BOOST_CHECK(blinks[1].GetBondOrder() == 1); - - // check that branch links get bonds - info.ConnectBranchLinks(); - - BOOST_CHECK(atom11.GetBondPartners()[0] == atom12); - BOOST_CHECK(atom22.GetBondPartners()[0] == atom21); - - // check chain(name) retrieval works - std::vector<String> chain_names = info.GetEntityBranchChainNames(); - BOOST_CHECK(chain_names[0] == "A"); - BOOST_CHECK(chain_names[1] == "B"); - - // check chain(handle) retrieval works - mol::ChainHandleList chains = info.GetEntityBranchChains(); - BOOST_CHECK(chains[0].GetName() == "A"); - BOOST_CHECK(chains[1].GetName() == "B"); - - // check retrieval of links by chain name - std::vector<MMCifInfoEntityBranchLink> cblinks = - info.GetEntityBranchByChain("A"); - BOOST_CHECK(cblinks.size() == 1); - cblinks = info.GetEntityBranchByChain("C"); - BOOST_CHECK(cblinks.size() == 0); + + info.AddEntityBranchLink("A", 42, 43, "O3", "C4", 2); + info.AddEntityBranchLink("B", 142, 143, "XXO3", "XXC4", 3); + info.AddEntityBranchLink("B", 1142, 1143, "XXXXO3", "XXXXC4", 5); + + BOOST_CHECK(info.GetEntityBranchChainNames().size() == 2); + BOOST_CHECK(info.GetEntityBranchByChain("A").size() == 1); + BOOST_CHECK(info.GetEntityBranchByChain("B").size() == 2); + BOOST_CHECK(info.GetEntityBranchByChain("X").size() == 0); // empty list if it doesn't exist + + BOOST_CHECK(info.GetEntityBranchByChain("A")[0].rnum1 == 42); + BOOST_CHECK(info.GetEntityBranchByChain("A")[0].rnum2 == 43); + BOOST_CHECK(info.GetEntityBranchByChain("A")[0].aname1 == "O3"); + BOOST_CHECK(info.GetEntityBranchByChain("A")[0].aname2 == "C4"); + BOOST_CHECK(info.GetEntityBranchByChain("A")[0].bond_order == 2); + + BOOST_CHECK(info.GetEntityBranchByChain("B")[0].rnum1 == 142); + BOOST_CHECK(info.GetEntityBranchByChain("B")[0].rnum2 == 143); + BOOST_CHECK(info.GetEntityBranchByChain("B")[0].aname1 == "XXO3"); + BOOST_CHECK(info.GetEntityBranchByChain("B")[0].aname2 == "XXC4"); + BOOST_CHECK(info.GetEntityBranchByChain("B")[0].bond_order == 3); + + BOOST_CHECK(info.GetEntityBranchByChain("B")[1].rnum1 == 1142); + BOOST_CHECK(info.GetEntityBranchByChain("B")[1].rnum2 == 1143); + BOOST_CHECK(info.GetEntityBranchByChain("B")[1].aname1 == "XXXXO3"); + BOOST_CHECK(info.GetEntityBranchByChain("B")[1].aname2 == "XXXXC4"); + BOOST_CHECK(info.GetEntityBranchByChain("B")[1].bond_order == 5); BOOST_TEST_MESSAGE(" done."); } diff --git a/modules/io/tests/test_mmcif_reader.cc b/modules/io/tests/test_mmcif_reader.cc index 6d81b46033ab1143be596f7464020706a4645abd..52d3a2c002fe7ba4dbcd3fda1b2dba9bbdf9a173 100644 --- a/modules/io/tests/test_mmcif_reader.cc +++ b/modules/io/tests/test_mmcif_reader.cc @@ -65,10 +65,7 @@ public: using MMCifReader::ParsePdbxEntityBranchLink; using MMCifReader::TryStoreIdx; using MMCifReader::SetRestrictChains; - using MMCifReader::SetReadSeqRes; - using MMCifReader::SetReadCanonicalSeqRes; using MMCifReader::ClearState; - using MMCifReader::ConvertSEQRES; using MMCifReader::GetInfo; using MMCifReader::DetermineSecStructType; using MMCifReader::MMCifSecStructElement; @@ -128,23 +125,6 @@ BOOST_AUTO_TEST_CASE(mmcif_trystoreidx) BOOST_CHECK_NO_THROW(tmmcif_p.TryStoreIdx(0, "bar", mmcif_h)); } -BOOST_AUTO_TEST_CASE(mmcif_convert_seqres) -{ - conop::CompoundLibPtr compound_lib = SetDefaultCompoundLib(); - if (!compound_lib) { - std::cout << "WARNING: skipping mmcif_convert_seqres unit test. " - << "Compound library is required" << std::endl; - return; - } - - mol::EntityHandle eh=mol::CreateEntity(); - - TestMMCifReaderProtected tmmcif_p("testfiles/mmcif/atom_site.mmcif", eh); - BOOST_CHECK_EQUAL(tmmcif_p.ConvertSEQRES("A(MSE)Y", compound_lib), "AMY"); - BOOST_CHECK_THROW(tmmcif_p.ConvertSEQRES("A(MSEY", compound_lib), - IOException); -} - BOOST_AUTO_TEST_CASE(mmcif_onbeginloop) { mol::EntityHandle eh=mol::CreateEntity(); @@ -404,7 +384,6 @@ BOOST_AUTO_TEST_CASE(mmcif_entity_poly_tests) mol::EntityHandle eh = mol::CreateEntity(); MMCifReader mmcif_p("testfiles/mmcif/atom_site.mmcif", eh, profile); - mmcif_p.SetReadSeqRes(true); mmcif_p.Parse(); seq::SequenceList seqres = mmcif_p.GetSeqRes(); @@ -414,7 +393,6 @@ BOOST_AUTO_TEST_CASE(mmcif_entity_poly_tests) BOOST_TEST_MESSAGE(" testing type recognition..."); { TestMMCifReaderProtected tmmcif_p("testfiles/mmcif/atom_site.mmcif", eh); - tmmcif_p.SetReadSeqRes(false); std::vector<StringRef> columns; // create corresponding entity entry @@ -493,46 +471,7 @@ columns.push_back(StringRef("polydeoxyribonucleotide/polyribonucleotide hybrid", columns.push_back(StringRef("1", 1)); columns.push_back(StringRef("other", 5)); columns.push_back(StringRef("ABRND", 5)); - tmmcif_p.SetReadSeqRes(true); - tmmcif_p.SetReadCanonicalSeqRes(true); - BOOST_CHECK_THROW(tmmcif_p.ParseEntityPoly(columns), IOException); - tmmcif_p.SetReadCanonicalSeqRes(false); BOOST_CHECK_NO_THROW(tmmcif_p.ParseEntityPoly(columns)); - BOOST_CHECK_THROW(tmmcif_p.ParseEntityPoly(columns), IOException); - } - BOOST_TEST_MESSAGE(" done."); - BOOST_TEST_MESSAGE(" testing pdbx_seq_one_letter_code_can " - "reading..."); - { - TestMMCifReaderProtected tmmcif_p("testfiles/mmcif/atom_site.mmcif", eh); - std::vector<StringRef> columns; - - tmmcif_h.Clear(); - tmmcif_h.SetCategory(StringRef("entity", 6)); - tmmcif_h.Add(StringRef("id", 2)); - tmmcif_h.Add(StringRef("type", 4)); - tmmcif_p.OnBeginLoop(tmmcif_h); - columns.push_back(StringRef("1", 1)); - columns.push_back(StringRef("polymer", 7)); - tmmcif_p.ParseEntity(columns); - columns.pop_back(); - columns.pop_back(); - - tmmcif_h.Clear(); - tmmcif_h.SetCategory(StringRef("entity_poly", 11)); - tmmcif_h.Add(StringRef("entity_id", 9)); - tmmcif_h.Add(StringRef("type", 4)); - tmmcif_h.Add(StringRef("pdbx_seq_one_letter_code_can", 28)); - tmmcif_p.OnBeginLoop(tmmcif_h); - tmmcif_p.SetReadCanonicalSeqRes(false); - columns.push_back(StringRef("1", 1)); - columns.push_back(StringRef("other", 5)); - columns.push_back(StringRef("ABRND", 5)); - tmmcif_p.SetReadSeqRes(true); - BOOST_CHECK_THROW(tmmcif_p.ParseEntityPoly(columns), IOException); - tmmcif_p.SetReadCanonicalSeqRes(true); - BOOST_CHECK_NO_THROW(tmmcif_p.ParseEntityPoly(columns)); - BOOST_CHECK_THROW(tmmcif_p.ParseEntityPoly(columns), IOException); } BOOST_TEST_MESSAGE(" done."); @@ -1159,7 +1098,7 @@ BOOST_AUTO_TEST_CASE(mmcif_parseatomident) columns.push_back(StringRef("30.691", 6)); // Cartn_y columns.push_back(StringRef("11.795", 6)); // Cartn_z BOOST_CHECK_EQUAL(tmmcif_p.ParseAtomIdent(columns, auth_chain_name, - cif_chain_name, res_name, + cif_chain_name, res_name, resnum, valid_res_num, atom_name, alt_loc), true); columns.pop_back(); @@ -1179,7 +1118,7 @@ BOOST_AUTO_TEST_CASE(mmcif_parseatomident) columns.push_back(StringRef("30.691", 6)); // Cartn_y columns.push_back(StringRef("11.795", 6)); // Cartn_z BOOST_CHECK_EQUAL(tmmcif_p.ParseAtomIdent(columns, auth_chain_name, - cif_chain_name, res_name, + cif_chain_name, res_name, resnum, valid_res_num, atom_name, alt_loc), false); } @@ -1323,9 +1262,6 @@ BOOST_AUTO_TEST_CASE(mmcif_test_chain_mappings) std::ifstream s("testfiles/mmcif/atom_site.mmcif"); IOProfile profile; MMCifReader mmcif_p(s, eh, profile); - if (compound_lib_available) { - mmcif_p.SetReadSeqRes(true); - } BOOST_REQUIRE_NO_THROW(mmcif_p.Parse()); const MMCifInfo& info = mmcif_p.GetInfo(); diff --git a/modules/io/tests/test_mmcif_writer.cc b/modules/io/tests/test_mmcif_writer.cc new file mode 100644 index 0000000000000000000000000000000000000000..2f6f6745bf6106a3cefdea928993ec7014675683 --- /dev/null +++ b/modules/io/tests/test_mmcif_writer.cc @@ -0,0 +1,430 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2024 by the OpenStructure authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ + +#define BOOST_TEST_DYN_LINK +#include <boost/test/unit_test.hpp> + +#include <ost/conop/conop.hh> +#include <ost/conop/heuristic.hh> +#include <ost/io/mol/mmcif_writer.hh> +#include <ost/mol/mol.hh> +#include <ost/platform.hh> + +using namespace ost; +using namespace ost::io; + +BOOST_AUTO_TEST_SUITE( io ); + +conop::CompoundLibPtr SetDefaultCompoundLib() { + // return NULL if not successful, else return newly set default lib + // REQ: OST_ROOT to be set + char * ost_root=getenv("OST_ROOT"); + if (!ost_root) return conop::CompoundLibPtr(); + SetPrefixPath(ost_root); + String lib_path=GetSharedDataPath() + "/compounds.chemlib"; + conop::CompoundLibPtr compound_lib=conop::CompoundLib::Load(lib_path); + if (compound_lib) { + conop::Conopology::Instance().SetDefaultLib(compound_lib); + } + return compound_lib; +} + +BOOST_AUTO_TEST_CASE(mmcif_writer_force_hetatm) +{ + BOOST_TEST_MESSAGE(" Running mmcif_force_hetatm tests..."); + /* + Make sure that atoms set to HETATM are written as HETATM. There is some + logic in place to deal with HETAM for mmcif_conform=false, check that this + is working. + */ + // Create small entity + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("A"); + mol::ResidueHandle r1=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r1, "N", geom::Vec3(1, 1, 1), "N", 1.0, 0.0, true); + edi.InsertAtom(r1, "C", geom::Vec3(4, 1, 2), "C", 1.0, 0.0, true); + mol::ResidueHandle r2=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r2, "N", geom::Vec3(5, 2, 3), "N", 1.0, 0.0, true); + edi.InsertAtom(r2, "C", geom::Vec3(4, 1, 1), "C", 1.0, 0.0, true); + mol::ResidueHandle r3=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r3, "N", geom::Vec3(5, 2, 2), "N", 1.0, 0.0, true); + edi.InsertAtom(r3, "C", geom::Vec3(4, 1, 0), "C", 1.0, 0.0, true); + edi.SetChainType(ch, mol::CHAINTYPE_UNKNOWN); + // make sure we have a proper polypeptide + conop::HeuristicProcessor heu_proc; + heu_proc.Process(ent); + BOOST_CHECK_EQUAL(mol::InSequence(r1, r2), true); + BOOST_CHECK_EQUAL(mol::InSequence(r2, r3), true); + + // Create mmCIF stream + MMCifWriter writer; + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + std::stringstream out; + writer.Write("test", out); + + String s=out.str(); + // make sure the entity is a polymer + BOOST_CHECK_NE(s.find("_entity.id\n_entity.type\n1 polymer"), String::npos); + // check all atom records to be HETATMs + for(auto i: ch.GetAtomList()){ + BOOST_CHECK_NE(s.find("HETATM "+ + i.GetElement()+" "+ + i.GetName()+" "+ + i.GetResidue().GetName()), + String::npos); + } + + // check that ATOM is written, if HETATM is not set + // Create small entity + ent=mol::CreateEntity(); + edi=ent.EditXCS(); + ch=edi.InsertChain("A"); + r1=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r1, "N", geom::Vec3(1, 1, 1), "N"); + edi.InsertAtom(r1, "C", geom::Vec3(4, 1, 2), "C"); + r2=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r2, "N", geom::Vec3(5, 2, 3), "N"); + edi.InsertAtom(r2, "C", geom::Vec3(4, 1, 1), "C"); + r3=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r3, "N", geom::Vec3(5, 2, 2), "N"); + edi.InsertAtom(r3, "C", geom::Vec3(4, 1, 0), "C"); + edi.SetChainType(ch, mol::CHAINTYPE_UNKNOWN); + // make sure we have a proper polypeptide + heu_proc.Process(ent); + BOOST_CHECK_EQUAL(mol::InSequence(r1, r2), true); + BOOST_CHECK_EQUAL(mol::InSequence(r2, r3), true); + + // Create mmCIF stream + writer=MMCifWriter(); + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + out=std::stringstream(); + writer.Write("test", out); + + s=out.str(); + // make sure the entity is a polymer + BOOST_CHECK_NE(s.find("_entity.id\n_entity.type\n1 polymer"), String::npos); + // check all atom records to be ATOMs + for(auto i: ch.GetAtomList()){ + BOOST_CHECK_NE(s.find("ATOM "+ + i.GetElement()+" "+ + i.GetName()+" "+ + i.GetResidue().GetName()), + String::npos); + } + + BOOST_TEST_MESSAGE(" done."); +} + +BOOST_AUTO_TEST_CASE(mmcif_writer_entity1) +{ + BOOST_TEST_MESSAGE(" Running mmcif_writer_entity1 tests..."); + /* + Make sure molecular entities in mmCIF files written by OST start counting + at ID 1. This is not enforced by the mmCIF format definition, but common + practice. + */ + + // Create tiny entity + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("A"); + mol::ResidueHandle r=edi.AppendResidue(ch, "GLY"); + edi.InsertAtom(r, "CA", geom::Vec3(32.0, -128.0, -2.5), "C"); + edi.SetChainType(ch, mol::CHAINTYPE_UNKNOWN); + + // Create mmCIF stream + MMCifWriter writer; + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + std::stringstream out; + writer.Write("test", out); + + // Check if entity starts with 1, either by reading mmCIF or "grep" + String s=out.str(); + BOOST_CHECK_NE(s.find("_entity.id\n_entity.type\n1 non-polymer"), + String::npos); + + BOOST_TEST_MESSAGE(" done."); +} + +BOOST_AUTO_TEST_CASE(mmcif_writer_poly_vs_non_poly) +{ + BOOST_TEST_MESSAGE(" Running mmcif_writer_poly_vs_non_poly tests..."); + /* + Go for small polymers that are not polymer... the story of 2 amino acids (to + be handled like RCSB as 2 separated chains) plus how the same thing works + for nucleic acids. + */ + + // Polypeptide: 2aa in a chain are 2 separated entities for RCSB (check 1E8K) + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("A"); + edi.SetChainType(ch, mol::CHAINTYPE_POLY_PEPTIDE_L); + // ALA + mol::ResidueHandle r1=edi.AppendResidue(ch, "ALA"); + edi.InsertAtom(r1, "N", geom::Vec3(44.987, 17.389, 12.362), "N"); + edi.InsertAtom(r1, "CA", geom::Vec3(45.936, 16.434, 12.890), "C"); + edi.InsertAtom(r1, "C", geom::Vec3(47.196, 17.227, 13.152), "C"); + edi.InsertAtom(r1, "O", geom::Vec3(47.506, 18.153, 12.401), "O"); + edi.InsertAtom(r1, "CB", geom::Vec3(46.244, 15.293, 11.961), "C"); + // PRO + mol::ResidueHandle r2=edi.AppendResidue(ch, "PRO"); + edi.InsertAtom(r2, "N", geom::Vec3(47.953, 16.910, 14.229), "N"); + edi.InsertAtom(r2, "CA", geom::Vec3(47.673, 15.829, 15.187), "C"); + edi.InsertAtom(r2, "C", geom::Vec3(46.564, 16.052, 16.233), "C"); + edi.InsertAtom(r2, "O", geom::Vec3(46.059, 17.169, 16.417), "O"); + edi.InsertAtom(r2, "CB", geom::Vec3(49.054, 15.755, 15.880), "C"); + edi.InsertAtom(r2, "CG", geom::Vec3(49.357, 17.213, 16.030), "C"); + edi.InsertAtom(r2, "CD", geom::Vec3(49.098, 17.714, 14.637), "C"); + edi.InsertAtom(r2, "OXT", geom::Vec3(46.144, 15.129, 16.950), "O"); + + // Make sure that the two residues r1, r2 are actually connected + conop::HeuristicProcessor heu_proc; + heu_proc.Process(ent); + BOOST_CHECK_EQUAL(mol::InSequence(r1, r2), true); + + // Create mmCIF stream + MMCifWriter writer; + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + std::stringstream out; + writer.Write("test", out); + + String s=out.str(); + // Check that the mmCIF output contains 2 non-polymer entities + BOOST_CHECK_NE( + s.find("loop_\n_entity.id\n_entity.type\n1 non-polymer\n2 non-polymer"), + String::npos); + BOOST_CHECK_NE( + s.find("loop_\n_struct_asym.id\n_struct_asym.entity_id\nA 1\nB 2"), + String::npos); + // Check that atoms are HETATMs since non-poly + BOOST_CHECK_NE(s.find("HETATM N N ALA"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C CA ALA"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C C ALA"), String::npos); + BOOST_CHECK_NE(s.find("HETATM O O ALA"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C CB ALA"), String::npos); + BOOST_CHECK_NE(s.find("HETATM N N PRO"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C CA PRO"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C C PRO"), String::npos); + BOOST_CHECK_NE(s.find("HETATM O O PRO "), String::npos); + BOOST_CHECK_NE(s.find("HETATM C CB PRO"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C CG PRO"), String::npos); + BOOST_CHECK_NE(s.find("HETATM C CD PRO"), String::npos); + BOOST_CHECK_NE(s.find("HETATM O OXT PRO"), String::npos); + + // Nucleic acid: 2 bases in a chain are 2 entities for RCSB (check 4K9A) + ent=mol::CreateEntity(); + edi=ent.EditXCS(); + ch=edi.InsertChain("A"); + edi.SetChainType(ch, mol::CHAINTYPE_POLY_RN); + // G + r1=edi.AppendResidue(ch, "G"); + r1.SetChemClass(mol::ChemClass('R')); + edi.InsertAtom(r1, "OP3", geom::Vec3(-19.992, -12.612, -22.535), "O"); + edi.InsertAtom(r1, "P", geom::Vec3(-20.743, -13.990, -22.451), "P"); + edi.InsertAtom(r1, "OP1", geom::Vec3(-20.093, -14.853, -23.494), "O"); + edi.InsertAtom(r1, "OP2", geom::Vec3(-20.592, -14.510, -21.074), "O"); + edi.InsertAtom(r1, "O5'", geom::Vec3(-22.258, -13.779, -22.864), "O"); + edi.InsertAtom(r1, "C5'", geom::Vec3(-22.956, -12.621, -22.414), "C"); + edi.InsertAtom(r1, "C4'", geom::Vec3(-24.433, -12.831, -22.071), "C"); + edi.InsertAtom(r1, "O4'", geom::Vec3(-24.958, -11.618, -21.688), "O"); + edi.InsertAtom(r1, "C3'", geom::Vec3(-25.196, -13.187, -23.283), "C"); + edi.InsertAtom(r1, "O3'", geom::Vec3(-26.335, -13.801, -22.833), "O"); + edi.InsertAtom(r1, "C2'", geom::Vec3(-25.568, -11.908, -23.910), "C"); + edi.InsertAtom(r1, "O2'", geom::Vec3(-26.792, -12.071, -24.602), "O"); + edi.InsertAtom(r1, "C1'", geom::Vec3(-25.819, -11.112, -22.709), "C"); + edi.InsertAtom(r1, "N9", geom::Vec3(-25.646, -9.689, -22.974), "N"); + edi.InsertAtom(r1, "C8", geom::Vec3(-26.518, -8.728, -22.814), "C"); + edi.InsertAtom(r1, "N7", geom::Vec3(-25.994, -7.595, -23.153), "N"); + edi.InsertAtom(r1, "C5", geom::Vec3(-24.781, -7.838, -23.527), "C"); + edi.InsertAtom(r1, "C6", geom::Vec3(-23.815, -7.062, -23.942), "C"); + edi.InsertAtom(r1, "O6", geom::Vec3(-23.953, -5.880, -24.055), "O"); + edi.InsertAtom(r1, "N1", geom::Vec3(-22.652, -7.575, -24.269), "N"); + edi.InsertAtom(r1, "C2", geom::Vec3(-22.453, -8.886, -24.153), "C"); + edi.InsertAtom(r1, "N2", geom::Vec3(-21.312, -9.419, -24.474), "N"); + edi.InsertAtom(r1, "N3", geom::Vec3(-23.422, -9.638, -23.738), "N"); + edi.InsertAtom(r1, "C4", geom::Vec3(-24.577, -9.122, -23.422), "C"); + // A + r2=edi.AppendResidue(ch, "A"); + r2.SetChemClass(mol::ChemClass('R')); + edi.InsertAtom(r2, "P", geom::Vec3(-27.082, -11.572, -26.017), "P"); + edi.InsertAtom(r2, "OP1", geom::Vec3(-28.487, -11.993, -26.469), "O"); + edi.InsertAtom(r2, "OP2", geom::Vec3(-27.228, -10.079, -25.961), "O"); + edi.InsertAtom(r2, "O5'", geom::Vec3(-26.066, -11.826, -27.005), "O"); + edi.InsertAtom(r2, "C5'", geom::Vec3(-25.894, -13.010, -27.689), "C"); + edi.InsertAtom(r2, "C4'", geom::Vec3(-24.500, -13.055, -28.234), "C"); + edi.InsertAtom(r2, "O4'", geom::Vec3(-24.168, -11.802, -28.703), "O"); + edi.InsertAtom(r2, "C3'", geom::Vec3(-23.540, -13.333, -27.140), "C"); + edi.InsertAtom(r2, "O3'", geom::Vec3(-22.424, -13.995, -27.663), "O"); + edi.InsertAtom(r2, "C2'", geom::Vec3(-23.101, -11.988, -26.770), "C"); + edi.InsertAtom(r2, "O2'", geom::Vec3(-21.831, -12.081, -26.257), "O"); + edi.InsertAtom(r2, "C1'", geom::Vec3(-23.037, -11.318, -28.071), "C"); + edi.InsertAtom(r2, "N9", geom::Vec3(-23.277, -9.902, -27.855), "N"); + edi.InsertAtom(r2, "C8", geom::Vec3(-24.331, -9.311, -27.370), "C"); + edi.InsertAtom(r2, "N7", geom::Vec3(-24.073, -8.040, -27.362), "N"); + edi.InsertAtom(r2, "C5", geom::Vec3(-22.856, -7.821, -27.812), "C"); + edi.InsertAtom(r2, "C6", geom::Vec3(-22.091, -6.735, -27.998), "C"); + edi.InsertAtom(r2, "N6", geom::Vec3(-22.544, -5.535, -27.711), "N"); + edi.InsertAtom(r2, "N1", geom::Vec3(-20.885, -6.823, -28.480), "N"); + edi.InsertAtom(r2, "C2", geom::Vec3(-20.381, -8.034, -28.799), "C"); + edi.InsertAtom(r2, "N3", geom::Vec3(-21.167, -9.113, -28.595), "N"); + edi.InsertAtom(r2, "C4", geom::Vec3(-22.379, -8.993, -28.116), "C"); + + // Make sure that the two residues r1, r2 are actually connected + /* In the RCSB entry 4K9A, G O2' and A P are linked, but we force a regular + nucleotide link for the test + */ + edi.Connect(r1.FindAtom("O3'"), r2.FindAtom("P")); + BOOST_CHECK_EQUAL(mol::InSequence(r1, r2), true); + + // Create mmCIF stream + writer=MMCifWriter(); + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + out=std::stringstream(); + writer.Write("test", out); + + s=out.str(); + // Check that the mmCIF output contains 2 non-polymer entities + BOOST_CHECK_NE( + s.find("loop_\n_entity.id\n_entity.type\n1 non-polymer\n2 non-polymer"), + String::npos); + BOOST_CHECK_NE( + s.find("loop_\n_struct_asym.id\n_struct_asym.entity_id\nA 1\nB 2"), + String::npos); + // Check that atoms are HETATMs since non-poly + for(auto i: ch.GetAtomList()){ + BOOST_CHECK_NE(s.find("HETATM "+ + i.GetElement()+" "+ + i.GetName()+" "+ + i.GetResidue().GetName()), + String::npos); + } + + BOOST_TEST_MESSAGE(" done."); +} + +BOOST_AUTO_TEST_CASE(mmcif_writer_small_sugars) +{ + BOOST_TEST_MESSAGE(" Running mmcif_writer_small_sugars tests..."); + /* + While RCSB marks dipeptides and dinucleotides as non-ploymers, sugars are + marked branched as soon as there are 2 connected. + */ + // Branched: 2 sugars connected (check RCSB 3AXH) + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("A"); + edi.SetChainType(ch, mol::CHAINTYPE_OLIGOSACCHARIDE); + // GLC + mol::ResidueHandle r1=edi.AppendResidue(ch, "GLC"); + r1.SetChemClass(mol::ChemClass('Y')); + edi.InsertAtom(r1, "C1", geom::Vec3(-17.103, -7.005, -18.605), "C"); + edi.InsertAtom(r1, "C2", geom::Vec3(-18.238, -7.769, -17.910), "C"); + edi.InsertAtom(r1, "C3", geom::Vec3(-18.607, -9.018, -18.701), "C"); + edi.InsertAtom(r1, "C4", geom::Vec3(-18.909, -8.623, -20.136), "C"); + edi.InsertAtom(r1, "C5", geom::Vec3(-17.692, -7.925, -20.738), "C"); + edi.InsertAtom(r1, "C6", geom::Vec3(-17.985, -7.413, -22.123), "C"); + edi.InsertAtom(r1, "O1", geom::Vec3(-15.956, -7.805, -18.503), "O"); + edi.InsertAtom(r1, "O2", geom::Vec3(-17.855, -8.167, -16.612), "O"); + edi.InsertAtom(r1, "O3", geom::Vec3(-19.758, -9.617, -18.139), "O"); + edi.InsertAtom(r1, "O4", geom::Vec3(-19.249, -9.772, -20.895), "O"); + edi.InsertAtom(r1, "O5", geom::Vec3(-17.381, -6.775, -19.989), "O"); + edi.InsertAtom(r1, "O6", geom::Vec3(-19.210, -6.695, -22.028), "O"); + // GLC + mol::ResidueHandle r2=edi.AppendResidue(ch, "GLC"); + r2.SetChemClass(mol::ChemClass('Y')); + edi.InsertAtom(r2, "C1", geom::Vec3(-20.076, -6.111, -23.424), "C"); + edi.InsertAtom(r2, "C2", geom::Vec3(-21.506, -5.777, -22.960), "C"); + edi.InsertAtom(r2, "C3", geom::Vec3(-22.102, -7.005, -22.273), "C"); + edi.InsertAtom(r2, "C4", geom::Vec3(-22.152, -8.101, -23.352), "C"); + edi.InsertAtom(r2, "C5", geom::Vec3(-20.802, -8.397, -24.036), "C"); + edi.InsertAtom(r2, "C6", geom::Vec3(-21.027, -9.040, -25.414), "C"); + edi.InsertAtom(r2, "O2", geom::Vec3(-21.398, -4.714, -22.066), "O"); + edi.InsertAtom(r2, "O3", geom::Vec3(-23.396, -6.675, -21.796), "O"); + edi.InsertAtom(r2, "O4", geom::Vec3(-22.738, -9.283, -22.830), "O"); + edi.InsertAtom(r2, "O5", geom::Vec3(-20.007, -7.236, -24.284), "O"); + edi.InsertAtom(r2, "O6", geom::Vec3(-21.528, -8.081, -26.325), "O"); + + // Connect the two sugars + edi.Connect(r1.FindAtom("O6"), r2.FindAtom("C1")); + + // Create mmCIF stream + MMCifWriter writer; + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + std::stringstream out; + writer.Write("test", out); + + String s=out.str(); + // Check that the mmCIF output contains a branched entity + BOOST_CHECK_NE(s.find("loop_\n_entity.id\n_entity.type\n1 branched"), + String::npos); + // Check that atoms are HETATMs since non-poly + for(auto i: ch.GetAtomList()){ + BOOST_CHECK_NE(s.find("HETATM "+ + i.GetElement()+" "+ + i.GetName()+" "+ + i.GetResidue().GetName()), + String::npos); + } + + // Non-poly: single sugar (check RCSB 1BDG) + ent=mol::CreateEntity(); + edi=ent.EditXCS(); + ch=edi.InsertChain("A"); + edi.SetChainType(ch, mol::CHAINTYPE_OLIGOSACCHARIDE); + // GLC + r1=edi.AppendResidue(ch, "GLC"); + r1.SetChemClass(mol::ChemClass('Y')); + edi.InsertAtom(r1, "C1", geom::Vec3(-17.103, -7.005, -18.605), "C"); + edi.InsertAtom(r1, "C2", geom::Vec3(-18.238, -7.769, -17.910), "C"); + edi.InsertAtom(r1, "C3", geom::Vec3(-18.607, -9.018, -18.701), "C"); + edi.InsertAtom(r1, "C4", geom::Vec3(-18.909, -8.623, -20.136), "C"); + edi.InsertAtom(r1, "C5", geom::Vec3(-17.692, -7.925, -20.738), "C"); + edi.InsertAtom(r1, "C6", geom::Vec3(-17.985, -7.413, -22.123), "C"); + edi.InsertAtom(r1, "O1", geom::Vec3(-15.956, -7.805, -18.503), "O"); + edi.InsertAtom(r1, "O2", geom::Vec3(-17.855, -8.167, -16.612), "O"); + edi.InsertAtom(r1, "O3", geom::Vec3(-19.758, -9.617, -18.139), "O"); + edi.InsertAtom(r1, "O4", geom::Vec3(-19.249, -9.772, -20.895), "O"); + edi.InsertAtom(r1, "O5", geom::Vec3(-17.381, -6.775, -19.989), "O"); + edi.InsertAtom(r1, "O6", geom::Vec3(-19.210, -6.695, -22.028), "O"); + + // Create mmCIF stream + writer=MMCifWriter(); + writer.SetStructure(ent, SetDefaultCompoundLib(), false); + out = std::stringstream(); + writer.Write("test", out); + + s=out.str(); + // Check that the mmCIF output contains 2 non-polymer entities + BOOST_CHECK_NE(s.find("loop_\n_entity.id\n_entity.type\n1 non-polymer"), + String::npos); + // Check that atoms are HETATMs since non-poly + for(auto i: ch.GetAtomList()){ + BOOST_CHECK_NE(s.find("HETATM "+ + i.GetElement()+" "+ + i.GetName()+" "+ + i.GetResidue().GetName()), + String::npos); + } + + BOOST_TEST_MESSAGE(" done."); +} + +BOOST_AUTO_TEST_SUITE_END(); diff --git a/modules/io/tests/testfiles/mmcif/154L.cif b/modules/io/tests/testfiles/mmcif/154L.cif new file mode 100644 index 0000000000000000000000000000000000000000..c61cb6e4f404712efcc4419a50308772ac6b3126 --- /dev/null +++ b/modules/io/tests/testfiles/mmcif/154L.cif @@ -0,0 +1,3007 @@ +data_154L +# +_entry.id 154L +# +_audit_conform.dict_name mmcif_pdbx.dic +_audit_conform.dict_version 5.329 +_audit_conform.dict_location http://mmcif.pdb.org/dictionaries/ascii/mmcif_pdbx.dic +# +loop_ +_database_2.database_id +_database_2.database_code +PDB 154L +WWPDB D_1000170125 +# +_pdbx_database_status.status_code REL +_pdbx_database_status.entry_id 154L +_pdbx_database_status.recvd_initial_deposition_date 1994-05-05 +_pdbx_database_status.deposit_site ? +_pdbx_database_status.process_site BNL +_pdbx_database_status.SG_entry . +_pdbx_database_status.status_code_sf REL +_pdbx_database_status.pdb_format_compatible Y +_pdbx_database_status.status_code_mr ? +_pdbx_database_status.status_code_cs ? +_pdbx_database_status.status_code_nmr_data ? +_pdbx_database_status.methods_development_category ? +# +loop_ +_audit_author.name +_audit_author.pdbx_ordinal +'Weaver, L.H.' 1 +'Gruetter, M.G.' 2 +'Matthews, B.W.' 3 +# +loop_ +_citation.id +_citation.title +_citation.journal_abbrev +_citation.journal_volume +_citation.page_first +_citation.page_last +_citation.year +_citation.journal_id_ASTM +_citation.country +_citation.journal_id_ISSN +_citation.journal_id_CSD +_citation.book_publisher +_citation.pdbx_database_id_PubMed +_citation.pdbx_database_id_DOI +primary +;The refined structures of goose lysozyme and its complex with a bound trisaccharide show that the "goose-type" lysozymes lack a catalytic aspartate residue. +; +J.Mol.Biol. 245 54 68 1995 JMOBAK UK 0022-2836 0070 ? 7823320 '10.1016/S0022-2836(95)80038-7' +1 'The Structure of Bacteriophage T4 Lysozyme Refined at 1.7 Angstroms Resolution' J.Mol.Biol. 193 189 ? 1987 JMOBAK UK +0022-2836 0070 ? ? ? +# +loop_ +_citation_author.citation_id +_citation_author.name +_citation_author.ordinal +_citation_author.identifier_ORCID +primary 'Weaver, L.H.' 1 ? +primary 'Grutter, M.G.' 2 ? +primary 'Matthews, B.W.' 3 ? +1 'Weaver, L.H.' 4 ? +1 'Matthews, B.W.' 5 ? +# +_cell.entry_id 154L +_cell.length_a 38.300 +_cell.length_b 65.400 +_cell.length_c 44.700 +_cell.angle_alpha 90.00 +_cell.angle_beta 117.00 +_cell.angle_gamma 90.00 +_cell.Z_PDB 2 +_cell.pdbx_unique_axis ? +# +_symmetry.entry_id 154L +_symmetry.space_group_name_H-M 'P 1 21 1' +_symmetry.pdbx_full_space_group_name_H-M ? +_symmetry.cell_setting ? +_symmetry.Int_Tables_number 4 +# +loop_ +_entity.id +_entity.type +_entity.src_method +_entity.pdbx_description +_entity.formula_weight +_entity.pdbx_number_of_molecules +_entity.pdbx_ec +_entity.pdbx_mutation +_entity.pdbx_fragment +_entity.details +1 polymer man 'GOOSE LYSOZYME' 20406.139 1 3.2.1.17 ? ? ? +2 branched man +;2-acetamido-2-deoxy-beta-D-glucopyranose-(1-4)-2-acetamido-2-deoxy-beta-D-glucopyranose-(1-4)-2-acetamido-2-deoxy-beta-D-glucopyranose +; +627.594 1 ? ? ? ? +3 water nat water 18.015 164 ? ? ? ? +# +_entity_name_com.entity_id 2 +_entity_name_com.name triacetyl-beta-chitotriose +# +_entity_poly.entity_id 1 +_entity_poly.type 'polypeptide(L)' +_entity_poly.nstd_linkage no +_entity_poly.nstd_monomer no +_entity_poly.pdbx_seq_one_letter_code +;RTDCYGNVNRIDTTGASCKTAKPEGLSYCGVSASKKIAERDLQAMDRYKTIIKKVGEKLCVEPAVIAGIISRESHAGKVL +KNGWGDRGNGFGLMQVDKRSHKPQGTWNGEVHITQGTTILINFIKTIQKKFPSWTKDQQLKGGISAYNAGAGNVRSYARM +DIGTTHDDYANDVVARAQYYKQHGY +; +_entity_poly.pdbx_seq_one_letter_code_can +;RTDCYGNVNRIDTTGASCKTAKPEGLSYCGVSASKKIAERDLQAMDRYKTIIKKVGEKLCVEPAVIAGIISRESHAGKVL +KNGWGDRGNGFGLMQVDKRSHKPQGTWNGEVHITQGTTILINFIKTIQKKFPSWTKDQQLKGGISAYNAGAGNVRSYARM +DIGTTHDDYANDVVARAQYYKQHGY +; +_entity_poly.pdbx_strand_id A +_entity_poly.pdbx_target_identifier ? +# +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 ARG n +1 2 THR n +1 3 ASP n +1 4 CYS n +1 5 TYR n +1 6 GLY n +1 7 ASN n +1 8 VAL n +1 9 ASN n +1 10 ARG n +1 11 ILE n +1 12 ASP n +1 13 THR n +1 14 THR n +1 15 GLY n +1 16 ALA n +1 17 SER n +1 18 CYS n +1 19 LYS n +1 20 THR n +1 21 ALA n +1 22 LYS n +1 23 PRO n +1 24 GLU n +1 25 GLY n +1 26 LEU n +1 27 SER n +1 28 TYR n +1 29 CYS n +1 30 GLY n +1 31 VAL n +1 32 SER n +1 33 ALA n +1 34 SER n +1 35 LYS n +1 36 LYS n +1 37 ILE n +1 38 ALA n +1 39 GLU n +1 40 ARG n +1 41 ASP n +1 42 LEU n +1 43 GLN n +1 44 ALA n +1 45 MET n +1 46 ASP n +1 47 ARG n +1 48 TYR n +1 49 LYS n +1 50 THR n +1 51 ILE n +1 52 ILE n +1 53 LYS n +1 54 LYS n +1 55 VAL n +1 56 GLY n +1 57 GLU n +1 58 LYS n +1 59 LEU n +1 60 CYS n +1 61 VAL n +1 62 GLU n +1 63 PRO n +1 64 ALA n +1 65 VAL n +1 66 ILE n +1 67 ALA n +1 68 GLY n +1 69 ILE n +1 70 ILE n +1 71 SER n +1 72 ARG n +1 73 GLU n +1 74 SER n +1 75 HIS n +1 76 ALA n +1 77 GLY n +1 78 LYS n +1 79 VAL n +1 80 LEU n +1 81 LYS n +1 82 ASN n +1 83 GLY n +1 84 TRP n +1 85 GLY n +1 86 ASP n +1 87 ARG n +1 88 GLY n +1 89 ASN n +1 90 GLY n +1 91 PHE n +1 92 GLY n +1 93 LEU n +1 94 MET n +1 95 GLN n +1 96 VAL n +1 97 ASP n +1 98 LYS n +1 99 ARG n +1 100 SER n +1 101 HIS n +1 102 LYS n +1 103 PRO n +1 104 GLN n +1 105 GLY n +1 106 THR n +1 107 TRP n +1 108 ASN n +1 109 GLY n +1 110 GLU n +1 111 VAL n +1 112 HIS n +1 113 ILE n +1 114 THR n +1 115 GLN n +1 116 GLY n +1 117 THR n +1 118 THR n +1 119 ILE n +1 120 LEU n +1 121 ILE n +1 122 ASN n +1 123 PHE n +1 124 ILE n +1 125 LYS n +1 126 THR n +1 127 ILE n +1 128 GLN n +1 129 LYS n +1 130 LYS n +1 131 PHE n +1 132 PRO n +1 133 SER n +1 134 TRP n +1 135 THR n +1 136 LYS n +1 137 ASP n +1 138 GLN n +1 139 GLN n +1 140 LEU n +1 141 LYS n +1 142 GLY n +1 143 GLY n +1 144 ILE n +1 145 SER n +1 146 ALA n +1 147 TYR n +1 148 ASN n +1 149 ALA n +1 150 GLY n +1 151 ALA n +1 152 GLY n +1 153 ASN n +1 154 VAL n +1 155 ARG n +1 156 SER n +1 157 TYR n +1 158 ALA n +1 159 ARG n +1 160 MET n +1 161 ASP n +1 162 ILE n +1 163 GLY n +1 164 THR n +1 165 THR n +1 166 HIS n +1 167 ASP n +1 168 ASP n +1 169 TYR n +1 170 ALA n +1 171 ASN n +1 172 ASP n +1 173 VAL n +1 174 VAL n +1 175 ALA n +1 176 ARG n +1 177 ALA n +1 178 GLN n +1 179 TYR n +1 180 TYR n +1 181 LYS n +1 182 GLN n +1 183 HIS n +1 184 GLY n +1 185 TYR n +# +_struct_ref.id 1 +_struct_ref.db_name UNP +_struct_ref.db_code LYG_ANSAN +_struct_ref.entity_id 1 +_struct_ref.pdbx_db_accession P00718 +_struct_ref.pdbx_align_begin 1 +_struct_ref.pdbx_seq_one_letter_code +;RTDCYGNVNRIDTTGASCKTAKPEGLSYCGVSASKKIAERDLQAMDRYKTIIKKVGEKLCVEPAVIAGIISRESHAGKVL +KNGWGDRGNGFGLMQVDKRSHKPQGTWNGEVHITQGTTILINFIKTIQKKFPSWTKDQQLKGGISAYNAGAGNVRSYARM +DIGTTHDDYANDVVARAQYYKQHGY +; +_struct_ref.pdbx_db_isoform ? +# +_struct_ref_seq.align_id 1 +_struct_ref_seq.ref_id 1 +_struct_ref_seq.pdbx_PDB_id_code 154L +_struct_ref_seq.pdbx_strand_id A +_struct_ref_seq.seq_align_beg 1 +_struct_ref_seq.pdbx_seq_align_beg_ins_code ? +_struct_ref_seq.seq_align_end 185 +_struct_ref_seq.pdbx_seq_align_end_ins_code ? +_struct_ref_seq.pdbx_db_accession P00718 +_struct_ref_seq.db_align_beg 1 +_struct_ref_seq.pdbx_db_align_beg_ins_code ? +_struct_ref_seq.db_align_end 185 +_struct_ref_seq.pdbx_db_align_end_ins_code ? +_struct_ref_seq.pdbx_auth_seq_align_beg 1 +_struct_ref_seq.pdbx_auth_seq_align_end 185 +# +loop_ +_chem_comp.id +_chem_comp.type +_chem_comp.mon_nstd_flag +_chem_comp.name +_chem_comp.pdbx_synonyms +_chem_comp.formula +_chem_comp.formula_weight +ALA 'L-peptide linking' y ALANINE ? 'C3 H7 N O2' 89.093 +ARG 'L-peptide linking' y ARGININE ? 'C6 H15 N4 O2 1' 175.209 +ASN 'L-peptide linking' y ASPARAGINE ? 'C4 H8 N2 O3' 132.118 +ASP 'L-peptide linking' y 'ASPARTIC ACID' ? 'C4 H7 N O4' 133.103 +CYS 'L-peptide linking' y CYSTEINE ? 'C3 H7 N O2 S' 121.158 +GLN 'L-peptide linking' y GLUTAMINE ? 'C5 H10 N2 O3' 146.144 +GLU 'L-peptide linking' y 'GLUTAMIC ACID' ? 'C5 H9 N O4' 147.129 +GLY 'peptide linking' y GLYCINE ? 'C2 H5 N O2' 75.067 +HIS 'L-peptide linking' y HISTIDINE ? 'C6 H10 N3 O2 1' 156.162 +HOH non-polymer . WATER ? 'H2 O' 18.015 +ILE 'L-peptide linking' y ISOLEUCINE ? 'C6 H13 N O2' 131.173 +LEU 'L-peptide linking' y LEUCINE ? 'C6 H13 N O2' 131.173 +LYS 'L-peptide linking' y LYSINE ? 'C6 H15 N2 O2 1' 147.195 +MET 'L-peptide linking' y METHIONINE ? 'C5 H11 N O2 S' 149.211 +NAG 'D-saccharide, beta linking' . 2-acetamido-2-deoxy-beta-D-glucopyranose ? 'C8 H15 N O6' 221.208 +PHE 'L-peptide linking' y PHENYLALANINE ? 'C9 H11 N O2' 165.189 +PRO 'L-peptide linking' y PROLINE ? 'C5 H9 N O2' 115.130 +SER 'L-peptide linking' y SERINE ? 'C3 H7 N O3' 105.093 +THR 'L-peptide linking' y THREONINE ? 'C4 H9 N O3' 119.119 +TRP 'L-peptide linking' y TRYPTOPHAN ? 'C11 H12 N2 O2' 204.225 +TYR 'L-peptide linking' y TYROSINE ? 'C9 H11 N O3' 181.189 +VAL 'L-peptide linking' y VALINE ? 'C5 H11 N O2' 117.146 +# +_exptl.entry_id 154L +_exptl.method 'X-RAY DIFFRACTION' +_exptl.crystals_number ? +# +_exptl_crystal.id 1 +_exptl_crystal.density_meas ? +_exptl_crystal.density_Matthews 2.44 +_exptl_crystal.density_percent_sol 49.67 +_exptl_crystal.description ? +# +_diffrn.id 1 +_diffrn.ambient_temp ? +_diffrn.ambient_temp_details ? +_diffrn.crystal_id 1 +# +_diffrn_radiation.diffrn_id 1 +_diffrn_radiation.wavelength_id 1 +_diffrn_radiation.pdbx_monochromatic_or_laue_m_l ? +_diffrn_radiation.monochromator ? +_diffrn_radiation.pdbx_diffrn_protocol ? +_diffrn_radiation.pdbx_scattering_type x-ray +# +_diffrn_radiation_wavelength.id 1 +_diffrn_radiation_wavelength.wavelength . +_diffrn_radiation_wavelength.wt 1.0 +# +_refine.entry_id 154L +_refine.ls_number_reflns_obs 21303 +_refine.ls_number_reflns_all ? +_refine.pdbx_ls_sigma_I ? +_refine.pdbx_ls_sigma_F 0.0 +_refine.pdbx_data_cutoff_high_absF ? +_refine.pdbx_data_cutoff_low_absF ? +_refine.pdbx_data_cutoff_high_rms_absF ? +_refine.ls_d_res_low 6. +_refine.ls_d_res_high 1.6 +_refine.ls_percent_reflns_obs ? +_refine.ls_R_factor_obs 0.159 +_refine.ls_R_factor_all ? +_refine.ls_R_factor_R_work ? +_refine.ls_R_factor_R_free ? +_refine.ls_R_factor_R_free_error ? +_refine.ls_R_factor_R_free_error_details ? +_refine.ls_percent_reflns_R_free ? +_refine.ls_number_reflns_R_free ? +_refine.ls_number_parameters ? +_refine.ls_number_restraints ? +_refine.occupancy_min ? +_refine.occupancy_max ? +_refine.B_iso_mean ? +_refine.aniso_B[1][1] ? +_refine.aniso_B[2][2] ? +_refine.aniso_B[3][3] ? +_refine.aniso_B[1][2] ? +_refine.aniso_B[1][3] ? +_refine.aniso_B[2][3] ? +_refine.solvent_model_details ? +_refine.solvent_model_param_ksol ? +_refine.solvent_model_param_bsol ? +_refine.pdbx_ls_cross_valid_method ? +_refine.details ? +_refine.pdbx_starting_model ? +_refine.pdbx_method_to_determine_struct ? +_refine.pdbx_isotropic_thermal_model ? +_refine.pdbx_stereochemistry_target_values ? +_refine.pdbx_stereochem_target_val_spec_case ? +_refine.pdbx_R_Free_selection_details ? +_refine.pdbx_overall_ESU_R ? +_refine.pdbx_overall_ESU_R_Free ? +_refine.overall_SU_ML ? +_refine.overall_SU_B ? +_refine.pdbx_refine_id 'X-RAY DIFFRACTION' +_refine.pdbx_diffrn_id 1 +_refine.pdbx_TLS_residual_ADP_flag ? +_refine.correlation_coeff_Fo_to_Fc ? +_refine.correlation_coeff_Fo_to_Fc_free ? +_refine.pdbx_solvent_vdw_probe_radii ? +_refine.pdbx_solvent_ion_probe_radii ? +_refine.pdbx_solvent_shrinkage_radii ? +_refine.pdbx_overall_phase_error ? +_refine.overall_SU_R_Cruickshank_DPI ? +_refine.pdbx_overall_SU_R_free_Cruickshank_DPI ? +_refine.pdbx_overall_SU_R_Blow_DPI ? +_refine.pdbx_overall_SU_R_free_Blow_DPI ? +# +_refine_hist.pdbx_refine_id 'X-RAY DIFFRACTION' +_refine_hist.cycle_id LAST +_refine_hist.pdbx_number_atoms_protein 1432 +_refine_hist.pdbx_number_atoms_nucleic_acid 0 +_refine_hist.pdbx_number_atoms_ligand 43 +_refine_hist.number_atoms_solvent 164 +_refine_hist.number_atoms_total 1639 +_refine_hist.d_res_high 1.6 +_refine_hist.d_res_low 6. +# +loop_ +_refine_ls_restr.type +_refine_ls_restr.dev_ideal +_refine_ls_restr.dev_ideal_target +_refine_ls_restr.weight +_refine_ls_restr.number +_refine_ls_restr.pdbx_refine_id +_refine_ls_restr.pdbx_restraint_function +t_bond_d 0.017 ? ? ? 'X-RAY DIFFRACTION' ? +t_angle_deg 2.5 ? ? ? 'X-RAY DIFFRACTION' ? +t_dihedral_angle_d ? ? ? ? 'X-RAY DIFFRACTION' ? +t_incorr_chiral_ct ? ? ? ? 'X-RAY DIFFRACTION' ? +t_pseud_angle ? ? ? ? 'X-RAY DIFFRACTION' ? +t_trig_c_planes ? ? ? ? 'X-RAY DIFFRACTION' ? +t_gen_planes ? ? ? ? 'X-RAY DIFFRACTION' ? +t_it ? ? ? ? 'X-RAY DIFFRACTION' ? +t_nbd ? ? ? ? 'X-RAY DIFFRACTION' ? +# +_struct.entry_id 154L +_struct.title +;THE REFINED STRUCTURES OF GOOSE LYSOZYME AND ITS COMPLEX WITH A BOUND TRISACCHARIDE SHOW THAT THE "GOOSE-TYPE LYSOZYMES LACK A CATALYTIC ASPARTATE +; +_struct.pdbx_descriptor 'LYSOZYME (E.C.3.2.1.17)' +_struct.pdbx_model_details ? +_struct.pdbx_CASP_flag ? +_struct.pdbx_model_type_details ? +# +_struct_keywords.entry_id 154L +_struct_keywords.pdbx_keywords 'HYDROLASE(O-GLYCOSYL)' +_struct_keywords.text 'HYDROLASE(O-GLYCOSYL)' +# +loop_ +_struct_asym.id +_struct_asym.pdbx_blank_PDB_chainid_flag +_struct_asym.pdbx_modified +_struct_asym.entity_id +_struct_asym.details +A N N 1 ? +B N N 2 ? +C N N 3 ? +# +_struct_biol.id 1 +# +loop_ +_struct_conf.conf_type_id +_struct_conf.id +_struct_conf.pdbx_PDB_helix_id +_struct_conf.beg_label_comp_id +_struct_conf.beg_label_asym_id +_struct_conf.beg_label_seq_id +_struct_conf.pdbx_beg_PDB_ins_code +_struct_conf.end_label_comp_id +_struct_conf.end_label_asym_id +_struct_conf.end_label_seq_id +_struct_conf.pdbx_end_PDB_ins_code +_struct_conf.beg_auth_comp_id +_struct_conf.beg_auth_asym_id +_struct_conf.beg_auth_seq_id +_struct_conf.end_auth_comp_id +_struct_conf.end_auth_asym_id +_struct_conf.end_auth_seq_id +_struct_conf.pdbx_PDB_helix_class +_struct_conf.details +_struct_conf.pdbx_PDB_helix_length +HELX_P HELX_P1 1 ASN A 7 ? ILE A 11 ? ASN A 7 ILE A 11 5 ? 5 +HELX_P HELX_P2 2 SER A 17 ? LYS A 22 ? SER A 17 LYS A 22 1 ? 6 +HELX_P HELX_P3 3 GLY A 30 ? ASP A 41 ? GLY A 30 ASP A 41 1 ? 12 +HELX_P HELX_P4 4 ASP A 41 ? ARG A 47 ? ASP A 41 ARG A 47 1 ? 7 +HELX_P HELX_P5 5 TYR A 48 ? CYS A 60 ? TYR A 48 CYS A 60 1 ? 13 +HELX_P HELX_P6 6 GLU A 62 ? HIS A 75 ? GLU A 62 HIS A 75 1 ? 14 +HELX_P HELX_P7 7 ALA A 76 ? LYS A 78 ? ALA A 76 LYS A 78 5 ? 3 +HELX_P HELX_P8 8 GLY A 109 ? PHE A 131 ? GLY A 109 PHE A 131 1 ? 23 +HELX_P HELX_P9 9 THR A 135 ? GLY A 150 ? THR A 135 GLY A 150 1 ? 16 +HELX_P HELX_P10 10 ALA A 151 ? VAL A 154 ? ALA A 151 VAL A 154 5 ? 4 +HELX_P HELX_P11 11 THR A 164 ? ASP A 167 ? THR A 164 ASP A 167 5 ? 4 +HELX_P HELX_P12 12 ASP A 168 ? HIS A 183 ? ASP A 168 HIS A 183 1 ? 16 +# +_struct_conf_type.id HELX_P +_struct_conf_type.criteria ? +_struct_conf_type.reference ? +# +loop_ +_struct_conn.id +_struct_conn.conn_type_id +_struct_conn.pdbx_leaving_atom_flag +_struct_conn.pdbx_PDB_id +_struct_conn.ptnr1_label_asym_id +_struct_conn.ptnr1_label_comp_id +_struct_conn.ptnr1_label_seq_id +_struct_conn.ptnr1_label_atom_id +_struct_conn.pdbx_ptnr1_label_alt_id +_struct_conn.pdbx_ptnr1_PDB_ins_code +_struct_conn.pdbx_ptnr1_standard_comp_id +_struct_conn.ptnr1_symmetry +_struct_conn.ptnr2_label_asym_id +_struct_conn.ptnr2_label_comp_id +_struct_conn.ptnr2_label_seq_id +_struct_conn.ptnr2_label_atom_id +_struct_conn.pdbx_ptnr2_label_alt_id +_struct_conn.pdbx_ptnr2_PDB_ins_code +_struct_conn.ptnr1_auth_asym_id +_struct_conn.ptnr1_auth_comp_id +_struct_conn.ptnr1_auth_seq_id +_struct_conn.ptnr2_auth_asym_id +_struct_conn.ptnr2_auth_comp_id +_struct_conn.ptnr2_auth_seq_id +_struct_conn.ptnr2_symmetry +_struct_conn.pdbx_ptnr3_label_atom_id +_struct_conn.pdbx_ptnr3_label_seq_id +_struct_conn.pdbx_ptnr3_label_comp_id +_struct_conn.pdbx_ptnr3_label_asym_id +_struct_conn.pdbx_ptnr3_label_alt_id +_struct_conn.pdbx_ptnr3_PDB_ins_code +_struct_conn.details +_struct_conn.pdbx_dist_value +_struct_conn.pdbx_value_order +_struct_conn.pdbx_role +disulf1 disulf ? ? A CYS 4 SG ? ? ? 1_555 A CYS 60 SG ? ? A CYS 4 A CYS 60 1_555 ? ? ? ? ? ? ? 2.061 ? ? +disulf2 disulf ? ? A CYS 18 SG ? ? ? 1_555 A CYS 29 SG ? ? A CYS 18 A CYS 29 1_555 ? ? ? ? ? ? ? 2.060 ? ? +covale1 covale both ? B NAG . O4 ? ? ? 1_555 B NAG . C1 ? ? B NAG 1 B NAG 2 1_555 ? ? ? ? ? ? ? 1.414 ? ? +covale2 covale both ? B NAG . O4 ? ? ? 1_555 B NAG . C1 ? ? B NAG 2 B NAG 3 1_555 ? ? ? ? ? ? ? 1.397 ? ? +# +loop_ +_struct_conn_type.id +_struct_conn_type.criteria +_struct_conn_type.reference +disulf ? ? +covale ? ? +# +_struct_sheet.id A +_struct_sheet.type ? +_struct_sheet.number_strands 2 +_struct_sheet.details ? +# +_struct_sheet_order.sheet_id A +_struct_sheet_order.range_id_1 1 +_struct_sheet_order.range_id_2 2 +_struct_sheet_order.offset ? +_struct_sheet_order.sense anti-parallel +# +loop_ +_struct_sheet_range.sheet_id +_struct_sheet_range.id +_struct_sheet_range.beg_label_comp_id +_struct_sheet_range.beg_label_asym_id +_struct_sheet_range.beg_label_seq_id +_struct_sheet_range.pdbx_beg_PDB_ins_code +_struct_sheet_range.end_label_comp_id +_struct_sheet_range.end_label_asym_id +_struct_sheet_range.end_label_seq_id +_struct_sheet_range.pdbx_end_PDB_ins_code +_struct_sheet_range.beg_auth_comp_id +_struct_sheet_range.beg_auth_asym_id +_struct_sheet_range.beg_auth_seq_id +_struct_sheet_range.end_auth_comp_id +_struct_sheet_range.end_auth_asym_id +_struct_sheet_range.end_auth_seq_id +A 1 GLY A 90 ? PHE A 91 ? GLY A 90 PHE A 91 +A 2 VAL A 96 ? ASP A 97 ? VAL A 96 ASP A 97 +# +_pdbx_struct_sheet_hbond.sheet_id A +_pdbx_struct_sheet_hbond.range_id_1 1 +_pdbx_struct_sheet_hbond.range_id_2 2 +_pdbx_struct_sheet_hbond.range_1_label_atom_id N +_pdbx_struct_sheet_hbond.range_1_label_comp_id PHE +_pdbx_struct_sheet_hbond.range_1_label_asym_id A +_pdbx_struct_sheet_hbond.range_1_label_seq_id 91 +_pdbx_struct_sheet_hbond.range_1_PDB_ins_code ? +_pdbx_struct_sheet_hbond.range_1_auth_atom_id N +_pdbx_struct_sheet_hbond.range_1_auth_comp_id PHE +_pdbx_struct_sheet_hbond.range_1_auth_asym_id A +_pdbx_struct_sheet_hbond.range_1_auth_seq_id 91 +_pdbx_struct_sheet_hbond.range_2_label_atom_id O +_pdbx_struct_sheet_hbond.range_2_label_comp_id VAL +_pdbx_struct_sheet_hbond.range_2_label_asym_id A +_pdbx_struct_sheet_hbond.range_2_label_seq_id 96 +_pdbx_struct_sheet_hbond.range_2_PDB_ins_code ? +_pdbx_struct_sheet_hbond.range_2_auth_atom_id O +_pdbx_struct_sheet_hbond.range_2_auth_comp_id VAL +_pdbx_struct_sheet_hbond.range_2_auth_asym_id A +_pdbx_struct_sheet_hbond.range_2_auth_seq_id 96 +# +_database_PDB_matrix.entry_id 154L +_database_PDB_matrix.origx[1][1] 1.000000 +_database_PDB_matrix.origx[1][2] 0.000000 +_database_PDB_matrix.origx[1][3] 0.000000 +_database_PDB_matrix.origx[2][1] 0.000000 +_database_PDB_matrix.origx[2][2] 1.000000 +_database_PDB_matrix.origx[2][3] 0.000000 +_database_PDB_matrix.origx[3][1] 0.000000 +_database_PDB_matrix.origx[3][2] 0.000000 +_database_PDB_matrix.origx[3][3] 1.000000 +_database_PDB_matrix.origx_vector[1] 0.00000 +_database_PDB_matrix.origx_vector[2] 0.00000 +_database_PDB_matrix.origx_vector[3] 0.00000 +# +_atom_sites.entry_id 154L +_atom_sites.fract_transf_matrix[1][1] 0.026110 +_atom_sites.fract_transf_matrix[1][2] 0.000000 +_atom_sites.fract_transf_matrix[1][3] 0.013304 +_atom_sites.fract_transf_matrix[2][1] 0.000000 +_atom_sites.fract_transf_matrix[2][2] 0.015291 +_atom_sites.fract_transf_matrix[2][3] 0.000000 +_atom_sites.fract_transf_matrix[3][1] 0.000000 +_atom_sites.fract_transf_matrix[3][2] 0.000000 +_atom_sites.fract_transf_matrix[3][3] 0.025108 +_atom_sites.fract_transf_vector[1] 0.00000 +_atom_sites.fract_transf_vector[2] 0.00000 +_atom_sites.fract_transf_vector[3] 0.00000 +# +loop_ +_atom_type.symbol +C +N +O +S +# +loop_ +_atom_site.group_PDB +_atom_site.id +_atom_site.type_symbol +_atom_site.label_atom_id +_atom_site.label_alt_id +_atom_site.label_comp_id +_atom_site.label_asym_id +_atom_site.label_entity_id +_atom_site.label_seq_id +_atom_site.pdbx_PDB_ins_code +_atom_site.Cartn_x +_atom_site.Cartn_y +_atom_site.Cartn_z +_atom_site.occupancy +_atom_site.B_iso_or_equiv +_atom_site.pdbx_formal_charge +_atom_site.auth_seq_id +_atom_site.auth_comp_id +_atom_site.auth_asym_id +_atom_site.auth_atom_id +_atom_site.pdbx_PDB_model_num +ATOM 1 N N . ARG A 1 1 ? 5.498 34.119 50.202 1.00 43.26 ? 1 ARG A N 1 +ATOM 2 C CA . ARG A 1 1 ? 5.514 32.689 49.932 1.00 52.90 ? 1 ARG A CA 1 +ATOM 3 C C . ARG A 1 1 ? 5.531 32.439 48.444 1.00 17.97 ? 1 ARG A C 1 +ATOM 4 O O . ARG A 1 1 ? 6.520 31.946 47.899 1.00 30.41 ? 1 ARG A O 1 +ATOM 5 C CB . ARG A 1 1 ? 4.211 32.249 50.534 1.00 40.09 ? 1 ARG A CB 1 +ATOM 6 C CG . ARG A 1 1 ? 3.704 33.534 51.186 1.00 57.67 ? 1 ARG A CG 1 +ATOM 7 C CD . ARG A 1 1 ? 2.194 33.763 51.157 1.00 68.15 ? 1 ARG A CD 1 +ATOM 8 N NE . ARG A 1 1 ? 1.767 34.231 49.857 1.00 62.94 ? 1 ARG A NE 1 +ATOM 9 C CZ . ARG A 1 1 ? 1.469 33.381 48.900 1.00 33.44 ? 1 ARG A CZ 1 +ATOM 10 N NH1 . ARG A 1 1 ? 1.537 32.065 49.091 1.00 51.73 ? 1 ARG A NH1 1 +ATOM 11 N NH2 . ARG A 1 1 ? 1.066 33.851 47.732 1.00 59.40 ? 1 ARG A NH2 1 +ATOM 12 N N . THR A 1 2 ? 4.442 32.786 47.814 1.00 18.89 ? 2 THR A N 1 +ATOM 13 C CA . THR A 1 2 ? 4.431 32.585 46.395 1.00 19.52 ? 2 THR A CA 1 +ATOM 14 C C . THR A 1 2 ? 3.987 33.820 45.714 1.00 23.09 ? 2 THR A C 1 +ATOM 15 O O . THR A 1 2 ? 3.848 33.831 44.486 1.00 22.35 ? 2 THR A O 1 +ATOM 16 C CB . THR A 1 2 ? 3.592 31.412 45.887 1.00 13.67 ? 2 THR A CB 1 +ATOM 17 O OG1 . THR A 1 2 ? 2.222 31.540 46.162 1.00 26.79 ? 2 THR A OG1 1 +ATOM 18 C CG2 . THR A 1 2 ? 4.132 30.087 46.352 1.00 24.23 ? 2 THR A CG2 1 +ATOM 19 N N . ASP A 1 3 ? 3.754 34.870 46.484 1.00 30.84 ? 3 ASP A N 1 +ATOM 20 C CA . ASP A 1 3 ? 3.231 36.074 45.865 1.00 29.67 ? 3 ASP A CA 1 +ATOM 21 C C . ASP A 1 3 ? 4.162 37.228 45.616 1.00 21.76 ? 3 ASP A C 1 +ATOM 22 O O . ASP A 1 3 ? 3.633 38.311 45.360 1.00 31.83 ? 3 ASP A O 1 +ATOM 23 C CB . ASP A 1 3 ? 2.143 36.646 46.808 1.00 28.21 ? 3 ASP A CB 1 +ATOM 24 C CG . ASP A 1 3 ? 2.762 36.842 48.152 1.00 30.08 ? 3 ASP A CG 1 +ATOM 25 O OD1 . ASP A 1 3 ? 3.969 36.935 48.359 1.00 47.64 ? 3 ASP A OD1 1 +ATOM 26 O OD2 . ASP A 1 3 ? 1.872 36.787 49.100 1.00 61.72 ? 3 ASP A OD2 1 +ATOM 27 N N . CYS A 1 4 ? 5.481 37.041 45.705 1.00 15.59 ? 4 CYS A N 1 +ATOM 28 C CA . CYS A 1 4 ? 6.403 38.128 45.555 1.00 16.73 ? 4 CYS A CA 1 +ATOM 29 C C . CYS A 1 4 ? 6.363 38.873 44.274 1.00 21.59 ? 4 CYS A C 1 +ATOM 30 O O . CYS A 1 4 ? 6.708 40.051 44.202 1.00 24.56 ? 4 CYS A O 1 +ATOM 31 C CB . CYS A 1 4 ? 7.852 37.715 45.744 1.00 17.07 ? 4 CYS A CB 1 +ATOM 32 S SG . CYS A 1 4 ? 8.151 37.000 47.346 1.00 23.86 ? 4 CYS A SG 1 +ATOM 33 N N . TYR A 1 5 ? 5.977 38.183 43.253 1.00 17.51 ? 5 TYR A N 1 +ATOM 34 C CA . TYR A 1 5 ? 5.982 38.838 41.992 1.00 16.42 ? 5 TYR A CA 1 +ATOM 35 C C . TYR A 1 5 ? 4.633 39.102 41.408 1.00 19.68 ? 5 TYR A C 1 +ATOM 36 O O . TYR A 1 5 ? 4.606 39.451 40.245 1.00 24.21 ? 5 TYR A O 1 +ATOM 37 C CB . TYR A 1 5 ? 6.922 38.078 41.002 1.00 21.72 ? 5 TYR A CB 1 +ATOM 38 C CG . TYR A 1 5 ? 8.328 37.927 41.542 1.00 14.31 ? 5 TYR A CG 1 +ATOM 39 C CD1 . TYR A 1 5 ? 9.230 38.977 41.414 1.00 26.05 ? 5 TYR A CD1 1 +ATOM 40 C CD2 . TYR A 1 5 ? 8.732 36.770 42.190 1.00 19.47 ? 5 TYR A CD2 1 +ATOM 41 C CE1 . TYR A 1 5 ? 10.509 38.868 41.918 1.00 25.37 ? 5 TYR A CE1 1 +ATOM 42 C CE2 . TYR A 1 5 ? 9.992 36.641 42.733 1.00 17.06 ? 5 TYR A CE2 1 +ATOM 43 C CZ . TYR A 1 5 ? 10.879 37.701 42.566 1.00 27.25 ? 5 TYR A CZ 1 +ATOM 44 O OH . TYR A 1 5 ? 12.147 37.609 43.068 1.00 29.15 ? 5 TYR A OH 1 +ATOM 45 N N . GLY A 1 6 ? 3.536 38.975 42.151 1.00 18.10 ? 6 GLY A N 1 +ATOM 46 C CA . GLY A 1 6 ? 2.246 39.233 41.544 1.00 17.86 ? 6 GLY A CA 1 +ATOM 47 C C . GLY A 1 6 ? 1.283 38.057 41.612 1.00 16.76 ? 6 GLY A C 1 +ATOM 48 O O . GLY A 1 6 ? 1.665 37.004 42.095 1.00 21.23 ? 6 GLY A O 1 +ATOM 49 N N . ASN A 1 7 ? 0.066 38.246 41.128 1.00 18.34 ? 7 ASN A N 1 +ATOM 50 C CA . ASN A 1 7 ? -1.004 37.265 41.133 1.00 17.57 ? 7 ASN A CA 1 +ATOM 51 C C . ASN A 1 7 ? -1.636 37.114 39.810 1.00 12.07 ? 7 ASN A C 1 +ATOM 52 O O . ASN A 1 7 ? -2.285 37.985 39.266 1.00 17.33 ? 7 ASN A O 1 +ATOM 53 C CB . ASN A 1 7 ? -2.154 37.581 42.128 1.00 23.09 ? 7 ASN A CB 1 +ATOM 54 C CG . ASN A 1 7 ? -3.202 36.462 42.289 1.00 39.57 ? 7 ASN A CG 1 +ATOM 55 O OD1 . ASN A 1 7 ? -3.680 35.754 41.381 1.00 33.84 ? 7 ASN A OD1 1 +ATOM 56 N ND2 . ASN A 1 7 ? -3.575 36.302 43.536 1.00 55.79 ? 7 ASN A ND2 1 +ATOM 57 N N . VAL A 1 8 ? -1.478 35.903 39.305 1.00 13.00 ? 8 VAL A N 1 +ATOM 58 C CA . VAL A 1 8 ? -1.927 35.598 38.013 1.00 12.76 ? 8 VAL A CA 1 +ATOM 59 C C . VAL A 1 8 ? -3.387 35.775 37.800 1.00 19.16 ? 8 VAL A C 1 +ATOM 60 O O . VAL A 1 8 ? -3.853 36.014 36.690 1.00 18.23 ? 8 VAL A O 1 +ATOM 61 C CB . VAL A 1 8 ? -1.318 34.253 37.685 1.00 21.17 ? 8 VAL A CB 1 +ATOM 62 C CG1 . VAL A 1 8 ? -2.091 33.051 38.175 1.00 22.87 ? 8 VAL A CG1 1 +ATOM 63 C CG2 . VAL A 1 8 ? -0.981 34.154 36.251 1.00 21.63 ? 8 VAL A CG2 1 +ATOM 64 N N . ASN A 1 9 ? -4.152 35.653 38.891 1.00 16.30 ? 9 ASN A N 1 +ATOM 65 C CA . ASN A 1 9 ? -5.587 35.800 38.776 1.00 16.23 ? 9 ASN A CA 1 +ATOM 66 C C . ASN A 1 9 ? -6.005 37.242 38.485 1.00 17.26 ? 9 ASN A C 1 +ATOM 67 O O . ASN A 1 9 ? -7.091 37.499 37.955 1.00 27.86 ? 9 ASN A O 1 +ATOM 68 C CB . ASN A 1 9 ? -6.245 35.273 40.070 1.00 19.64 ? 9 ASN A CB 1 +ATOM 69 C CG . ASN A 1 9 ? -6.451 33.758 40.042 1.00 22.37 ? 9 ASN A CG 1 +ATOM 70 O OD1 . ASN A 1 9 ? -6.443 33.082 41.064 1.00 48.73 ? 9 ASN A OD1 1 +ATOM 71 N ND2 . ASN A 1 9 ? -6.647 33.196 38.873 1.00 26.02 ? 9 ASN A ND2 1 +ATOM 72 N N . ARG A 1 10 ? -5.111 38.152 38.846 1.00 17.87 ? 10 ARG A N 1 +ATOM 73 C CA . ARG A 1 10 ? -5.324 39.567 38.648 1.00 13.64 ? 10 ARG A CA 1 +ATOM 74 C C . ARG A 1 10 ? -4.906 40.068 37.304 1.00 26.85 ? 10 ARG A C 1 +ATOM 75 O O . ARG A 1 10 ? -5.137 41.215 36.956 1.00 25.92 ? 10 ARG A O 1 +ATOM 76 C CB . ARG A 1 10 ? -4.787 40.439 39.737 1.00 16.02 ? 10 ARG A CB 1 +ATOM 77 C CG . ARG A 1 10 ? -5.464 40.042 41.039 1.00 31.35 ? 10 ARG A CG 1 +ATOM 78 C CD . ARG A 1 10 ? -5.158 41.033 42.141 1.00 37.43 ? 10 ARG A CD 1 +ATOM 79 N NE . ARG A 1 10 ? -3.726 41.252 42.294 1.00 40.63 ? 10 ARG A NE 1 +ATOM 80 C CZ . ARG A 1 10 ? -3.014 40.723 43.281 1.00 46.40 ? 10 ARG A CZ 1 +ATOM 81 N NH1 . ARG A 1 10 ? -3.639 39.951 44.201 1.00 44.83 ? 10 ARG A NH1 1 +ATOM 82 N NH2 . ARG A 1 10 ? -1.665 40.942 43.339 1.00 38.21 ? 10 ARG A NH2 1 +ATOM 83 N N . ILE A 1 11 ? -4.287 39.226 36.511 1.00 17.82 ? 11 ILE A N 1 +ATOM 84 C CA . ILE A 1 11 ? -3.844 39.641 35.167 1.00 12.40 ? 11 ILE A CA 1 +ATOM 85 C C . ILE A 1 11 ? -4.897 39.518 34.101 1.00 13.40 ? 11 ILE A C 1 +ATOM 86 O O . ILE A 1 11 ? -5.590 38.502 33.906 1.00 14.94 ? 11 ILE A O 1 +ATOM 87 C CB . ILE A 1 11 ? -2.539 38.928 34.750 1.00 14.13 ? 11 ILE A CB 1 +ATOM 88 C CG1 . ILE A 1 11 ? -1.491 39.094 35.821 1.00 13.42 ? 11 ILE A CG1 1 +ATOM 89 C CG2 . ILE A 1 11 ? -2.052 39.349 33.389 1.00 13.19 ? 11 ILE A CG2 1 +ATOM 90 C CD1 . ILE A 1 11 ? -0.165 38.319 35.632 1.00 13.68 ? 11 ILE A CD1 1 +ATOM 91 N N . ASP A 1 12 ? -5.028 40.579 33.342 1.00 11.36 ? 12 ASP A N 1 +ATOM 92 C CA . ASP A 1 12 ? -5.922 40.512 32.259 1.00 11.84 ? 12 ASP A CA 1 +ATOM 93 C C . ASP A 1 12 ? -5.249 39.689 31.168 1.00 15.79 ? 12 ASP A C 1 +ATOM 94 O O . ASP A 1 12 ? -4.056 39.761 30.920 1.00 21.03 ? 12 ASP A O 1 +ATOM 95 C CB . ASP A 1 12 ? -6.210 41.927 31.736 1.00 16.29 ? 12 ASP A CB 1 +ATOM 96 C CG . ASP A 1 12 ? -4.921 42.649 31.409 1.00 41.63 ? 12 ASP A CG 1 +ATOM 97 O OD1 . ASP A 1 12 ? -4.192 43.005 32.424 1.00 38.98 ? 12 ASP A OD1 1 +ATOM 98 O OD2 . ASP A 1 12 ? -4.564 42.859 30.279 1.00 45.60 ? 12 ASP A OD2 1 +ATOM 99 N N . THR A 1 13 ? -6.019 38.887 30.477 1.00 15.28 ? 13 THR A N 1 +ATOM 100 C CA . THR A 1 13 ? -5.553 38.030 29.392 1.00 9.40 ? 13 THR A CA 1 +ATOM 101 C C . THR A 1 13 ? -6.535 37.767 28.285 1.00 18.82 ? 13 THR A C 1 +ATOM 102 O O . THR A 1 13 ? -7.756 37.553 28.474 1.00 16.08 ? 13 THR A O 1 +ATOM 103 C CB . THR A 1 13 ? -5.055 36.696 29.962 1.00 11.14 ? 13 THR A CB 1 +ATOM 104 O OG1 . THR A 1 13 ? -4.854 35.915 28.838 1.00 13.41 ? 13 THR A OG1 1 +ATOM 105 C CG2 . THR A 1 13 ? -6.126 35.952 30.768 1.00 18.82 ? 13 THR A CG2 1 +ATOM 106 N N . THR A 1 14 ? -5.993 37.748 27.089 1.00 13.61 ? 14 THR A N 1 +ATOM 107 C CA . THR A 1 14 ? -6.776 37.450 25.933 1.00 10.53 ? 14 THR A CA 1 +ATOM 108 C C . THR A 1 14 ? -6.576 36.010 25.542 1.00 12.26 ? 14 THR A C 1 +ATOM 109 O O . THR A 1 14 ? -7.077 35.542 24.550 1.00 16.39 ? 14 THR A O 1 +ATOM 110 C CB . THR A 1 14 ? -6.438 38.364 24.744 1.00 16.34 ? 14 THR A CB 1 +ATOM 111 O OG1 . THR A 1 14 ? -5.027 38.404 24.608 1.00 20.98 ? 14 THR A OG1 1 +ATOM 112 C CG2 . THR A 1 14 ? -6.916 39.782 25.029 1.00 19.25 ? 14 THR A CG2 1 +ATOM 113 N N . GLY A 1 15 ? -5.797 35.324 26.279 1.00 10.24 ? 15 GLY A N 1 +ATOM 114 C CA . GLY A 1 15 ? -5.535 33.922 26.014 1.00 11.36 ? 15 GLY A CA 1 +ATOM 115 C C . GLY A 1 15 ? -4.768 33.604 24.740 1.00 17.50 ? 15 GLY A C 1 +ATOM 116 O O . GLY A 1 15 ? -4.103 34.451 24.121 1.00 14.49 ? 15 GLY A O 1 +ATOM 117 N N . ALA A 1 16 ? -4.924 32.350 24.344 1.00 13.05 ? 16 ALA A N 1 +ATOM 118 C CA . ALA A 1 16 ? -4.269 31.842 23.138 1.00 11.31 ? 16 ALA A CA 1 +ATOM 119 C C . ALA A 1 16 ? -4.705 32.481 21.870 1.00 18.48 ? 16 ALA A C 1 +ATOM 120 O O . ALA A 1 16 ? -5.909 32.665 21.660 1.00 19.72 ? 16 ALA A O 1 +ATOM 121 C CB . ALA A 1 16 ? -4.412 30.322 23.004 1.00 10.41 ? 16 ALA A CB 1 +ATOM 122 N N . SER A 1 17 ? -3.749 32.793 20.984 1.00 15.08 ? 17 SER A N 1 +ATOM 123 C CA . SER A 1 17 ? -4.130 33.294 19.705 1.00 14.95 ? 17 SER A CA 1 +ATOM 124 C C . SER A 1 17 ? -4.546 32.081 18.920 1.00 12.18 ? 17 SER A C 1 +ATOM 125 O O . SER A 1 17 ? -4.228 30.936 19.278 1.00 15.08 ? 17 SER A O 1 +ATOM 126 C CB . SER A 1 17 ? -2.963 34.004 18.978 1.00 19.34 ? 17 SER A CB 1 +ATOM 127 O OG . SER A 1 17 ? -2.104 32.987 18.515 1.00 19.78 ? 17 SER A OG 1 +ATOM 128 N N . CYS A 1 18 ? -5.227 32.271 17.796 1.00 18.32 ? 18 CYS A N 1 +ATOM 129 C CA . CYS A 1 18 ? -5.614 31.151 16.952 1.00 15.17 ? 18 CYS A CA 1 +ATOM 130 C C . CYS A 1 18 ? -4.390 30.389 16.476 1.00 13.80 ? 18 CYS A C 1 +ATOM 131 O O . CYS A 1 18 ? -4.464 29.163 16.235 1.00 18.10 ? 18 CYS A O 1 +ATOM 132 C CB . CYS A 1 18 ? -6.551 31.530 15.815 1.00 21.04 ? 18 CYS A CB 1 +ATOM 133 S SG . CYS A 1 18 ? -8.129 32.161 16.490 1.00 25.41 ? 18 CYS A SG 1 +ATOM 134 N N . LYS A 1 19 ? -3.262 31.133 16.400 1.00 20.31 ? 19 LYS A N 1 +ATOM 135 C CA . LYS A 1 19 ? -1.993 30.530 15.991 1.00 19.92 ? 19 LYS A CA 1 +ATOM 136 C C . LYS A 1 19 ? -1.532 29.489 16.964 1.00 19.78 ? 19 LYS A C 1 +ATOM 137 O O . LYS A 1 19 ? -0.816 28.569 16.604 1.00 18.86 ? 19 LYS A O 1 +ATOM 138 C CB . LYS A 1 19 ? -0.883 31.539 15.700 1.00 27.85 ? 19 LYS A CB 1 +ATOM 139 C CG . LYS A 1 19 ? -1.171 32.554 14.616 1.00 43.27 ? 19 LYS A CG 1 +ATOM 140 C CD . LYS A 1 19 ? -0.078 33.632 14.588 1.00 50.83 ? 19 LYS A CD 1 +ATOM 141 C CE . LYS A 1 19 ? -0.507 35.023 14.117 1.00 49.23 ? 19 LYS A CE 1 +ATOM 142 N NZ . LYS A 1 19 ? 0.358 36.174 14.491 1.00 39.78 ? 19 LYS A NZ 1 +ATOM 143 N N . THR A 1 20 ? -1.931 29.615 18.215 1.00 16.70 ? 20 THR A N 1 +ATOM 144 C CA . THR A 1 20 ? -1.544 28.607 19.111 1.00 9.82 ? 20 THR A CA 1 +ATOM 145 C C . THR A 1 20 ? -2.626 27.542 19.172 1.00 14.32 ? 20 THR A C 1 +ATOM 146 O O . THR A 1 20 ? -2.372 26.320 19.243 1.00 16.02 ? 20 THR A O 1 +ATOM 147 C CB . THR A 1 20 ? -1.395 29.244 20.471 1.00 15.87 ? 20 THR A CB 1 +ATOM 148 O OG1 . THR A 1 20 ? -0.279 30.094 20.396 1.00 15.56 ? 20 THR A OG1 1 +ATOM 149 C CG2 . THR A 1 20 ? -1.284 28.236 21.612 1.00 12.40 ? 20 THR A CG2 1 +ATOM 150 N N . ALA A 1 21 ? -3.888 28.004 19.168 1.00 16.97 ? 21 ALA A N 1 +ATOM 151 C CA . ALA A 1 21 ? -4.997 27.063 19.336 1.00 15.37 ? 21 ALA A CA 1 +ATOM 152 C C . ALA A 1 21 ? -5.228 26.032 18.306 1.00 15.80 ? 21 ALA A C 1 +ATOM 153 O O . ALA A 1 21 ? -5.457 24.861 18.580 1.00 19.43 ? 21 ALA A O 1 +ATOM 154 C CB . ALA A 1 21 ? -6.289 27.841 19.505 1.00 20.49 ? 21 ALA A CB 1 +ATOM 155 N N . LYS A 1 22 ? -5.213 26.499 17.100 1.00 18.34 ? 22 LYS A N 1 +ATOM 156 C CA . LYS A 1 22 ? -5.493 25.622 15.994 1.00 21.42 ? 22 LYS A CA 1 +ATOM 157 C C . LYS A 1 22 ? -4.679 24.382 15.827 1.00 22.32 ? 22 LYS A C 1 +ATOM 158 O O . LYS A 1 22 ? -5.283 23.312 15.643 1.00 24.13 ? 22 LYS A O 1 +ATOM 159 C CB . LYS A 1 22 ? -5.583 26.349 14.700 1.00 38.99 ? 22 LYS A CB 1 +ATOM 160 C CG . LYS A 1 22 ? -6.987 26.163 14.208 1.00 53.36 ? 22 LYS A CG 1 +ATOM 161 C CD . LYS A 1 22 ? -7.551 27.490 13.737 1.00 46.23 ? 22 LYS A CD 1 +ATOM 162 C CE . LYS A 1 22 ? -8.698 27.970 14.612 1.00 49.97 ? 22 LYS A CE 1 +ATOM 163 N NZ . LYS A 1 22 ? -9.306 29.201 14.104 1.00 49.60 ? 22 LYS A NZ 1 +ATOM 164 N N . PRO A 1 23 ? -3.349 24.576 15.854 1.00 19.34 ? 23 PRO A N 1 +ATOM 165 C CA . PRO A 1 23 ? -2.384 23.518 15.739 1.00 25.68 ? 23 PRO A CA 1 +ATOM 166 C C . PRO A 1 23 ? -2.608 22.527 16.832 1.00 25.93 ? 23 PRO A C 1 +ATOM 167 O O . PRO A 1 23 ? -2.295 21.347 16.652 1.00 30.25 ? 23 PRO A O 1 +ATOM 168 C CB . PRO A 1 23 ? -1.012 24.119 15.879 1.00 22.58 ? 23 PRO A CB 1 +ATOM 169 C CG . PRO A 1 23 ? -1.209 25.596 15.612 1.00 29.93 ? 23 PRO A CG 1 +ATOM 170 C CD . PRO A 1 23 ? -2.682 25.898 15.867 1.00 21.66 ? 23 PRO A CD 1 +ATOM 171 N N . GLU A 1 24 ? -3.171 23.001 17.958 1.00 25.61 ? 24 GLU A N 1 +ATOM 172 C CA . GLU A 1 24 ? -3.495 22.129 19.080 1.00 22.18 ? 24 GLU A CA 1 +ATOM 173 C C . GLU A 1 24 ? -4.786 21.377 18.863 1.00 21.67 ? 24 GLU A C 1 +ATOM 174 O O . GLU A 1 24 ? -5.241 20.537 19.618 1.00 28.06 ? 24 GLU A O 1 +ATOM 175 C CB . GLU A 1 24 ? -3.520 22.856 20.403 1.00 24.63 ? 24 GLU A CB 1 +ATOM 176 C CG . GLU A 1 24 ? -2.157 23.474 20.710 1.00 22.48 ? 24 GLU A CG 1 +ATOM 177 C CD . GLU A 1 24 ? -1.228 22.422 21.216 1.00 36.40 ? 24 GLU A CD 1 +ATOM 178 O OE1 . GLU A 1 24 ? -1.607 21.279 21.409 1.00 35.54 ? 24 GLU A OE1 1 +ATOM 179 O OE2 . GLU A 1 24 ? 0.021 22.838 21.352 1.00 25.03 ? 24 GLU A OE2 1 +ATOM 180 N N . GLY A 1 25 ? -5.366 21.659 17.745 1.00 18.83 ? 25 GLY A N 1 +ATOM 181 C CA . GLY A 1 25 ? -6.548 20.959 17.355 1.00 21.07 ? 25 GLY A CA 1 +ATOM 182 C C . GLY A 1 25 ? -7.878 21.539 17.757 1.00 51.70 ? 25 GLY A C 1 +ATOM 183 O O . GLY A 1 25 ? -8.875 20.823 17.664 1.00 29.07 ? 25 GLY A O 1 +ATOM 184 N N . LEU A 1 26 ? -7.898 22.795 18.193 1.00 23.84 ? 26 LEU A N 1 +ATOM 185 C CA . LEU A 1 26 ? -9.160 23.382 18.625 1.00 19.45 ? 26 LEU A CA 1 +ATOM 186 C C . LEU A 1 26 ? -9.692 24.241 17.554 1.00 25.19 ? 26 LEU A C 1 +ATOM 187 O O . LEU A 1 26 ? -8.970 24.759 16.697 1.00 30.72 ? 26 LEU A O 1 +ATOM 188 C CB . LEU A 1 26 ? -9.083 24.163 19.943 1.00 18.67 ? 26 LEU A CB 1 +ATOM 189 C CG . LEU A 1 26 ? -8.341 23.408 21.036 1.00 23.65 ? 26 LEU A CG 1 +ATOM 190 C CD1 . LEU A 1 26 ? -8.019 24.321 22.191 1.00 29.25 ? 26 LEU A CD1 1 +ATOM 191 C CD2 . LEU A 1 26 ? -9.200 22.276 21.570 1.00 23.43 ? 26 LEU A CD2 1 +ATOM 192 N N . SER A 1 27 ? -10.991 24.416 17.635 1.00 26.93 ? 27 SER A N 1 +ATOM 193 C CA . SER A 1 27 ? -11.652 25.246 16.668 1.00 32.97 ? 27 SER A CA 1 +ATOM 194 C C . SER A 1 27 ? -11.891 26.666 17.177 1.00 24.55 ? 27 SER A C 1 +ATOM 195 O O . SER A 1 27 ? -12.427 27.522 16.519 1.00 29.81 ? 27 SER A O 1 +ATOM 196 C CB . SER A 1 27 ? -12.980 24.605 16.220 1.00 43.48 ? 27 SER A CB 1 +ATOM 197 O OG . SER A 1 27 ? -13.867 24.287 17.321 1.00 43.15 ? 27 SER A OG 1 +ATOM 198 N N . TYR A 1 28 ? -11.558 26.961 18.373 1.00 17.47 ? 28 TYR A N 1 +ATOM 199 C CA . TYR A 1 28 ? -11.837 28.283 18.875 1.00 11.41 ? 28 TYR A CA 1 +ATOM 200 C C . TYR A 1 28 ? -10.519 28.677 19.528 1.00 17.40 ? 28 TYR A C 1 +ATOM 201 O O . TYR A 1 28 ? -9.632 27.842 19.696 1.00 15.50 ? 28 TYR A O 1 +ATOM 202 C CB . TYR A 1 28 ? -13.038 28.267 19.912 1.00 15.53 ? 28 TYR A CB 1 +ATOM 203 C CG . TYR A 1 28 ? -12.853 27.213 20.962 1.00 14.33 ? 28 TYR A CG 1 +ATOM 204 C CD1 . TYR A 1 28 ? -13.076 25.855 20.723 1.00 13.76 ? 28 TYR A CD1 1 +ATOM 205 C CD2 . TYR A 1 28 ? -12.348 27.526 22.206 1.00 11.77 ? 28 TYR A CD2 1 +ATOM 206 C CE1 . TYR A 1 28 ? -12.799 24.869 21.657 1.00 15.21 ? 28 TYR A CE1 1 +ATOM 207 C CE2 . TYR A 1 28 ? -12.065 26.570 23.178 1.00 13.77 ? 28 TYR A CE2 1 +ATOM 208 C CZ . TYR A 1 28 ? -12.326 25.236 22.895 1.00 13.96 ? 28 TYR A CZ 1 +ATOM 209 O OH . TYR A 1 28 ? -12.072 24.308 23.823 1.00 16.49 ? 28 TYR A OH 1 +ATOM 210 N N . CYS A 1 29 ? -10.413 29.960 19.871 1.00 14.51 ? 29 CYS A N 1 +ATOM 211 C CA . CYS A 1 29 ? -9.221 30.512 20.431 1.00 17.36 ? 29 CYS A CA 1 +ATOM 212 C C . CYS A 1 29 ? -9.516 31.246 21.727 1.00 20.80 ? 29 CYS A C 1 +ATOM 213 O O . CYS A 1 29 ? -10.581 31.137 22.282 1.00 22.59 ? 29 CYS A O 1 +ATOM 214 C CB . CYS A 1 29 ? -8.605 31.408 19.341 1.00 15.47 ? 29 CYS A CB 1 +ATOM 215 S SG . CYS A 1 29 ? -8.809 30.662 17.729 1.00 24.93 ? 29 CYS A SG 1 +ATOM 216 N N . GLY A 1 30 ? -8.584 31.982 22.249 1.00 13.50 ? 30 GLY A N 1 +ATOM 217 C CA . GLY A 1 30 ? -8.793 32.731 23.463 1.00 11.92 ? 30 GLY A CA 1 +ATOM 218 C C . GLY A 1 30 ? -8.595 32.015 24.752 1.00 11.00 ? 30 GLY A C 1 +ATOM 219 O O . GLY A 1 30 ? -8.003 30.953 24.829 1.00 13.70 ? 30 GLY A O 1 +ATOM 220 N N . VAL A 1 31 ? -9.103 32.647 25.808 1.00 13.63 ? 31 VAL A N 1 +ATOM 221 C CA . VAL A 1 31 ? -8.999 32.168 27.147 1.00 9.69 ? 31 VAL A CA 1 +ATOM 222 C C . VAL A 1 31 ? -9.460 30.739 27.343 1.00 11.39 ? 31 VAL A C 1 +ATOM 223 O O . VAL A 1 31 ? -8.808 29.946 28.007 1.00 10.28 ? 31 VAL A O 1 +ATOM 224 C CB . VAL A 1 31 ? -9.657 33.152 28.095 1.00 18.16 ? 31 VAL A CB 1 +ATOM 225 C CG1 . VAL A 1 31 ? -9.503 32.599 29.471 1.00 11.85 ? 31 VAL A CG1 1 +ATOM 226 C CG2 . VAL A 1 31 ? -8.887 34.472 28.070 1.00 18.57 ? 31 VAL A CG2 1 +ATOM 227 N N . SER A 1 32 ? -10.607 30.423 26.770 1.00 11.13 ? 32 SER A N 1 +ATOM 228 C CA . SER A 1 32 ? -11.139 29.095 26.950 1.00 9.85 ? 32 SER A CA 1 +ATOM 229 C C . SER A 1 32 ? -10.284 28.075 26.292 1.00 8.87 ? 32 SER A C 1 +ATOM 230 O O . SER A 1 32 ? -10.170 26.941 26.751 1.00 11.42 ? 32 SER A O 1 +ATOM 231 C CB . SER A 1 32 ? -12.619 28.961 26.606 1.00 13.93 ? 32 SER A CB 1 +ATOM 232 O OG . SER A 1 32 ? -12.856 29.325 25.274 1.00 17.71 ? 32 SER A OG 1 +ATOM 233 N N . ALA A 1 33 ? -9.684 28.453 25.164 1.00 13.56 ? 33 ALA A N 1 +ATOM 234 C CA . ALA A 1 33 ? -8.805 27.514 24.464 1.00 14.32 ? 33 ALA A CA 1 +ATOM 235 C C . ALA A 1 33 ? -7.570 27.200 25.284 1.00 8.68 ? 33 ALA A C 1 +ATOM 236 O O . ALA A 1 33 ? -7.156 26.030 25.458 1.00 10.71 ? 33 ALA A O 1 +ATOM 237 C CB . ALA A 1 33 ? -8.475 28.083 23.101 1.00 14.47 ? 33 ALA A CB 1 +ATOM 238 N N . SER A 1 34 ? -6.993 28.247 25.859 1.00 12.95 ? 34 SER A N 1 +ATOM 239 C CA . SER A 1 34 ? -5.828 28.121 26.714 1.00 8.25 ? 34 SER A CA 1 +ATOM 240 C C . SER A 1 34 ? -6.117 27.164 27.812 1.00 10.21 ? 34 SER A C 1 +ATOM 241 O O . SER A 1 34 ? -5.293 26.303 28.182 1.00 12.52 ? 34 SER A O 1 +ATOM 242 C CB . SER A 1 34 ? -5.371 29.395 27.357 1.00 12.76 ? 34 SER A CB 1 +ATOM 243 O OG . SER A 1 34 ? -4.890 30.323 26.363 1.00 15.26 ? 34 SER A OG 1 +ATOM 244 N N . LYS A 1 35 ? -7.317 27.358 28.409 1.00 12.31 ? 35 LYS A N 1 +ATOM 245 C CA . LYS A 1 35 ? -7.713 26.481 29.487 1.00 11.80 ? 35 LYS A CA 1 +ATOM 246 C C . LYS A 1 35 ? -7.948 25.048 29.075 1.00 5.97 ? 35 LYS A C 1 +ATOM 247 O O . LYS A 1 35 ? -7.553 24.107 29.750 1.00 14.19 ? 35 LYS A O 1 +ATOM 248 C CB . LYS A 1 35 ? -8.867 27.089 30.276 1.00 9.53 ? 35 LYS A CB 1 +ATOM 249 C CG . LYS A 1 35 ? -8.503 28.447 30.813 1.00 10.40 ? 35 LYS A CG 1 +ATOM 250 C CD . LYS A 1 35 ? -9.548 28.894 31.839 1.00 18.03 ? 35 LYS A CD 1 +ATOM 251 C CE . LYS A 1 35 ? -9.316 30.275 32.337 1.00 23.63 ? 35 LYS A CE 1 +ATOM 252 N NZ . LYS A 1 35 ? -9.775 30.347 33.722 1.00 43.00 ? 35 LYS A NZ 1 +ATOM 253 N N . LYS A 1 36 ? -8.530 24.804 27.926 1.00 10.64 ? 36 LYS A N 1 +ATOM 254 C CA . LYS A 1 36 ? -8.691 23.432 27.449 1.00 11.12 ? 36 LYS A CA 1 +ATOM 255 C C . LYS A 1 36 ? -7.312 22.742 27.237 1.00 14.15 ? 36 LYS A C 1 +ATOM 256 O O . LYS A 1 36 ? -7.076 21.601 27.600 1.00 13.44 ? 36 LYS A O 1 +ATOM 257 C CB . LYS A 1 36 ? -9.479 23.531 26.163 1.00 10.82 ? 36 LYS A CB 1 +ATOM 258 C CG . LYS A 1 36 ? -9.716 22.194 25.519 1.00 14.11 ? 36 LYS A CG 1 +ATOM 259 C CD . LYS A 1 36 ? -10.023 21.154 26.546 1.00 26.83 ? 36 LYS A CD 1 +ATOM 260 C CE . LYS A 1 36 ? -10.746 19.949 26.008 1.00 30.97 ? 36 LYS A CE 1 +ATOM 261 N NZ . LYS A 1 36 ? -11.486 19.250 27.095 1.00 36.32 ? 36 LYS A NZ 1 +ATOM 262 N N . ILE A 1 37 ? -6.362 23.465 26.672 1.00 13.35 ? 37 ILE A N 1 +ATOM 263 C CA . ILE A 1 37 ? -5.021 22.941 26.426 1.00 12.11 ? 37 ILE A CA 1 +ATOM 264 C C . ILE A 1 37 ? -4.360 22.618 27.717 1.00 11.32 ? 37 ILE A C 1 +ATOM 265 O O . ILE A 1 37 ? -3.753 21.558 27.920 1.00 12.87 ? 37 ILE A O 1 +ATOM 266 C CB . ILE A 1 37 ? -4.196 23.914 25.551 1.00 9.12 ? 37 ILE A CB 1 +ATOM 267 C CG1 . ILE A 1 37 ? -4.805 24.089 24.193 1.00 7.95 ? 37 ILE A CG1 1 +ATOM 268 C CG2 . ILE A 1 37 ? -2.807 23.327 25.390 1.00 13.86 ? 37 ILE A CG2 1 +ATOM 269 C CD1 . ILE A 1 37 ? -4.336 25.300 23.378 1.00 14.28 ? 37 ILE A CD1 1 +ATOM 270 N N . ALA A 1 38 ? -4.477 23.514 28.662 1.00 10.62 ? 38 ALA A N 1 +ATOM 271 C CA . ALA A 1 38 ? -3.938 23.278 29.955 1.00 9.54 ? 38 ALA A CA 1 +ATOM 272 C C . ALA A 1 38 ? -4.517 22.044 30.585 1.00 9.56 ? 38 ALA A C 1 +ATOM 273 O O . ALA A 1 38 ? -3.819 21.291 31.236 1.00 13.73 ? 38 ALA A O 1 +ATOM 274 C CB . ALA A 1 38 ? -4.174 24.465 30.847 1.00 13.37 ? 38 ALA A CB 1 +ATOM 275 N N . GLU A 1 39 ? -5.812 21.871 30.376 1.00 11.86 ? 39 GLU A N 1 +ATOM 276 C CA . GLU A 1 39 ? -6.513 20.705 30.911 1.00 14.00 ? 39 GLU A CA 1 +ATOM 277 C C . GLU A 1 39 ? -5.972 19.436 30.284 1.00 10.63 ? 39 GLU A C 1 +ATOM 278 O O . GLU A 1 39 ? -5.755 18.473 31.000 1.00 14.83 ? 39 GLU A O 1 +ATOM 279 C CB . GLU A 1 39 ? -8.070 20.818 30.826 1.00 12.67 ? 39 GLU A CB 1 +ATOM 280 C CG . GLU A 1 39 ? -8.823 19.541 31.229 1.00 12.44 ? 39 GLU A CG 1 +ATOM 281 C CD . GLU A 1 39 ? -10.286 19.653 30.912 1.00 20.34 ? 39 GLU A CD 1 +ATOM 282 O OE1 . GLU A 1 39 ? -10.553 19.453 29.661 1.00 29.74 ? 39 GLU A OE1 1 +ATOM 283 O OE2 . GLU A 1 39 ? -11.068 20.018 31.746 1.00 27.18 ? 39 GLU A OE2 1 +ATOM 284 N N . ARG A 1 40 ? -5.704 19.419 28.977 1.00 9.79 ? 40 ARG A N 1 +ATOM 285 C CA . ARG A 1 40 ? -5.158 18.256 28.329 1.00 11.47 ? 40 ARG A CA 1 +ATOM 286 C C . ARG A 1 40 ? -3.799 17.858 28.888 1.00 10.96 ? 40 ARG A C 1 +ATOM 287 O O . ARG A 1 40 ? -3.393 16.690 28.815 1.00 14.94 ? 40 ARG A O 1 +ATOM 288 C CB . ARG A 1 40 ? -4.915 18.695 26.924 1.00 15.07 ? 40 ARG A CB 1 +ATOM 289 C CG . ARG A 1 40 ? -5.768 18.127 25.863 1.00 35.14 ? 40 ARG A CG 1 +ATOM 290 C CD . ARG A 1 40 ? -5.864 19.138 24.758 1.00 35.43 ? 40 ARG A CD 1 +ATOM 291 N NE . ARG A 1 40 ? -6.998 18.932 23.908 1.00 41.94 ? 40 ARG A NE 1 +ATOM 292 C CZ . ARG A 1 40 ? -6.910 19.292 22.637 1.00 39.37 ? 40 ARG A CZ 1 +ATOM 293 N NH1 . ARG A 1 40 ? -5.779 19.820 22.163 1.00 40.27 ? 40 ARG A NH1 1 +ATOM 294 N NH2 . ARG A 1 40 ? -7.951 19.114 21.835 1.00 44.08 ? 40 ARG A NH2 1 +ATOM 295 N N . ASP A 1 41 ? -3.077 18.795 29.464 1.00 11.39 ? 41 ASP A N 1 +ATOM 296 C CA . ASP A 1 41 ? -1.757 18.547 30.015 1.00 11.03 ? 41 ASP A CA 1 +ATOM 297 C C . ASP A 1 41 ? -1.729 18.313 31.478 1.00 9.65 ? 41 ASP A C 1 +ATOM 298 O O . ASP A 1 41 ? -0.663 18.077 32.051 1.00 14.98 ? 41 ASP A O 1 +ATOM 299 C CB . ASP A 1 41 ? -0.755 19.725 29.759 1.00 13.56 ? 41 ASP A CB 1 +ATOM 300 C CG . ASP A 1 41 ? -0.353 20.021 28.347 1.00 11.51 ? 41 ASP A CG 1 +ATOM 301 O OD1 . ASP A 1 41 ? -0.578 19.032 27.593 1.00 11.02 ? 41 ASP A OD1 1 +ATOM 302 O OD2 . ASP A 1 41 ? 0.039 21.107 27.952 1.00 11.81 ? 41 ASP A OD2 1 +ATOM 303 N N . LEU A 1 42 ? -2.890 18.393 32.157 1.00 11.84 ? 42 LEU A N 1 +ATOM 304 C CA . LEU A 1 42 ? -2.946 18.242 33.604 1.00 9.06 ? 42 LEU A CA 1 +ATOM 305 C C . LEU A 1 42 ? -2.407 16.968 34.139 1.00 5.02 ? 42 LEU A C 1 +ATOM 306 O O . LEU A 1 42 ? -1.602 16.967 35.081 1.00 12.19 ? 42 LEU A O 1 +ATOM 307 C CB . LEU A 1 42 ? -4.411 18.535 34.065 1.00 12.93 ? 42 LEU A CB 1 +ATOM 308 C CG . LEU A 1 42 ? -4.680 18.476 35.561 1.00 13.11 ? 42 LEU A CG 1 +ATOM 309 C CD1 . LEU A 1 42 ? -3.849 19.436 36.358 1.00 14.20 ? 42 LEU A CD1 1 +ATOM 310 C CD2 . LEU A 1 42 ? -6.162 18.746 35.858 1.00 19.55 ? 42 LEU A CD2 1 +ATOM 311 N N . GLN A 1 43 ? -2.806 15.849 33.585 1.00 12.99 ? 43 GLN A N 1 +ATOM 312 C CA . GLN A 1 43 ? -2.289 14.548 34.043 1.00 16.43 ? 43 GLN A CA 1 +ATOM 313 C C . GLN A 1 43 ? -0.765 14.415 33.975 1.00 15.21 ? 43 GLN A C 1 +ATOM 314 O O . GLN A 1 43 ? -0.112 13.917 34.894 1.00 16.07 ? 43 GLN A O 1 +ATOM 315 C CB . GLN A 1 43 ? -2.988 13.360 33.362 1.00 17.96 ? 43 GLN A CB 1 +ATOM 316 C CG . GLN A 1 43 ? -4.536 13.508 33.508 1.00 39.16 ? 43 GLN A CG 1 +ATOM 317 C CD . GLN A 1 43 ? -5.041 13.572 34.960 1.00 45.27 ? 43 GLN A CD 1 +ATOM 318 O OE1 . GLN A 1 43 ? -4.688 12.685 35.746 1.00 45.09 ? 43 GLN A OE1 1 +ATOM 319 N NE2 . GLN A 1 43 ? -5.843 14.598 35.347 1.00 42.73 ? 43 GLN A NE2 1 +ATOM 320 N N . ALA A 1 44 ? -0.170 14.909 32.893 1.00 14.43 ? 44 ALA A N 1 +ATOM 321 C CA . ALA A 1 44 ? 1.294 14.841 32.814 1.00 14.29 ? 44 ALA A CA 1 +ATOM 322 C C . ALA A 1 44 ? 1.910 15.844 33.736 1.00 10.97 ? 44 ALA A C 1 +ATOM 323 O O . ALA A 1 44 ? 2.924 15.608 34.361 1.00 14.83 ? 44 ALA A O 1 +ATOM 324 C CB . ALA A 1 44 ? 1.706 15.057 31.377 1.00 13.66 ? 44 ALA A CB 1 +ATOM 325 N N . MET A 1 45 ? 1.296 17.004 33.852 1.00 11.26 ? 45 MET A N 1 +ATOM 326 C CA . MET A 1 45 ? 1.789 18.012 34.744 1.00 10.07 ? 45 MET A CA 1 +ATOM 327 C C . MET A 1 45 ? 1.832 17.498 36.155 1.00 11.88 ? 45 MET A C 1 +ATOM 328 O O . MET A 1 45 ? 2.775 17.722 36.916 1.00 16.11 ? 45 MET A O 1 +ATOM 329 C CB . MET A 1 45 ? 0.885 19.271 34.665 1.00 11.65 ? 45 MET A CB 1 +ATOM 330 C CG . MET A 1 45 ? 1.495 20.541 35.251 1.00 12.74 ? 45 MET A CG 1 +ATOM 331 S SD . MET A 1 45 ? 2.877 21.187 34.244 1.00 12.48 ? 45 MET A SD 1 +ATOM 332 C CE . MET A 1 45 ? 1.934 21.695 32.869 1.00 7.53 ? 45 MET A CE 1 +ATOM 333 N N . ASP A 1 46 ? 0.764 16.769 36.513 1.00 14.50 ? 46 ASP A N 1 +ATOM 334 C CA . ASP A 1 46 ? 0.625 16.229 37.864 1.00 17.06 ? 46 ASP A CA 1 +ATOM 335 C C . ASP A 1 46 ? 1.794 15.382 38.344 1.00 12.98 ? 46 ASP A C 1 +ATOM 336 O O . ASP A 1 46 ? 2.017 15.249 39.573 1.00 15.32 ? 46 ASP A O 1 +ATOM 337 C CB . ASP A 1 46 ? -0.757 15.582 38.133 1.00 14.70 ? 46 ASP A CB 1 +ATOM 338 C CG . ASP A 1 46 ? -1.972 16.470 38.318 1.00 13.45 ? 46 ASP A CG 1 +ATOM 339 O OD1 . ASP A 1 46 ? -1.738 17.731 38.538 1.00 17.53 ? 46 ASP A OD1 1 +ATOM 340 O OD2 . ASP A 1 46 ? -3.111 16.029 38.242 1.00 22.48 ? 46 ASP A OD2 1 +ATOM 341 N N . ARG A 1 47 ? 2.536 14.829 37.362 1.00 15.55 ? 47 ARG A N 1 +ATOM 342 C CA . ARG A 1 47 ? 3.726 14.028 37.671 1.00 20.65 ? 47 ARG A CA 1 +ATOM 343 C C . ARG A 1 47 ? 4.803 14.852 38.298 1.00 21.38 ? 47 ARG A C 1 +ATOM 344 O O . ARG A 1 47 ? 5.637 14.344 39.027 1.00 23.15 ? 47 ARG A O 1 +ATOM 345 C CB . ARG A 1 47 ? 4.410 13.397 36.477 1.00 18.03 ? 47 ARG A CB 1 +ATOM 346 C CG . ARG A 1 47 ? 3.462 12.498 35.729 1.00 38.93 ? 47 ARG A CG 1 +ATOM 347 C CD . ARG A 1 47 ? 4.279 11.529 34.852 1.00 57.25 ? 47 ARG A CD 1 +ATOM 348 N NE . ARG A 1 47 ? 3.831 11.471 33.478 1.00 62.36 ? 47 ARG A NE 1 +ATOM 349 C CZ . ARG A 1 47 ? 4.001 12.468 32.611 1.00 57.68 ? 47 ARG A CZ 1 +ATOM 350 N NH1 . ARG A 1 47 ? 4.630 13.613 32.959 1.00 42.19 ? 47 ARG A NH1 1 +ATOM 351 N NH2 . ARG A 1 47 ? 3.521 12.292 31.380 1.00 54.69 ? 47 ARG A NH2 1 +ATOM 352 N N . TYR A 1 48 ? 4.776 16.160 38.020 1.00 16.28 ? 48 TYR A N 1 +ATOM 353 C CA . TYR A 1 48 ? 5.759 17.079 38.517 1.00 20.83 ? 48 TYR A CA 1 +ATOM 354 C C . TYR A 1 48 ? 5.234 18.083 39.530 1.00 16.30 ? 48 TYR A C 1 +ATOM 355 O O . TYR A 1 48 ? 5.943 18.996 39.938 1.00 16.51 ? 48 TYR A O 1 +ATOM 356 C CB . TYR A 1 48 ? 6.359 17.870 37.311 1.00 20.82 ? 48 TYR A CB 1 +ATOM 357 C CG . TYR A 1 48 ? 6.826 16.910 36.267 1.00 15.18 ? 48 TYR A CG 1 +ATOM 358 C CD1 . TYR A 1 48 ? 7.880 16.052 36.539 1.00 15.99 ? 48 TYR A CD1 1 +ATOM 359 C CD2 . TYR A 1 48 ? 6.199 16.837 35.049 1.00 16.08 ? 48 TYR A CD2 1 +ATOM 360 C CE1 . TYR A 1 48 ? 8.320 15.128 35.595 1.00 18.18 ? 48 TYR A CE1 1 +ATOM 361 C CE2 . TYR A 1 48 ? 6.645 15.934 34.090 1.00 14.47 ? 48 TYR A CE2 1 +ATOM 362 C CZ . TYR A 1 48 ? 7.696 15.075 34.380 1.00 19.29 ? 48 TYR A CZ 1 +ATOM 363 O OH . TYR A 1 48 ? 8.140 14.153 33.485 1.00 24.80 ? 48 TYR A OH 1 +ATOM 364 N N . LYS A 1 49 ? 3.982 17.931 39.925 1.00 16.42 ? 49 LYS A N 1 +ATOM 365 C CA . LYS A 1 49 ? 3.364 18.861 40.831 1.00 15.00 ? 49 LYS A CA 1 +ATOM 366 C C . LYS A 1 49 ? 4.104 19.180 42.050 1.00 13.42 ? 49 LYS A C 1 +ATOM 367 O O . LYS A 1 49 ? 4.267 20.348 42.435 1.00 13.74 ? 49 LYS A O 1 +ATOM 368 C CB . LYS A 1 49 ? 1.908 18.510 41.046 1.00 15.93 ? 49 LYS A CB 1 +ATOM 369 C CG . LYS A 1 49 ? 1.090 19.529 41.813 1.00 16.97 ? 49 LYS A CG 1 +ATOM 370 C CD . LYS A 1 49 ? -0.398 19.160 41.729 1.00 19.48 ? 49 LYS A CD 1 +ATOM 371 C CE . LYS A 1 49 ? -1.286 20.028 42.609 1.00 19.07 ? 49 LYS A CE 1 +ATOM 372 N NZ . LYS A 1 49 ? -2.719 19.704 42.427 1.00 27.63 ? 49 LYS A NZ 1 +ATOM 373 N N . THR A 1 50 ? 4.601 18.171 42.669 1.00 14.57 ? 50 THR A N 1 +ATOM 374 C CA . THR A 1 50 ? 5.311 18.450 43.876 1.00 17.70 ? 50 THR A CA 1 +ATOM 375 C C . THR A 1 50 ? 6.523 19.300 43.693 1.00 11.68 ? 50 THR A C 1 +ATOM 376 O O . THR A 1 50 ? 6.785 20.209 44.464 1.00 16.45 ? 50 THR A O 1 +ATOM 377 C CB . THR A 1 50 ? 5.591 17.214 44.729 1.00 26.35 ? 50 THR A CB 1 +ATOM 378 O OG1 . THR A 1 50 ? 6.316 16.290 43.956 1.00 57.82 ? 50 THR A OG1 1 +ATOM 379 C CG2 . THR A 1 50 ? 4.245 16.591 45.035 1.00 23.90 ? 50 THR A CG2 1 +ATOM 380 N N . ILE A 1 51 ? 7.262 19.003 42.642 1.00 18.53 ? 51 ILE A N 1 +ATOM 381 C CA . ILE A 1 51 ? 8.506 19.740 42.323 1.00 16.48 ? 51 ILE A CA 1 +ATOM 382 C C . ILE A 1 51 ? 8.216 21.169 41.901 1.00 13.07 ? 51 ILE A C 1 +ATOM 383 O O . ILE A 1 51 ? 8.884 22.111 42.361 1.00 15.13 ? 51 ILE A O 1 +ATOM 384 C CB . ILE A 1 51 ? 9.446 18.969 41.383 1.00 20.11 ? 51 ILE A CB 1 +ATOM 385 C CG1 . ILE A 1 51 ? 10.505 19.912 40.888 1.00 26.36 ? 51 ILE A CG1 1 +ATOM 386 C CG2 . ILE A 1 51 ? 8.688 18.514 40.190 1.00 35.78 ? 51 ILE A CG2 1 +ATOM 387 C CD1 . ILE A 1 51 ? 11.264 19.346 39.700 1.00 55.09 ? 51 ILE A CD1 1 +ATOM 388 N N . ILE A 1 52 ? 7.184 21.300 41.070 1.00 11.72 ? 52 ILE A N 1 +ATOM 389 C CA . ILE A 1 52 ? 6.769 22.627 40.624 1.00 12.01 ? 52 ILE A CA 1 +ATOM 390 C C . ILE A 1 52 ? 6.426 23.485 41.813 1.00 15.18 ? 52 ILE A C 1 +ATOM 391 O O . ILE A 1 52 ? 6.789 24.679 41.929 1.00 12.48 ? 52 ILE A O 1 +ATOM 392 C CB . ILE A 1 52 ? 5.600 22.541 39.663 1.00 11.51 ? 52 ILE A CB 1 +ATOM 393 C CG1 . ILE A 1 52 ? 6.068 21.833 38.385 1.00 13.21 ? 52 ILE A CG1 1 +ATOM 394 C CG2 . ILE A 1 52 ? 5.011 23.919 39.390 1.00 12.38 ? 52 ILE A CG2 1 +ATOM 395 C CD1 . ILE A 1 52 ? 4.983 21.493 37.389 1.00 13.05 ? 52 ILE A CD1 1 +ATOM 396 N N . LYS A 1 53 ? 5.658 22.893 42.738 1.00 14.61 ? 53 LYS A N 1 +ATOM 397 C CA . LYS A 1 53 ? 5.267 23.588 43.938 1.00 12.59 ? 53 LYS A CA 1 +ATOM 398 C C . LYS A 1 53 ? 6.424 23.902 44.792 1.00 10.72 ? 53 LYS A C 1 +ATOM 399 O O . LYS A 1 53 ? 6.554 24.993 45.313 1.00 18.21 ? 53 LYS A O 1 +ATOM 400 C CB . LYS A 1 53 ? 4.115 22.905 44.655 1.00 17.86 ? 53 LYS A CB 1 +ATOM 401 C CG . LYS A 1 53 ? 2.853 23.153 43.868 1.00 20.98 ? 53 LYS A CG 1 +ATOM 402 C CD . LYS A 1 53 ? 1.721 22.236 44.297 1.00 20.77 ? 53 LYS A CD 1 +ATOM 403 C CE . LYS A 1 53 ? 1.130 22.738 45.596 1.00 40.81 ? 53 LYS A CE 1 +ATOM 404 N NZ . LYS A 1 53 ? 0.540 24.090 45.430 1.00 44.27 ? 53 LYS A NZ 1 +ATOM 405 N N . LYS A 1 54 ? 7.320 22.955 44.939 1.00 17.38 ? 54 LYS A N 1 +ATOM 406 C CA . LYS A 1 54 ? 8.504 23.235 45.727 1.00 14.14 ? 54 LYS A CA 1 +ATOM 407 C C . LYS A 1 54 ? 9.338 24.420 45.210 1.00 16.17 ? 54 LYS A C 1 +ATOM 408 O O . LYS A 1 54 ? 9.739 25.330 45.939 1.00 16.60 ? 54 LYS A O 1 +ATOM 409 C CB . LYS A 1 54 ? 9.300 21.942 45.783 1.00 17.05 ? 54 LYS A CB 1 +ATOM 410 C CG . LYS A 1 54 ? 10.452 21.949 46.759 1.00 39.37 ? 54 LYS A CG 1 +ATOM 411 C CD . LYS A 1 54 ? 11.355 20.715 46.688 1.00 41.24 ? 54 LYS A CD 1 +ATOM 412 C CE . LYS A 1 54 ? 12.413 20.716 47.756 1.00 55.48 ? 54 LYS A CE 1 +ATOM 413 N NZ . LYS A 1 54 ? 13.712 20.157 47.327 1.00 57.57 ? 54 LYS A NZ 1 +ATOM 414 N N . VAL A 1 55 ? 9.603 24.434 43.919 1.00 17.21 ? 55 VAL A N 1 +ATOM 415 C CA . VAL A 1 55 ? 10.387 25.535 43.342 1.00 13.15 ? 55 VAL A CA 1 +ATOM 416 C C . VAL A 1 55 ? 9.695 26.874 43.477 1.00 14.36 ? 55 VAL A C 1 +ATOM 417 O O . VAL A 1 55 ? 10.341 27.890 43.728 1.00 17.81 ? 55 VAL A O 1 +ATOM 418 C CB . VAL A 1 55 ? 10.736 25.226 41.889 1.00 12.63 ? 55 VAL A CB 1 +ATOM 419 C CG1 . VAL A 1 55 ? 11.508 26.356 41.225 1.00 15.04 ? 55 VAL A CG1 1 +ATOM 420 C CG2 . VAL A 1 55 ? 11.611 23.990 41.842 1.00 15.93 ? 55 VAL A CG2 1 +ATOM 421 N N . GLY A 1 56 ? 8.366 26.903 43.272 1.00 16.78 ? 56 GLY A N 1 +ATOM 422 C CA . GLY A 1 56 ? 7.533 28.116 43.370 1.00 13.00 ? 56 GLY A CA 1 +ATOM 423 C C . GLY A 1 56 ? 7.687 28.719 44.730 1.00 16.47 ? 56 GLY A C 1 +ATOM 424 O O . GLY A 1 56 ? 8.012 29.896 44.915 1.00 17.78 ? 56 GLY A O 1 +ATOM 425 N N . GLU A 1 57 ? 7.490 27.838 45.676 1.00 16.69 ? 57 GLU A N 1 +ATOM 426 C CA . GLU A 1 57 ? 7.609 28.186 47.067 1.00 20.66 ? 57 GLU A CA 1 +ATOM 427 C C . GLU A 1 57 ? 9.025 28.698 47.354 1.00 23.72 ? 57 GLU A C 1 +ATOM 428 O O . GLU A 1 57 ? 9.231 29.732 47.948 1.00 26.10 ? 57 GLU A O 1 +ATOM 429 C CB . GLU A 1 57 ? 7.047 27.056 47.998 1.00 19.82 ? 57 GLU A CB 1 +ATOM 430 C CG . GLU A 1 57 ? 6.691 27.493 49.451 1.00 52.36 ? 57 GLU A CG 1 +ATOM 431 C CD . GLU A 1 57 ? 5.469 28.401 49.633 1.00 46.86 ? 57 GLU A CD 1 +ATOM 432 O OE1 . GLU A 1 57 ? 4.340 27.839 49.188 1.00 45.17 ? 57 GLU A OE1 1 +ATOM 433 O OE2 . GLU A 1 57 ? 5.537 29.543 50.132 1.00 52.70 ? 57 GLU A OE2 1 +ATOM 434 N N . LYS A 1 58 ? 10.036 28.006 46.889 1.00 20.58 ? 58 LYS A N 1 +ATOM 435 C CA . LYS A 1 58 ? 11.398 28.427 47.114 1.00 18.99 ? 58 LYS A CA 1 +ATOM 436 C C . LYS A 1 58 ? 11.742 29.796 46.523 1.00 23.19 ? 58 LYS A C 1 +ATOM 437 O O . LYS A 1 58 ? 12.430 30.641 47.108 1.00 27.18 ? 58 LYS A O 1 +ATOM 438 C CB . LYS A 1 58 ? 12.300 27.347 46.515 1.00 22.39 ? 58 LYS A CB 1 +ATOM 439 C CG . LYS A 1 58 ? 13.776 27.549 46.654 1.00 30.77 ? 58 LYS A CG 1 +ATOM 440 C CD . LYS A 1 58 ? 14.565 26.393 46.038 1.00 51.10 ? 58 LYS A CD 1 +ATOM 441 C CE . LYS A 1 58 ? 14.513 26.248 44.520 1.00 51.37 ? 58 LYS A CE 1 +ATOM 442 N NZ . LYS A 1 58 ? 15.191 25.016 44.033 1.00 31.64 ? 58 LYS A NZ 1 +ATOM 443 N N . LEU A 1 59 ? 11.271 30.056 45.334 1.00 20.90 ? 59 LEU A N 1 +ATOM 444 C CA . LEU A 1 59 ? 11.653 31.282 44.712 1.00 14.33 ? 59 LEU A CA 1 +ATOM 445 C C . LEU A 1 59 ? 10.642 32.371 44.851 1.00 21.26 ? 59 LEU A C 1 +ATOM 446 O O . LEU A 1 59 ? 10.856 33.444 44.324 1.00 24.39 ? 59 LEU A O 1 +ATOM 447 C CB . LEU A 1 59 ? 11.964 31.026 43.233 1.00 17.48 ? 59 LEU A CB 1 +ATOM 448 C CG . LEU A 1 59 ? 13.176 30.121 42.918 1.00 24.89 ? 59 LEU A CG 1 +ATOM 449 C CD1 . LEU A 1 59 ? 13.453 30.058 41.432 1.00 22.45 ? 59 LEU A CD1 1 +ATOM 450 C CD2 . LEU A 1 59 ? 14.444 30.602 43.554 1.00 23.85 ? 59 LEU A CD2 1 +ATOM 451 N N . CYS A 1 60 ? 9.533 32.068 45.502 1.00 19.16 ? 60 CYS A N 1 +ATOM 452 C CA . CYS A 1 60 ? 8.469 33.033 45.707 1.00 21.42 ? 60 CYS A CA 1 +ATOM 453 C C . CYS A 1 60 ? 7.756 33.505 44.465 1.00 17.26 ? 60 CYS A C 1 +ATOM 454 O O . CYS A 1 60 ? 7.479 34.719 44.234 1.00 19.78 ? 60 CYS A O 1 +ATOM 455 C CB . CYS A 1 60 ? 8.933 34.184 46.601 1.00 25.86 ? 60 CYS A CB 1 +ATOM 456 S SG . CYS A 1 60 ? 7.490 35.049 47.297 1.00 22.06 ? 60 CYS A SG 1 +ATOM 457 N N . VAL A 1 61 ? 7.444 32.496 43.684 1.00 13.97 ? 61 VAL A N 1 +ATOM 458 C CA . VAL A 1 61 ? 6.708 32.668 42.455 1.00 18.87 ? 61 VAL A CA 1 +ATOM 459 C C . VAL A 1 61 ? 5.568 31.628 42.380 1.00 15.39 ? 61 VAL A C 1 +ATOM 460 O O . VAL A 1 61 ? 5.703 30.497 42.848 1.00 16.29 ? 61 VAL A O 1 +ATOM 461 C CB . VAL A 1 61 ? 7.659 32.748 41.221 1.00 23.93 ? 61 VAL A CB 1 +ATOM 462 C CG1 . VAL A 1 61 ? 8.238 31.400 40.949 1.00 24.80 ? 61 VAL A CG1 1 +ATOM 463 C CG2 . VAL A 1 61 ? 6.962 33.157 39.960 1.00 28.33 ? 61 VAL A CG2 1 +ATOM 464 N N . GLU A 1 62 ? 4.418 31.982 41.827 1.00 17.43 ? 62 GLU A N 1 +ATOM 465 C CA . GLU A 1 62 ? 3.305 31.046 41.756 1.00 11.87 ? 62 GLU A CA 1 +ATOM 466 C C . GLU A 1 62 ? 3.625 29.830 40.933 1.00 14.44 ? 62 GLU A C 1 +ATOM 467 O O . GLU A 1 62 ? 3.986 29.910 39.757 1.00 14.61 ? 62 GLU A O 1 +ATOM 468 C CB . GLU A 1 62 ? 2.098 31.729 41.129 1.00 17.44 ? 62 GLU A CB 1 +ATOM 469 C CG . GLU A 1 62 ? 1.553 32.908 41.992 1.00 26.99 ? 62 GLU A CG 1 +ATOM 470 C CD . GLU A 1 62 ? 0.275 33.516 41.492 1.00 21.09 ? 62 GLU A CD 1 +ATOM 471 O OE1 . GLU A 1 62 ? 0.374 33.981 40.287 1.00 30.35 ? 62 GLU A OE1 1 +ATOM 472 O OE2 . GLU A 1 62 ? -0.732 33.579 42.155 1.00 28.43 ? 62 GLU A OE2 1 +ATOM 473 N N . PRO A 1 63 ? 3.375 28.684 41.522 1.00 15.35 ? 63 PRO A N 1 +ATOM 474 C CA . PRO A 1 63 ? 3.594 27.423 40.864 1.00 14.60 ? 63 PRO A CA 1 +ATOM 475 C C . PRO A 1 63 ? 2.756 27.314 39.640 1.00 14.57 ? 63 PRO A C 1 +ATOM 476 O O . PRO A 1 63 ? 3.158 26.704 38.648 1.00 13.94 ? 63 PRO A O 1 +ATOM 477 C CB . PRO A 1 63 ? 3.225 26.393 41.918 1.00 10.72 ? 63 PRO A CB 1 +ATOM 478 C CG . PRO A 1 63 ? 3.452 27.020 43.251 1.00 13.24 ? 63 PRO A CG 1 +ATOM 479 C CD . PRO A 1 63 ? 3.151 28.483 42.979 1.00 15.37 ? 63 PRO A CD 1 +ATOM 480 N N . ALA A 1 64 ? 1.591 27.957 39.658 1.00 11.74 ? 64 ALA A N 1 +ATOM 481 C CA . ALA A 1 64 ? 0.741 27.910 38.511 1.00 11.74 ? 64 ALA A CA 1 +ATOM 482 C C . ALA A 1 64 ? 1.401 28.588 37.318 1.00 13.55 ? 64 ALA A C 1 +ATOM 483 O O . ALA A 1 64 ? 1.101 28.189 36.189 1.00 11.58 ? 64 ALA A O 1 +ATOM 484 C CB . ALA A 1 64 ? -0.569 28.595 38.848 1.00 17.76 ? 64 ALA A CB 1 +ATOM 485 N N . VAL A 1 65 ? 2.232 29.617 37.539 1.00 14.23 ? 65 VAL A N 1 +ATOM 486 C CA . VAL A 1 65 ? 2.954 30.322 36.456 1.00 11.78 ? 65 VAL A CA 1 +ATOM 487 C C . VAL A 1 65 ? 3.979 29.339 35.885 1.00 10.31 ? 65 VAL A C 1 +ATOM 488 O O . VAL A 1 65 ? 4.087 29.148 34.691 1.00 12.12 ? 65 VAL A O 1 +ATOM 489 C CB . VAL A 1 65 ? 3.630 31.578 36.974 1.00 13.01 ? 65 VAL A CB 1 +ATOM 490 C CG1 . VAL A 1 65 ? 4.529 32.161 35.891 1.00 18.11 ? 65 VAL A CG1 1 +ATOM 491 C CG2 . VAL A 1 65 ? 2.554 32.604 37.278 1.00 18.04 ? 65 VAL A CG2 1 +ATOM 492 N N . ILE A 1 66 ? 4.685 28.653 36.730 1.00 10.99 ? 66 ILE A N 1 +ATOM 493 C CA . ILE A 1 66 ? 5.657 27.644 36.260 1.00 16.33 ? 66 ILE A CA 1 +ATOM 494 C C . ILE A 1 66 ? 4.946 26.613 35.421 1.00 13.30 ? 66 ILE A C 1 +ATOM 495 O O . ILE A 1 66 ? 5.364 26.237 34.318 1.00 10.61 ? 66 ILE A O 1 +ATOM 496 C CB . ILE A 1 66 ? 6.422 27.011 37.429 1.00 11.43 ? 66 ILE A CB 1 +ATOM 497 C CG1 . ILE A 1 66 ? 7.103 28.039 38.242 1.00 10.19 ? 66 ILE A CG1 1 +ATOM 498 C CG2 . ILE A 1 66 ? 7.396 25.913 37.005 1.00 13.05 ? 66 ILE A CG2 1 +ATOM 499 C CD1 . ILE A 1 66 ? 7.585 27.537 39.573 1.00 14.92 ? 66 ILE A CD1 1 +ATOM 500 N N . ALA A 1 67 ? 3.793 26.118 35.906 1.00 10.50 ? 67 ALA A N 1 +ATOM 501 C CA . ALA A 1 67 ? 3.021 25.114 35.193 1.00 10.57 ? 67 ALA A CA 1 +ATOM 502 C C . ALA A 1 67 ? 2.510 25.638 33.910 1.00 7.43 ? 67 ALA A C 1 +ATOM 503 O O . ALA A 1 67 ? 2.528 24.925 32.915 1.00 9.18 ? 67 ALA A O 1 +ATOM 504 C CB . ALA A 1 67 ? 1.918 24.512 36.036 1.00 13.43 ? 67 ALA A CB 1 +ATOM 505 N N . GLY A 1 68 ? 2.090 26.894 33.859 1.00 6.30 ? 68 GLY A N 1 +ATOM 506 C CA . GLY A 1 68 ? 1.615 27.410 32.628 1.00 5.66 ? 68 GLY A CA 1 +ATOM 507 C C . GLY A 1 68 ? 2.733 27.469 31.589 1.00 6.74 ? 68 GLY A C 1 +ATOM 508 O O . GLY A 1 68 ? 2.477 27.236 30.398 1.00 10.41 ? 68 GLY A O 1 +ATOM 509 N N . ILE A 1 69 ? 3.937 27.837 32.038 1.00 8.38 ? 69 ILE A N 1 +ATOM 510 C CA . ILE A 1 69 ? 5.148 27.911 31.161 1.00 7.39 ? 69 ILE A CA 1 +ATOM 511 C C . ILE A 1 69 ? 5.447 26.500 30.677 1.00 5.28 ? 69 ILE A C 1 +ATOM 512 O O . ILE A 1 69 ? 5.618 26.278 29.472 1.00 10.91 ? 69 ILE A O 1 +ATOM 513 C CB . ILE A 1 69 ? 6.370 28.533 31.827 1.00 11.24 ? 69 ILE A CB 1 +ATOM 514 C CG1 . ILE A 1 69 ? 6.181 30.048 31.895 1.00 9.48 ? 69 ILE A CG1 1 +ATOM 515 C CG2 . ILE A 1 69 ? 7.597 28.356 30.907 1.00 14.01 ? 69 ILE A CG2 1 +ATOM 516 C CD1 . ILE A 1 69 ? 7.090 30.731 32.866 1.00 13.93 ? 69 ILE A CD1 1 +ATOM 517 N N . ILE A 1 70 ? 5.458 25.544 31.563 1.00 8.78 ? 70 ILE A N 1 +ATOM 518 C CA . ILE A 1 70 ? 5.684 24.130 31.177 1.00 6.27 ? 70 ILE A CA 1 +ATOM 519 C C . ILE A 1 70 ? 4.690 23.624 30.177 1.00 11.62 ? 70 ILE A C 1 +ATOM 520 O O . ILE A 1 70 ? 5.042 22.918 29.257 1.00 10.82 ? 70 ILE A O 1 +ATOM 521 C CB . ILE A 1 70 ? 5.805 23.205 32.375 1.00 8.21 ? 70 ILE A CB 1 +ATOM 522 C CG1 . ILE A 1 70 ? 6.978 23.593 33.262 1.00 11.32 ? 70 ILE A CG1 1 +ATOM 523 C CG2 . ILE A 1 70 ? 5.777 21.733 31.932 1.00 9.80 ? 70 ILE A CG2 1 +ATOM 524 C CD1 . ILE A 1 70 ? 7.115 22.807 34.538 1.00 15.42 ? 70 ILE A CD1 1 +ATOM 525 N N . SER A 1 71 ? 3.407 23.945 30.329 1.00 10.69 ? 71 SER A N 1 +ATOM 526 C CA . SER A 1 71 ? 2.432 23.486 29.402 1.00 6.95 ? 71 SER A CA 1 +ATOM 527 C C . SER A 1 71 ? 2.712 24.071 28.032 1.00 9.20 ? 71 SER A C 1 +ATOM 528 O O . SER A 1 71 ? 2.692 23.401 26.990 1.00 8.84 ? 71 SER A O 1 +ATOM 529 C CB . SER A 1 71 ? 0.968 23.737 29.908 1.00 8.74 ? 71 SER A CB 1 +ATOM 530 O OG . SER A 1 71 ? 0.073 23.592 28.822 1.00 8.57 ? 71 SER A OG 1 +ATOM 531 N N . ARG A 1 72 ? 2.957 25.402 27.992 1.00 6.70 ? 72 ARG A N 1 +ATOM 532 C CA . ARG A 1 72 ? 3.209 26.030 26.746 1.00 6.19 ? 72 ARG A CA 1 +ATOM 533 C C . ARG A 1 72 ? 4.509 25.565 26.085 1.00 6.85 ? 72 ARG A C 1 +ATOM 534 O O . ARG A 1 72 ? 4.506 25.383 24.877 1.00 11.52 ? 72 ARG A O 1 +ATOM 535 C CB . ARG A 1 72 ? 3.267 27.535 27.039 1.00 7.06 ? 72 ARG A CB 1 +ATOM 536 C CG . ARG A 1 72 ? 3.745 28.440 25.909 1.00 12.99 ? 72 ARG A CG 1 +ATOM 537 C CD . ARG A 1 72 ? 2.868 28.352 24.708 1.00 15.27 ? 72 ARG A CD 1 +ATOM 538 N NE . ARG A 1 72 ? 3.415 29.210 23.657 1.00 17.09 ? 72 ARG A NE 1 +ATOM 539 C CZ . ARG A 1 72 ? 2.797 30.202 23.059 1.00 16.83 ? 72 ARG A CZ 1 +ATOM 540 N NH1 . ARG A 1 72 ? 1.546 30.557 23.353 1.00 12.21 ? 72 ARG A NH1 1 +ATOM 541 N NH2 . ARG A 1 72 ? 3.450 30.888 22.120 1.00 17.64 ? 72 ARG A NH2 1 +ATOM 542 N N . GLU A 1 73 ? 5.567 25.447 26.867 1.00 8.69 ? 73 GLU A N 1 +ATOM 543 C CA . GLU A 1 73 ? 6.885 25.112 26.309 1.00 10.28 ? 73 GLU A CA 1 +ATOM 544 C C . GLU A 1 73 ? 7.066 23.683 25.835 1.00 13.18 ? 73 GLU A C 1 +ATOM 545 O O . GLU A 1 73 ? 7.704 23.431 24.773 1.00 14.55 ? 73 GLU A O 1 +ATOM 546 C CB . GLU A 1 73 ? 7.965 25.404 27.326 1.00 5.86 ? 73 GLU A CB 1 +ATOM 547 C CG . GLU A 1 73 ? 8.239 26.894 27.488 1.00 8.63 ? 73 GLU A CG 1 +ATOM 548 C CD . GLU A 1 73 ? 8.834 27.567 26.295 1.00 14.17 ? 73 GLU A CD 1 +ATOM 549 O OE1 . GLU A 1 73 ? 9.336 27.022 25.323 1.00 13.50 ? 73 GLU A OE1 1 +ATOM 550 O OE2 . GLU A 1 73 ? 8.676 28.848 26.350 1.00 14.39 ? 73 GLU A OE2 1 +ATOM 551 N N . SER A 1 74 ? 6.566 22.748 26.649 1.00 8.85 ? 74 SER A N 1 +ATOM 552 C CA . SER A 1 74 ? 6.753 21.325 26.305 1.00 11.62 ? 74 SER A CA 1 +ATOM 553 C C . SER A 1 74 ? 5.604 20.372 26.512 1.00 11.11 ? 74 SER A C 1 +ATOM 554 O O . SER A 1 74 ? 5.780 19.130 26.424 1.00 11.64 ? 74 SER A O 1 +ATOM 555 C CB . SER A 1 74 ? 7.858 20.813 27.136 1.00 10.58 ? 74 SER A CB 1 +ATOM 556 O OG . SER A 1 74 ? 7.512 20.869 28.482 1.00 11.37 ? 74 SER A OG 1 +ATOM 557 N N . HIS A 1 75 ? 4.449 20.916 26.886 1.00 12.79 ? 75 HIS A N 1 +ATOM 558 C CA . HIS A 1 75 ? 3.284 20.061 27.176 1.00 14.97 ? 75 HIS A CA 1 +ATOM 559 C C . HIS A 1 75 ? 3.638 19.091 28.236 1.00 14.49 ? 75 HIS A C 1 +ATOM 560 O O . HIS A 1 75 ? 3.361 17.913 28.176 1.00 16.79 ? 75 HIS A O 1 +ATOM 561 C CB . HIS A 1 75 ? 2.639 19.390 25.984 1.00 12.24 ? 75 HIS A CB 1 +ATOM 562 C CG . HIS A 1 75 ? 1.897 20.270 25.054 1.00 12.11 ? 75 HIS A CG 1 +ATOM 563 N ND1 . HIS A 1 75 ? 0.794 21.004 25.425 1.00 11.27 ? 75 HIS A ND1 1 +ATOM 564 C CD2 . HIS A 1 75 ? 2.081 20.466 23.749 1.00 14.79 ? 75 HIS A CD2 1 +ATOM 565 C CE1 . HIS A 1 75 ? 0.357 21.624 24.370 1.00 13.29 ? 75 HIS A CE1 1 +ATOM 566 N NE2 . HIS A 1 75 ? 1.131 21.345 23.332 1.00 14.02 ? 75 HIS A NE2 1 +ATOM 567 N N . ALA A 1 76 ? 4.332 19.594 29.216 1.00 11.41 ? 76 ALA A N 1 +ATOM 568 C CA . ALA A 1 76 ? 4.766 18.808 30.321 1.00 12.81 ? 76 ALA A CA 1 +ATOM 569 C C . ALA A 1 76 ? 5.599 17.593 29.919 1.00 17.78 ? 76 ALA A C 1 +ATOM 570 O O . ALA A 1 76 ? 5.504 16.530 30.499 1.00 17.62 ? 76 ALA A O 1 +ATOM 571 C CB . ALA A 1 76 ? 3.562 18.392 31.180 1.00 16.40 ? 76 ALA A CB 1 +ATOM 572 N N . GLY A 1 77 ? 6.486 17.764 28.952 1.00 16.47 ? 77 GLY A N 1 +ATOM 573 C CA . GLY A 1 77 ? 7.402 16.690 28.523 1.00 15.72 ? 77 GLY A CA 1 +ATOM 574 C C . GLY A 1 77 ? 6.948 15.889 27.357 1.00 20.63 ? 77 GLY A C 1 +ATOM 575 O O . GLY A 1 77 ? 7.704 15.205 26.674 1.00 15.75 ? 77 GLY A O 1 +ATOM 576 N N . LYS A 1 78 ? 5.673 15.973 27.082 1.00 14.11 ? 78 LYS A N 1 +ATOM 577 C CA . LYS A 1 78 ? 5.117 15.176 26.059 1.00 14.23 ? 78 LYS A CA 1 +ATOM 578 C C . LYS A 1 78 ? 5.773 15.295 24.725 1.00 18.08 ? 78 LYS A C 1 +ATOM 579 O O . LYS A 1 78 ? 5.831 14.322 23.993 1.00 20.73 ? 78 LYS A O 1 +ATOM 580 C CB . LYS A 1 78 ? 3.617 15.418 25.936 1.00 19.29 ? 78 LYS A CB 1 +ATOM 581 C CG . LYS A 1 78 ? 2.803 14.462 26.775 1.00 44.28 ? 78 LYS A CG 1 +ATOM 582 C CD . LYS A 1 78 ? 2.180 15.079 27.997 1.00 46.08 ? 78 LYS A CD 1 +ATOM 583 C CE . LYS A 1 78 ? 1.220 16.228 27.715 1.00 43.25 ? 78 LYS A CE 1 +ATOM 584 N NZ . LYS A 1 78 ? -0.138 15.870 27.316 1.00 35.23 ? 78 LYS A NZ 1 +ATOM 585 N N . VAL A 1 79 ? 6.160 16.498 24.356 1.00 13.95 ? 79 VAL A N 1 +ATOM 586 C CA . VAL A 1 79 ? 6.735 16.698 23.056 1.00 13.86 ? 79 VAL A CA 1 +ATOM 587 C C . VAL A 1 79 ? 8.247 16.765 23.015 1.00 13.65 ? 79 VAL A C 1 +ATOM 588 O O . VAL A 1 79 ? 8.761 17.343 22.059 1.00 23.33 ? 79 VAL A O 1 +ATOM 589 C CB . VAL A 1 79 ? 6.199 17.908 22.314 1.00 20.74 ? 79 VAL A CB 1 +ATOM 590 C CG1 . VAL A 1 79 ? 4.725 17.761 22.075 1.00 20.20 ? 79 VAL A CG1 1 +ATOM 591 C CG2 . VAL A 1 79 ? 6.387 19.176 23.102 1.00 22.08 ? 79 VAL A CG2 1 +ATOM 592 N N . LEU A 1 80 ? 8.897 16.230 24.000 1.00 12.65 ? 80 LEU A N 1 +ATOM 593 C CA . LEU A 1 80 ? 10.343 16.244 24.096 1.00 9.96 ? 80 LEU A CA 1 +ATOM 594 C C . LEU A 1 80 ? 10.967 14.913 23.810 1.00 14.87 ? 80 LEU A C 1 +ATOM 595 O O . LEU A 1 80 ? 10.309 13.915 23.997 1.00 14.70 ? 80 LEU A O 1 +ATOM 596 C CB . LEU A 1 80 ? 10.783 16.629 25.486 1.00 10.21 ? 80 LEU A CB 1 +ATOM 597 C CG . LEU A 1 80 ? 10.319 18.029 25.906 1.00 10.77 ? 80 LEU A CG 1 +ATOM 598 C CD1 . LEU A 1 80 ? 10.909 18.378 27.225 1.00 12.09 ? 80 LEU A CD1 1 +ATOM 599 C CD2 . LEU A 1 80 ? 10.505 19.137 24.895 1.00 13.87 ? 80 LEU A CD2 1 +ATOM 600 N N . LYS A 1 81 ? 12.262 14.928 23.408 1.00 13.28 ? 81 LYS A N 1 +ATOM 601 C CA . LYS A 1 81 ? 13.027 13.706 23.133 1.00 11.13 ? 81 LYS A CA 1 +ATOM 602 C C . LYS A 1 81 ? 14.243 13.788 23.997 1.00 10.84 ? 81 LYS A C 1 +ATOM 603 O O . LYS A 1 81 ? 15.151 14.613 23.808 1.00 13.04 ? 81 LYS A O 1 +ATOM 604 C CB . LYS A 1 81 ? 13.391 13.582 21.664 1.00 9.34 ? 81 LYS A CB 1 +ATOM 605 C CG . LYS A 1 81 ? 12.239 13.359 20.724 1.00 13.58 ? 81 LYS A CG 1 +ATOM 606 C CD . LYS A 1 81 ? 11.484 12.041 20.909 1.00 14.19 ? 81 LYS A CD 1 +ATOM 607 C CE . LYS A 1 81 ? 10.593 11.694 19.753 1.00 11.66 ? 81 LYS A CE 1 +ATOM 608 N NZ . LYS A 1 81 ? 11.345 11.044 18.668 1.00 14.39 ? 81 LYS A NZ 1 +ATOM 609 N N . ASN A 1 82 ? 14.221 13.007 25.024 1.00 10.96 ? 82 ASN A N 1 +ATOM 610 C CA . ASN A 1 82 ? 15.285 13.010 25.973 1.00 12.78 ? 82 ASN A CA 1 +ATOM 611 C C . ASN A 1 82 ? 15.523 14.418 26.481 1.00 18.27 ? 82 ASN A C 1 +ATOM 612 O O . ASN A 1 82 ? 16.661 14.851 26.724 1.00 18.66 ? 82 ASN A O 1 +ATOM 613 C CB . ASN A 1 82 ? 16.604 12.400 25.431 1.00 31.40 ? 82 ASN A CB 1 +ATOM 614 C CG . ASN A 1 82 ? 16.639 10.869 25.448 1.00 26.22 ? 82 ASN A CG 1 +ATOM 615 O OD1 . ASN A 1 82 ? 17.456 10.251 24.730 1.00 43.05 ? 82 ASN A OD1 1 +ATOM 616 N ND2 . ASN A 1 82 ? 15.738 10.260 26.236 1.00 41.48 ? 82 ASN A ND2 1 +ATOM 617 N N . GLY A 1 83 ? 14.433 15.139 26.622 1.00 16.29 ? 83 GLY A N 1 +ATOM 618 C CA . GLY A 1 83 ? 14.493 16.498 27.141 1.00 14.22 ? 83 GLY A CA 1 +ATOM 619 C C . GLY A 1 83 ? 14.704 17.616 26.176 1.00 14.99 ? 83 GLY A C 1 +ATOM 620 O O . GLY A 1 83 ? 14.593 18.792 26.541 1.00 16.57 ? 83 GLY A O 1 +ATOM 621 N N . TRP A 1 84 ? 14.963 17.300 24.928 1.00 12.57 ? 84 TRP A N 1 +ATOM 622 C CA . TRP A 1 84 ? 15.188 18.319 23.913 1.00 12.71 ? 84 TRP A CA 1 +ATOM 623 C C . TRP A 1 84 ? 13.989 18.606 23.087 1.00 9.78 ? 84 TRP A C 1 +ATOM 624 O O . TRP A 1 84 ? 13.243 17.721 22.704 1.00 12.50 ? 84 TRP A O 1 +ATOM 625 C CB . TRP A 1 84 ? 16.320 17.860 22.899 1.00 10.50 ? 84 TRP A CB 1 +ATOM 626 C CG . TRP A 1 84 ? 17.648 17.743 23.592 1.00 11.25 ? 84 TRP A CG 1 +ATOM 627 C CD1 . TRP A 1 84 ? 18.213 16.583 24.048 1.00 18.76 ? 84 TRP A CD1 1 +ATOM 628 C CD2 . TRP A 1 84 ? 18.498 18.808 24.025 1.00 12.16 ? 84 TRP A CD2 1 +ATOM 629 N NE1 . TRP A 1 84 ? 19.362 16.867 24.740 1.00 19.14 ? 84 TRP A NE1 1 +ATOM 630 C CE2 . TRP A 1 84 ? 19.544 18.240 24.730 1.00 31.45 ? 84 TRP A CE2 1 +ATOM 631 C CE3 . TRP A 1 84 ? 18.456 20.198 23.874 1.00 13.69 ? 84 TRP A CE3 1 +ATOM 632 C CZ2 . TRP A 1 84 ? 20.560 19.034 25.247 1.00 19.98 ? 84 TRP A CZ2 1 +ATOM 633 C CZ3 . TRP A 1 84 ? 19.445 20.971 24.401 1.00 15.88 ? 84 TRP A CZ3 1 +ATOM 634 C CH2 . TRP A 1 84 ? 20.473 20.386 25.100 1.00 18.02 ? 84 TRP A CH2 1 +ATOM 635 N N . GLY A 1 85 ? 13.836 19.872 22.735 1.00 10.95 ? 85 GLY A N 1 +ATOM 636 C CA . GLY A 1 85 ? 12.779 20.290 21.886 1.00 9.68 ? 85 GLY A CA 1 +ATOM 637 C C . GLY A 1 85 ? 13.105 19.941 20.480 1.00 12.14 ? 85 GLY A C 1 +ATOM 638 O O . GLY A 1 85 ? 14.205 19.468 20.216 1.00 14.27 ? 85 GLY A O 1 +ATOM 639 N N . ASP A 1 86 ? 12.156 20.136 19.617 1.00 10.04 ? 86 ASP A N 1 +ATOM 640 C CA . ASP A 1 86 ? 12.307 19.718 18.252 1.00 16.91 ? 86 ASP A CA 1 +ATOM 641 C C . ASP A 1 86 ? 13.480 20.222 17.424 1.00 14.23 ? 86 ASP A C 1 +ATOM 642 O O . ASP A 1 86 ? 13.848 19.580 16.461 1.00 20.44 ? 86 ASP A O 1 +ATOM 643 C CB . ASP A 1 86 ? 11.067 19.862 17.399 1.00 27.71 ? 86 ASP A CB 1 +ATOM 644 C CG . ASP A 1 86 ? 9.771 19.338 17.936 1.00 38.32 ? 86 ASP A CG 1 +ATOM 645 O OD1 . ASP A 1 86 ? 9.629 18.444 18.763 1.00 46.48 ? 86 ASP A OD1 1 +ATOM 646 O OD2 . ASP A 1 86 ? 8.797 19.932 17.316 1.00 41.85 ? 86 ASP A OD2 1 +ATOM 647 N N . ARG A 1 87 ? 13.994 21.380 17.745 1.00 16.66 ? 87 ARG A N 1 +ATOM 648 C CA . ARG A 1 87 ? 15.124 21.990 17.067 1.00 21.43 ? 87 ARG A CA 1 +ATOM 649 C C . ARG A 1 87 ? 16.422 21.766 17.789 1.00 21.87 ? 87 ARG A C 1 +ATOM 650 O O . ARG A 1 87 ? 17.471 22.236 17.372 1.00 22.03 ? 87 ARG A O 1 +ATOM 651 C CB . ARG A 1 87 ? 14.922 23.480 16.833 1.00 24.15 ? 87 ARG A CB 1 +ATOM 652 C CG . ARG A 1 87 ? 14.311 23.760 15.519 1.00 32.60 ? 87 ARG A CG 1 +ATOM 653 C CD . ARG A 1 87 ? 12.815 23.698 15.600 1.00 42.02 ? 87 ARG A CD 1 +ATOM 654 N NE . ARG A 1 87 ? 12.249 24.743 14.780 1.00 67.89 ? 87 ARG A NE 1 +ATOM 655 C CZ . ARG A 1 87 ? 12.237 24.775 13.442 1.00 73.25 ? 87 ARG A CZ 1 +ATOM 656 N NH1 . ARG A 1 87 ? 12.758 23.802 12.665 1.00 72.54 ? 87 ARG A NH1 1 +ATOM 657 N NH2 . ARG A 1 87 ? 11.669 25.841 12.854 1.00 72.55 ? 87 ARG A NH2 1 +ATOM 658 N N . GLY A 1 88 ? 16.367 21.037 18.886 1.00 14.58 ? 88 GLY A N 1 +ATOM 659 C CA . GLY A 1 88 ? 17.550 20.746 19.607 1.00 13.18 ? 88 GLY A CA 1 +ATOM 660 C C . GLY A 1 88 ? 18.144 21.875 20.375 1.00 15.70 ? 88 GLY A C 1 +ATOM 661 O O . GLY A 1 88 ? 19.239 21.682 20.925 1.00 21.00 ? 88 GLY A O 1 +ATOM 662 N N . ASN A 1 89 ? 17.452 23.010 20.439 1.00 12.90 ? 89 ASN A N 1 +ATOM 663 C CA . ASN A 1 89 ? 17.932 24.118 21.186 1.00 7.58 ? 89 ASN A CA 1 +ATOM 664 C C . ASN A 1 89 ? 17.414 24.214 22.586 1.00 14.27 ? 89 ASN A C 1 +ATOM 665 O O . ASN A 1 89 ? 18.118 24.549 23.509 1.00 13.38 ? 89 ASN A O 1 +ATOM 666 C CB . ASN A 1 89 ? 17.666 25.419 20.491 1.00 10.78 ? 89 ASN A CB 1 +ATOM 667 C CG . ASN A 1 89 ? 18.490 25.417 19.241 1.00 18.94 ? 89 ASN A CG 1 +ATOM 668 O OD1 . ASN A 1 89 ? 19.676 25.094 19.257 1.00 23.93 ? 89 ASN A OD1 1 +ATOM 669 N ND2 . ASN A 1 89 ? 17.828 25.644 18.175 1.00 20.07 ? 89 ASN A ND2 1 +ATOM 670 N N . GLY A 1 90 ? 16.153 23.911 22.814 1.00 12.30 ? 90 GLY A N 1 +ATOM 671 C CA . GLY A 1 90 ? 15.603 24.006 24.184 1.00 9.77 ? 90 GLY A CA 1 +ATOM 672 C C . GLY A 1 90 ? 15.682 22.729 24.945 1.00 9.02 ? 90 GLY A C 1 +ATOM 673 O O . GLY A 1 90 ? 15.443 21.610 24.446 1.00 12.83 ? 90 GLY A O 1 +ATOM 674 N N . PHE A 1 91 ? 16.025 22.858 26.173 1.00 10.91 ? 91 PHE A N 1 +ATOM 675 C CA . PHE A 1 91 ? 16.157 21.714 27.031 1.00 11.95 ? 91 PHE A CA 1 +ATOM 676 C C . PHE A 1 91 ? 15.241 21.740 28.257 1.00 14.52 ? 91 PHE A C 1 +ATOM 677 O O . PHE A 1 91 ? 15.127 22.777 28.939 1.00 12.45 ? 91 PHE A O 1 +ATOM 678 C CB . PHE A 1 91 ? 17.585 21.753 27.600 1.00 12.98 ? 91 PHE A CB 1 +ATOM 679 C CG . PHE A 1 91 ? 17.881 20.600 28.525 1.00 11.72 ? 91 PHE A CG 1 +ATOM 680 C CD1 . PHE A 1 91 ? 18.155 19.333 28.011 1.00 20.79 ? 91 PHE A CD1 1 +ATOM 681 C CD2 . PHE A 1 91 ? 17.936 20.778 29.896 1.00 15.66 ? 91 PHE A CD2 1 +ATOM 682 C CE1 . PHE A 1 91 ? 18.424 18.272 28.860 1.00 14.40 ? 91 PHE A CE1 1 +ATOM 683 C CE2 . PHE A 1 91 ? 18.217 19.746 30.781 1.00 17.63 ? 91 PHE A CE2 1 +ATOM 684 C CZ . PHE A 1 91 ? 18.459 18.488 30.228 1.00 14.95 ? 91 PHE A CZ 1 +ATOM 685 N N . GLY A 1 92 ? 14.603 20.610 28.570 1.00 9.63 ? 92 GLY A N 1 +ATOM 686 C CA . GLY A 1 92 ? 13.778 20.508 29.769 1.00 13.02 ? 92 GLY A CA 1 +ATOM 687 C C . GLY A 1 92 ? 12.328 20.900 29.612 1.00 8.46 ? 92 GLY A C 1 +ATOM 688 O O . GLY A 1 92 ? 11.879 21.443 28.595 1.00 9.68 ? 92 GLY A O 1 +ATOM 689 N N . LEU A 1 93 ? 11.584 20.583 30.686 1.00 10.76 ? 93 LEU A N 1 +ATOM 690 C CA . LEU A 1 93 ? 10.156 20.914 30.742 1.00 9.47 ? 93 LEU A CA 1 +ATOM 691 C C . LEU A 1 93 ? 9.916 22.394 30.434 1.00 6.82 ? 93 LEU A C 1 +ATOM 692 O O . LEU A 1 93 ? 8.922 22.730 29.772 1.00 10.78 ? 93 LEU A O 1 +ATOM 693 C CB . LEU A 1 93 ? 9.719 20.662 32.193 1.00 8.78 ? 93 LEU A CB 1 +ATOM 694 C CG . LEU A 1 93 ? 9.621 19.173 32.595 1.00 10.44 ? 93 LEU A CG 1 +ATOM 695 C CD1 . LEU A 1 93 ? 9.413 19.089 34.091 1.00 10.42 ? 93 LEU A CD1 1 +ATOM 696 C CD2 . LEU A 1 93 ? 8.501 18.493 31.857 1.00 14.25 ? 93 LEU A CD2 1 +ATOM 697 N N . MET A 1 94 ? 10.823 23.265 30.858 1.00 7.31 ? 94 MET A N 1 +ATOM 698 C CA . MET A 1 94 ? 10.748 24.732 30.676 1.00 7.83 ? 94 MET A CA 1 +ATOM 699 C C . MET A 1 94 ? 11.475 25.290 29.458 1.00 11.39 ? 94 MET A C 1 +ATOM 700 O O . MET A 1 94 ? 11.391 26.492 29.147 1.00 13.53 ? 94 MET A O 1 +ATOM 701 C CB . MET A 1 94 ? 11.110 25.519 31.917 1.00 10.25 ? 94 MET A CB 1 +ATOM 702 C CG . MET A 1 94 ? 10.228 25.204 33.136 1.00 10.78 ? 94 MET A CG 1 +ATOM 703 S SD . MET A 1 94 ? 10.734 26.135 34.565 1.00 12.37 ? 94 MET A SD 1 +ATOM 704 C CE . MET A 1 94 ? 9.977 27.710 34.164 1.00 14.31 ? 94 MET A CE 1 +ATOM 705 N N . GLN A 1 95 ? 12.138 24.385 28.759 1.00 9.52 ? 95 GLN A N 1 +ATOM 706 C CA . GLN A 1 95 ? 12.851 24.740 27.540 1.00 7.46 ? 95 GLN A CA 1 +ATOM 707 C C . GLN A 1 95 ? 13.842 25.899 27.633 1.00 10.76 ? 95 GLN A C 1 +ATOM 708 O O . GLN A 1 95 ? 13.707 26.884 26.943 1.00 13.65 ? 95 GLN A O 1 +ATOM 709 C CB . GLN A 1 95 ? 11.876 24.942 26.396 1.00 10.32 ? 95 GLN A CB 1 +ATOM 710 C CG . GLN A 1 95 ? 11.162 23.656 25.996 1.00 8.74 ? 95 GLN A CG 1 +ATOM 711 C CD . GLN A 1 95 ? 12.106 22.713 25.298 1.00 10.53 ? 95 GLN A CD 1 +ATOM 712 O OE1 . GLN A 1 95 ? 12.221 22.889 24.101 1.00 12.07 ? 95 GLN A OE1 1 +ATOM 713 N NE2 . GLN A 1 95 ? 12.667 21.733 25.981 1.00 11.63 ? 95 GLN A NE2 1 +ATOM 714 N N . VAL A 1 96 ? 14.822 25.756 28.475 1.00 11.03 ? 96 VAL A N 1 +ATOM 715 C CA . VAL A 1 96 ? 15.944 26.690 28.575 1.00 9.69 ? 96 VAL A CA 1 +ATOM 716 C C . VAL A 1 96 ? 16.719 26.557 27.251 1.00 12.48 ? 96 VAL A C 1 +ATOM 717 O O . VAL A 1 96 ? 17.050 25.461 26.764 1.00 13.91 ? 96 VAL A O 1 +ATOM 718 C CB . VAL A 1 96 ? 16.795 26.268 29.727 1.00 11.97 ? 96 VAL A CB 1 +ATOM 719 C CG1 . VAL A 1 96 ? 18.110 27.031 29.779 1.00 15.44 ? 96 VAL A CG1 1 +ATOM 720 C CG2 . VAL A 1 96 ? 16.011 26.515 31.017 1.00 16.10 ? 96 VAL A CG2 1 +ATOM 721 N N . ASP A 1 97 ? 16.979 27.681 26.601 1.00 9.49 ? 97 ASP A N 1 +ATOM 722 C CA . ASP A 1 97 ? 17.680 27.682 25.297 1.00 13.02 ? 97 ASP A CA 1 +ATOM 723 C C . ASP A 1 97 ? 19.189 27.622 25.480 1.00 12.94 ? 97 ASP A C 1 +ATOM 724 O O . ASP A 1 97 ? 19.806 28.511 26.071 1.00 11.29 ? 97 ASP A O 1 +ATOM 725 C CB . ASP A 1 97 ? 17.319 28.909 24.500 1.00 13.38 ? 97 ASP A CB 1 +ATOM 726 C CG . ASP A 1 97 ? 17.886 28.878 23.127 1.00 17.62 ? 97 ASP A CG 1 +ATOM 727 O OD1 . ASP A 1 97 ? 18.808 28.191 22.775 1.00 23.31 ? 97 ASP A OD1 1 +ATOM 728 O OD2 . ASP A 1 97 ? 17.152 29.565 22.346 1.00 28.38 ? 97 ASP A OD2 1 +ATOM 729 N N . LYS A 1 98 ? 19.752 26.522 25.007 1.00 13.78 ? 98 LYS A N 1 +ATOM 730 C CA . LYS A 1 98 ? 21.171 26.202 25.101 1.00 15.87 ? 98 LYS A CA 1 +ATOM 731 C C . LYS A 1 98 ? 22.034 27.255 24.481 1.00 18.96 ? 98 LYS A C 1 +ATOM 732 O O . LYS A 1 98 ? 23.187 27.387 24.902 1.00 17.53 ? 98 LYS A O 1 +ATOM 733 C CB . LYS A 1 98 ? 21.542 24.840 24.529 1.00 10.13 ? 98 LYS A CB 1 +ATOM 734 C CG . LYS A 1 98 ? 21.677 24.919 23.057 1.00 12.28 ? 98 LYS A CG 1 +ATOM 735 C CD . LYS A 1 98 ? 21.923 23.512 22.534 1.00 16.08 ? 98 LYS A CD 1 +ATOM 736 C CE . LYS A 1 98 ? 22.050 23.538 21.032 1.00 20.03 ? 98 LYS A CE 1 +ATOM 737 N NZ . LYS A 1 98 ? 22.334 22.171 20.532 1.00 28.67 ? 98 LYS A NZ 1 +ATOM 738 N N . ARG A 1 99 ? 21.471 27.994 23.558 1.00 13.42 ? 99 ARG A N 1 +ATOM 739 C CA . ARG A 1 99 ? 22.226 29.054 22.901 1.00 15.24 ? 99 ARG A CA 1 +ATOM 740 C C . ARG A 1 99 ? 22.443 30.230 23.760 1.00 23.85 ? 99 ARG A C 1 +ATOM 741 O O . ARG A 1 99 ? 23.407 30.962 23.553 1.00 26.39 ? 99 ARG A O 1 +ATOM 742 C CB . ARG A 1 99 ? 21.661 29.529 21.589 1.00 13.57 ? 99 ARG A CB 1 +ATOM 743 C CG . ARG A 1 99 ? 21.473 28.331 20.723 1.00 18.50 ? 99 ARG A CG 1 +ATOM 744 C CD . ARG A 1 99 ? 20.656 28.636 19.514 1.00 22.12 ? 99 ARG A CD 1 +ATOM 745 N NE . ARG A 1 99 ? 19.311 28.940 19.907 1.00 20.75 ? 99 ARG A NE 1 +ATOM 746 C CZ . ARG A 1 99 ? 18.383 29.214 19.064 1.00 23.81 ? 99 ARG A CZ 1 +ATOM 747 N NH1 . ARG A 1 99 ? 18.619 29.192 17.763 1.00 25.21 ? 99 ARG A NH1 1 +ATOM 748 N NH2 . ARG A 1 99 ? 17.179 29.512 19.584 1.00 30.98 ? 99 ARG A NH2 1 +ATOM 749 N N . SER A 1 100 ? 21.560 30.419 24.744 1.00 14.16 ? 100 SER A N 1 +ATOM 750 C CA . SER A 1 100 ? 21.649 31.564 25.643 1.00 14.97 ? 100 SER A CA 1 +ATOM 751 C C . SER A 1 100 ? 22.070 31.222 27.027 1.00 13.98 ? 100 SER A C 1 +ATOM 752 O O . SER A 1 100 ? 22.511 32.089 27.722 1.00 18.02 ? 100 SER A O 1 +ATOM 753 C CB . SER A 1 100 ? 20.310 32.293 25.832 1.00 15.89 ? 100 SER A CB 1 +ATOM 754 O OG . SER A 1 100 ? 19.716 32.641 24.628 1.00 36.76 ? 100 SER A OG 1 +ATOM 755 N N . HIS A 1 101 ? 21.835 29.983 27.480 1.00 14.12 ? 101 HIS A N 1 +ATOM 756 C CA . HIS A 1 101 ? 22.171 29.541 28.794 1.00 11.34 ? 101 HIS A CA 1 +ATOM 757 C C . HIS A 1 101 ? 22.643 28.103 28.748 1.00 12.34 ? 101 HIS A C 1 +ATOM 758 O O . HIS A 1 101 ? 22.040 27.299 28.068 1.00 19.00 ? 101 HIS A O 1 +ATOM 759 C CB . HIS A 1 101 ? 20.878 29.522 29.661 1.00 14.05 ? 101 HIS A CB 1 +ATOM 760 C CG . HIS A 1 101 ? 20.134 30.815 29.663 1.00 20.42 ? 101 HIS A CG 1 +ATOM 761 N ND1 . HIS A 1 101 ? 20.488 31.828 30.514 1.00 23.57 ? 101 HIS A ND1 1 +ATOM 762 C CD2 . HIS A 1 101 ? 19.107 31.231 28.912 1.00 16.84 ? 101 HIS A CD2 1 +ATOM 763 C CE1 . HIS A 1 101 ? 19.678 32.831 30.272 1.00 20.47 ? 101 HIS A CE1 1 +ATOM 764 N NE2 . HIS A 1 101 ? 18.836 32.524 29.311 1.00 19.92 ? 101 HIS A NE2 1 +ATOM 765 N N . LYS A 1 102 ? 23.693 27.751 29.481 1.00 13.27 ? 102 LYS A N 1 +ATOM 766 C CA . LYS A 1 102 ? 24.083 26.374 29.489 1.00 13.39 ? 102 LYS A CA 1 +ATOM 767 C C . LYS A 1 102 ? 23.059 25.699 30.406 1.00 10.42 ? 102 LYS A C 1 +ATOM 768 O O . LYS A 1 102 ? 22.868 26.122 31.544 1.00 15.66 ? 102 LYS A O 1 +ATOM 769 C CB . LYS A 1 102 ? 25.400 26.269 30.177 1.00 16.22 ? 102 LYS A CB 1 +ATOM 770 C CG . LYS A 1 102 ? 26.112 25.046 29.652 1.00 25.44 ? 102 LYS A CG 1 +ATOM 771 C CD . LYS A 1 102 ? 26.549 24.118 30.710 1.00 29.52 ? 102 LYS A CD 1 +ATOM 772 C CE . LYS A 1 102 ? 26.707 22.785 30.036 1.00 29.93 ? 102 LYS A CE 1 +ATOM 773 N NZ . LYS A 1 102 ? 25.584 21.918 30.364 1.00 36.72 ? 102 LYS A NZ 1 +ATOM 774 N N . PRO A 1 103 ? 22.466 24.647 29.936 1.00 15.76 ? 103 PRO A N 1 +ATOM 775 C CA . PRO A 1 103 ? 21.470 23.972 30.713 1.00 15.69 ? 103 PRO A CA 1 +ATOM 776 C C . PRO A 1 103 ? 21.975 23.183 31.846 1.00 18.55 ? 103 PRO A C 1 +ATOM 777 O O . PRO A 1 103 ? 22.940 22.474 31.712 1.00 26.19 ? 103 PRO A O 1 +ATOM 778 C CB . PRO A 1 103 ? 20.701 23.078 29.774 1.00 16.13 ? 103 PRO A CB 1 +ATOM 779 C CG . PRO A 1 103 ? 20.980 23.639 28.409 1.00 18.47 ? 103 PRO A CG 1 +ATOM 780 C CD . PRO A 1 103 ? 22.348 24.288 28.535 1.00 18.07 ? 103 PRO A CD 1 +ATOM 781 N N . GLN A 1 104 ? 21.329 23.295 32.987 1.00 13.21 ? 104 GLN A N 1 +ATOM 782 C CA . GLN A 1 104 ? 21.702 22.532 34.108 1.00 13.29 ? 104 GLN A CA 1 +ATOM 783 C C . GLN A 1 104 ? 20.652 21.462 34.449 1.00 15.98 ? 104 GLN A C 1 +ATOM 784 O O . GLN A 1 104 ? 19.455 21.675 34.187 1.00 18.77 ? 104 GLN A O 1 +ATOM 785 C CB . GLN A 1 104 ? 21.748 23.498 35.287 1.00 21.88 ? 104 GLN A CB 1 +ATOM 786 C CG . GLN A 1 104 ? 22.692 24.690 35.040 1.00 33.97 ? 104 GLN A CG 1 +ATOM 787 C CD . GLN A 1 104 ? 22.648 25.645 36.206 1.00 39.00 ? 104 GLN A CD 1 +ATOM 788 O OE1 . GLN A 1 104 ? 23.076 26.800 36.091 1.00 42.12 ? 104 GLN A OE1 1 +ATOM 789 N NE2 . GLN A 1 104 ? 22.100 25.161 37.319 1.00 46.37 ? 104 GLN A NE2 1 +ATOM 790 N N . GLY A 1 105 ? 21.122 20.349 35.031 1.00 17.47 ? 105 GLY A N 1 +ATOM 791 C CA . GLY A 1 105 ? 20.369 19.186 35.526 1.00 17.93 ? 105 GLY A CA 1 +ATOM 792 C C . GLY A 1 105 ? 19.741 18.303 34.476 1.00 19.86 ? 105 GLY A C 1 +ATOM 793 O O . GLY A 1 105 ? 20.009 18.450 33.286 1.00 23.85 ? 105 GLY A O 1 +ATOM 794 N N . THR A 1 106 ? 18.936 17.350 34.957 1.00 14.38 ? 106 THR A N 1 +ATOM 795 C CA . THR A 1 106 ? 18.159 16.413 34.185 1.00 14.74 ? 106 THR A CA 1 +ATOM 796 C C . THR A 1 106 ? 17.000 17.217 33.674 1.00 15.75 ? 106 THR A C 1 +ATOM 797 O O . THR A 1 106 ? 16.655 18.282 34.214 1.00 19.94 ? 106 THR A O 1 +ATOM 798 C CB . THR A 1 106 ? 17.622 15.255 35.063 1.00 25.80 ? 106 THR A CB 1 +ATOM 799 O OG1 . THR A 1 106 ? 16.983 15.844 36.198 1.00 30.45 ? 106 THR A OG1 1 +ATOM 800 C CG2 . THR A 1 106 ? 18.853 14.477 35.520 1.00 36.82 ? 106 THR A CG2 1 +ATOM 801 N N . TRP A 1 107 ? 16.430 16.720 32.633 1.00 13.52 ? 107 TRP A N 1 +ATOM 802 C CA . TRP A 1 107 ? 15.411 17.471 31.974 1.00 13.53 ? 107 TRP A CA 1 +ATOM 803 C C . TRP A 1 107 ? 14.096 17.693 32.696 1.00 18.89 ? 107 TRP A C 1 +ATOM 804 O O . TRP A 1 107 ? 13.303 18.569 32.323 1.00 15.93 ? 107 TRP A O 1 +ATOM 805 C CB . TRP A 1 107 ? 15.153 16.915 30.569 1.00 15.11 ? 107 TRP A CB 1 +ATOM 806 C CG . TRP A 1 107 ? 14.446 15.607 30.602 1.00 16.54 ? 107 TRP A CG 1 +ATOM 807 C CD1 . TRP A 1 107 ? 15.014 14.423 30.860 1.00 27.83 ? 107 TRP A CD1 1 +ATOM 808 C CD2 . TRP A 1 107 ? 13.038 15.367 30.462 1.00 20.46 ? 107 TRP A CD2 1 +ATOM 809 N NE1 . TRP A 1 107 ? 14.077 13.445 30.844 1.00 20.20 ? 107 TRP A NE1 1 +ATOM 810 C CE2 . TRP A 1 107 ? 12.840 13.983 30.614 1.00 26.80 ? 107 TRP A CE2 1 +ATOM 811 C CE3 . TRP A 1 107 ? 11.917 16.182 30.264 1.00 18.11 ? 107 TRP A CE3 1 +ATOM 812 C CZ2 . TRP A 1 107 ? 11.561 13.400 30.558 1.00 29.14 ? 107 TRP A CZ2 1 +ATOM 813 C CZ3 . TRP A 1 107 ? 10.656 15.603 30.159 1.00 20.84 ? 107 TRP A CZ3 1 +ATOM 814 C CH2 . TRP A 1 107 ? 10.481 14.231 30.339 1.00 20.62 ? 107 TRP A CH2 1 +ATOM 815 N N . ASN A 1 108 ? 13.840 16.881 33.677 1.00 14.60 ? 108 ASN A N 1 +ATOM 816 C CA . ASN A 1 108 ? 12.553 16.952 34.347 1.00 13.18 ? 108 ASN A CA 1 +ATOM 817 C C . ASN A 1 108 ? 12.654 16.982 35.818 1.00 20.14 ? 108 ASN A C 1 +ATOM 818 O O . ASN A 1 108 ? 11.678 16.615 36.489 1.00 21.85 ? 108 ASN A O 1 +ATOM 819 C CB . ASN A 1 108 ? 11.606 15.869 33.881 1.00 12.55 ? 108 ASN A CB 1 +ATOM 820 C CG . ASN A 1 108 ? 12.159 14.511 34.215 1.00 29.17 ? 108 ASN A CG 1 +ATOM 821 O OD1 . ASN A 1 108 ? 13.301 14.369 34.679 1.00 20.40 ? 108 ASN A OD1 1 +ATOM 822 N ND2 . ASN A 1 108 ? 11.331 13.496 33.998 1.00 26.56 ? 108 ASN A ND2 1 +ATOM 823 N N . GLY A 1 109 ? 13.802 17.500 36.274 1.00 15.41 ? 109 GLY A N 1 +ATOM 824 C CA . GLY A 1 109 ? 14.026 17.597 37.696 1.00 12.70 ? 109 GLY A CA 1 +ATOM 825 C C . GLY A 1 109 ? 14.033 19.013 38.239 1.00 17.18 ? 109 GLY A C 1 +ATOM 826 O O . GLY A 1 109 ? 13.876 20.023 37.530 1.00 17.65 ? 109 GLY A O 1 +ATOM 827 N N . GLU A 1 110 ? 14.241 19.074 39.539 1.00 13.57 ? 110 GLU A N 1 +ATOM 828 C CA . GLU A 1 110 ? 14.267 20.319 40.290 1.00 15.32 ? 110 GLU A CA 1 +ATOM 829 C C . GLU A 1 110 ? 15.333 21.319 39.869 1.00 12.74 ? 110 GLU A C 1 +ATOM 830 O O . GLU A 1 110 ? 15.118 22.538 39.879 1.00 14.64 ? 110 GLU A O 1 +ATOM 831 C CB . GLU A 1 110 ? 14.357 20.032 41.790 1.00 14.18 ? 110 GLU A CB 1 +ATOM 832 C CG . GLU A 1 110 ? 14.271 21.340 42.560 1.00 24.16 ? 110 GLU A CG 1 +ATOM 833 C CD . GLU A 1 110 ? 14.356 21.054 44.016 1.00 45.05 ? 110 GLU A CD 1 +ATOM 834 O OE1 . GLU A 1 110 ? 14.444 19.914 44.394 1.00 34.73 ? 110 GLU A OE1 1 +ATOM 835 O OE2 . GLU A 1 110 ? 14.411 22.103 44.794 1.00 32.96 ? 110 GLU A OE2 1 +ATOM 836 N N . VAL A 1 111 ? 16.503 20.821 39.476 1.00 16.06 ? 111 VAL A N 1 +ATOM 837 C CA . VAL A 1 111 ? 17.543 21.728 39.039 1.00 15.97 ? 111 VAL A CA 1 +ATOM 838 C C . VAL A 1 111 ? 17.152 22.467 37.803 1.00 9.36 ? 111 VAL A C 1 +ATOM 839 O O . VAL A 1 111 ? 17.298 23.696 37.670 1.00 14.76 ? 111 VAL A O 1 +ATOM 840 C CB . VAL A 1 111 ? 18.908 21.052 38.954 1.00 21.87 ? 111 VAL A CB 1 +ATOM 841 C CG1 . VAL A 1 111 ? 19.935 21.998 38.286 1.00 18.98 ? 111 VAL A CG1 1 +ATOM 842 C CG2 . VAL A 1 111 ? 19.352 20.760 40.371 1.00 18.07 ? 111 VAL A CG2 1 +ATOM 843 N N . HIS A 1 112 ? 16.588 21.767 36.890 1.00 11.68 ? 112 HIS A N 1 +ATOM 844 C CA . HIS A 1 112 ? 16.143 22.370 35.669 1.00 13.15 ? 112 HIS A CA 1 +ATOM 845 C C . HIS A 1 112 ? 15.030 23.356 35.922 1.00 12.75 ? 112 HIS A C 1 +ATOM 846 O O . HIS A 1 112 ? 15.059 24.482 35.453 1.00 10.80 ? 112 HIS A O 1 +ATOM 847 C CB . HIS A 1 112 ? 15.628 21.303 34.733 1.00 9.48 ? 112 HIS A CB 1 +ATOM 848 C CG . HIS A 1 112 ? 14.807 21.939 33.707 1.00 9.64 ? 112 HIS A CG 1 +ATOM 849 N ND1 . HIS A 1 112 ? 15.335 22.718 32.726 1.00 8.60 ? 112 HIS A ND1 1 +ATOM 850 C CD2 . HIS A 1 112 ? 13.458 21.941 33.572 1.00 8.95 ? 112 HIS A CD2 1 +ATOM 851 C CE1 . HIS A 1 112 ? 14.324 23.100 31.971 1.00 12.54 ? 112 HIS A CE1 1 +ATOM 852 N NE2 . HIS A 1 112 ? 13.183 22.676 32.484 1.00 11.73 ? 112 HIS A NE2 1 +ATOM 853 N N . ILE A 1 113 ? 14.026 22.943 36.678 1.00 13.63 ? 113 ILE A N 1 +ATOM 854 C CA . ILE A 1 113 ? 12.922 23.849 36.995 1.00 11.64 ? 113 ILE A CA 1 +ATOM 855 C C . ILE A 1 113 ? 13.419 25.073 37.681 1.00 12.74 ? 113 ILE A C 1 +ATOM 856 O O . ILE A 1 113 ? 12.921 26.178 37.405 1.00 13.87 ? 113 ILE A O 1 +ATOM 857 C CB . ILE A 1 113 ? 11.751 23.154 37.718 1.00 11.36 ? 113 ILE A CB 1 +ATOM 858 C CG1 . ILE A 1 113 ? 11.238 22.081 36.828 1.00 14.34 ? 113 ILE A CG1 1 +ATOM 859 C CG2 . ILE A 1 113 ? 10.598 24.144 37.976 1.00 13.20 ? 113 ILE A CG2 1 +ATOM 860 C CD1 . ILE A 1 113 ? 10.303 21.071 37.486 1.00 24.34 ? 113 ILE A CD1 1 +ATOM 861 N N . THR A 1 114 ? 14.396 24.926 38.577 1.00 9.59 ? 114 THR A N 1 +ATOM 862 C CA . THR A 1 114 ? 14.979 26.066 39.250 1.00 12.27 ? 114 THR A CA 1 +ATOM 863 C C . THR A 1 114 ? 15.637 27.046 38.287 1.00 8.70 ? 114 THR A C 1 +ATOM 864 O O . THR A 1 114 ? 15.469 28.281 38.339 1.00 12.54 ? 114 THR A O 1 +ATOM 865 C CB . THR A 1 114 ? 15.969 25.577 40.294 1.00 16.79 ? 114 THR A CB 1 +ATOM 866 O OG1 . THR A 1 114 ? 15.260 24.765 41.214 1.00 18.29 ? 114 THR A OG1 1 +ATOM 867 C CG2 . THR A 1 114 ? 16.635 26.696 41.037 1.00 15.76 ? 114 THR A CG2 1 +ATOM 868 N N . GLN A 1 115 ? 16.418 26.499 37.361 1.00 14.47 ? 115 GLN A N 1 +ATOM 869 C CA . GLN A 1 115 ? 17.100 27.305 36.370 1.00 11.89 ? 115 GLN A CA 1 +ATOM 870 C C . GLN A 1 115 ? 16.116 28.049 35.546 1.00 10.04 ? 115 GLN A C 1 +ATOM 871 O O . GLN A 1 115 ? 16.255 29.286 35.373 1.00 12.53 ? 115 GLN A O 1 +ATOM 872 C CB . GLN A 1 115 ? 18.025 26.456 35.474 1.00 13.92 ? 115 GLN A CB 1 +ATOM 873 C CG . GLN A 1 115 ? 18.762 27.408 34.521 1.00 13.13 ? 115 GLN A CG 1 +ATOM 874 C CD . GLN A 1 115 ? 19.741 26.765 33.560 1.00 20.03 ? 115 GLN A CD 1 +ATOM 875 O OE1 . GLN A 1 115 ? 20.708 27.396 33.086 1.00 21.15 ? 115 GLN A OE1 1 +ATOM 876 N NE2 . GLN A 1 115 ? 19.444 25.538 33.233 1.00 12.41 ? 115 GLN A NE2 1 +ATOM 877 N N . GLY A 1 116 ? 15.103 27.358 35.030 1.00 11.50 ? 116 GLY A N 1 +ATOM 878 C CA . GLY A 1 116 ? 14.100 28.039 34.237 1.00 8.68 ? 116 GLY A CA 1 +ATOM 879 C C . GLY A 1 116 ? 13.343 29.144 34.982 1.00 11.05 ? 116 GLY A C 1 +ATOM 880 O O . GLY A 1 116 ? 13.121 30.246 34.478 1.00 10.90 ? 116 GLY A O 1 +ATOM 881 N N . THR A 1 117 ? 13.001 28.867 36.246 1.00 11.99 ? 117 THR A N 1 +ATOM 882 C CA . THR A 1 117 ? 12.277 29.821 37.089 1.00 12.94 ? 117 THR A CA 1 +ATOM 883 C C . THR A 1 117 ? 13.179 30.990 37.396 1.00 15.06 ? 117 THR A C 1 +ATOM 884 O O . THR A 1 117 ? 12.718 32.134 37.458 1.00 13.76 ? 117 THR A O 1 +ATOM 885 C CB . THR A 1 117 ? 11.648 29.112 38.299 1.00 14.92 ? 117 THR A CB 1 +ATOM 886 O OG1 . THR A 1 117 ? 10.813 28.124 37.807 1.00 11.79 ? 117 THR A OG1 1 +ATOM 887 C CG2 . THR A 1 117 ? 10.740 30.049 39.047 1.00 13.01 ? 117 THR A CG2 1 +ATOM 888 N N . THR A 1 118 ? 14.489 30.716 37.511 1.00 13.38 ? 118 THR A N 1 +ATOM 889 C CA . THR A 1 118 ? 15.414 31.780 37.770 1.00 9.58 ? 118 THR A CA 1 +ATOM 890 C C . THR A 1 118 ? 15.511 32.710 36.629 1.00 9.36 ? 118 THR A C 1 +ATOM 891 O O . THR A 1 118 ? 15.561 33.959 36.750 1.00 14.92 ? 118 THR A O 1 +ATOM 892 C CB . THR A 1 118 ? 16.772 31.273 38.289 1.00 13.80 ? 118 THR A CB 1 +ATOM 893 O OG1 . THR A 1 118 ? 16.541 30.629 39.509 1.00 17.82 ? 118 THR A OG1 1 +ATOM 894 C CG2 . THR A 1 118 ? 17.722 32.430 38.529 1.00 17.56 ? 118 THR A CG2 1 +ATOM 895 N N . ILE A 1 119 ? 15.504 32.149 35.448 1.00 11.05 ? 119 ILE A N 1 +ATOM 896 C CA . ILE A 1 119 ? 15.590 32.984 34.294 1.00 12.16 ? 119 ILE A CA 1 +ATOM 897 C C . ILE A 1 119 ? 14.338 33.857 34.254 1.00 15.42 ? 119 ILE A C 1 +ATOM 898 O O . ILE A 1 119 ? 14.390 35.046 33.925 1.00 14.32 ? 119 ILE A O 1 +ATOM 899 C CB . ILE A 1 119 ? 15.885 32.160 33.029 1.00 14.01 ? 119 ILE A CB 1 +ATOM 900 C CG1 . ILE A 1 119 ? 17.304 31.541 33.020 1.00 17.39 ? 119 ILE A CG1 1 +ATOM 901 C CG2 . ILE A 1 119 ? 15.647 32.931 31.747 1.00 17.00 ? 119 ILE A CG2 1 +ATOM 902 C CD1 . ILE A 1 119 ? 17.492 30.338 32.087 1.00 14.82 ? 119 ILE A CD1 1 +ATOM 903 N N . LEU A 1 120 ? 13.192 33.268 34.560 1.00 12.47 ? 120 LEU A N 1 +ATOM 904 C CA . LEU A 1 120 ? 11.961 34.049 34.541 1.00 7.41 ? 120 LEU A CA 1 +ATOM 905 C C . LEU A 1 120 ? 11.994 35.187 35.520 1.00 6.42 ? 120 LEU A C 1 +ATOM 906 O O . LEU A 1 120 ? 11.643 36.355 35.213 1.00 9.78 ? 120 LEU A O 1 +ATOM 907 C CB . LEU A 1 120 ? 10.740 33.164 34.887 1.00 14.98 ? 120 LEU A CB 1 +ATOM 908 C CG . LEU A 1 120 ? 9.421 33.977 35.154 1.00 15.58 ? 120 LEU A CG 1 +ATOM 909 C CD1 . LEU A 1 120 ? 8.833 34.560 33.888 1.00 12.77 ? 120 LEU A CD1 1 +ATOM 910 C CD2 . LEU A 1 120 ? 8.393 33.037 35.811 1.00 21.28 ? 120 LEU A CD2 1 +ATOM 911 N N . ILE A 1 121 ? 12.409 34.909 36.727 1.00 11.23 ? 121 ILE A N 1 +ATOM 912 C CA . ILE A 1 121 ? 12.481 35.970 37.743 1.00 14.14 ? 121 ILE A CA 1 +ATOM 913 C C . ILE A 1 121 ? 13.390 37.105 37.307 1.00 14.85 ? 121 ILE A C 1 +ATOM 914 O O . ILE A 1 121 ? 13.098 38.307 37.432 1.00 14.23 ? 121 ILE A O 1 +ATOM 915 C CB . ILE A 1 121 ? 12.909 35.371 39.056 1.00 15.11 ? 121 ILE A CB 1 +ATOM 916 C CG1 . ILE A 1 121 ? 11.835 34.451 39.602 1.00 17.84 ? 121 ILE A CG1 1 +ATOM 917 C CG2 . ILE A 1 121 ? 13.181 36.482 40.048 1.00 19.78 ? 121 ILE A CG2 1 +ATOM 918 C CD1 . ILE A 1 121 ? 12.411 33.635 40.735 1.00 32.00 ? 121 ILE A CD1 1 +ATOM 919 N N . ASN A 1 122 ? 14.530 36.731 36.710 1.00 16.54 ? 122 ASN A N 1 +ATOM 920 C CA . ASN A 1 122 ? 15.425 37.778 36.240 1.00 16.50 ? 122 ASN A CA 1 +ATOM 921 C C . ASN A 1 122 ? 14.773 38.658 35.228 1.00 11.42 ? 122 ASN A C 1 +ATOM 922 O O . ASN A 1 122 ? 14.985 39.894 35.181 1.00 15.65 ? 122 ASN A O 1 +ATOM 923 C CB . ASN A 1 122 ? 16.765 37.228 35.715 1.00 15.19 ? 122 ASN A CB 1 +ATOM 924 C CG . ASN A 1 122 ? 17.606 36.496 36.761 1.00 32.88 ? 122 ASN A CG 1 +ATOM 925 O OD1 . ASN A 1 122 ? 18.306 35.487 36.495 1.00 46.07 ? 122 ASN A OD1 1 +ATOM 926 N ND2 . ASN A 1 122 ? 17.538 36.978 37.985 1.00 28.52 ? 122 ASN A ND2 1 +ATOM 927 N N . PHE A 1 123 ? 13.945 38.097 34.395 1.00 10.54 ? 123 PHE A N 1 +ATOM 928 C CA . PHE A 1 123 ? 13.208 38.874 33.434 1.00 8.25 ? 123 PHE A CA 1 +ATOM 929 C C . PHE A 1 123 ? 12.161 39.761 34.147 1.00 14.51 ? 123 PHE A C 1 +ATOM 930 O O . PHE A 1 123 ? 11.968 40.953 33.810 1.00 13.76 ? 123 PHE A O 1 +ATOM 931 C CB . PHE A 1 123 ? 12.547 37.990 32.413 1.00 10.12 ? 123 PHE A CB 1 +ATOM 932 C CG . PHE A 1 123 ? 13.474 37.532 31.306 1.00 14.02 ? 123 PHE A CG 1 +ATOM 933 C CD1 . PHE A 1 123 ? 14.188 38.483 30.591 1.00 17.42 ? 123 PHE A CD1 1 +ATOM 934 C CD2 . PHE A 1 123 ? 13.586 36.184 30.963 1.00 15.13 ? 123 PHE A CD2 1 +ATOM 935 C CE1 . PHE A 1 123 ? 15.010 38.096 29.536 1.00 15.71 ? 123 PHE A CE1 1 +ATOM 936 C CE2 . PHE A 1 123 ? 14.394 35.776 29.898 1.00 15.46 ? 123 PHE A CE2 1 +ATOM 937 C CZ . PHE A 1 123 ? 15.120 36.746 29.213 1.00 14.54 ? 123 PHE A CZ 1 +ATOM 938 N N . ILE A 1 124 ? 11.494 39.200 35.163 1.00 18.55 ? 124 ILE A N 1 +ATOM 939 C CA . ILE A 1 124 ? 10.524 39.972 35.969 1.00 14.84 ? 124 ILE A CA 1 +ATOM 940 C C . ILE A 1 124 ? 11.217 41.185 36.546 1.00 14.59 ? 124 ILE A C 1 +ATOM 941 O O . ILE A 1 124 ? 10.748 42.321 36.415 1.00 16.32 ? 124 ILE A O 1 +ATOM 942 C CB . ILE A 1 124 ? 9.771 39.177 37.043 1.00 17.94 ? 124 ILE A CB 1 +ATOM 943 C CG1 . ILE A 1 124 ? 8.936 38.083 36.398 1.00 17.25 ? 124 ILE A CG1 1 +ATOM 944 C CG2 . ILE A 1 124 ? 8.823 40.097 37.839 1.00 18.31 ? 124 ILE A CG2 1 +ATOM 945 C CD1 . ILE A 1 124 ? 8.634 37.017 37.423 1.00 18.45 ? 124 ILE A CD1 1 +ATOM 946 N N . LYS A 1 125 ? 12.359 40.959 37.154 1.00 14.56 ? 125 LYS A N 1 +ATOM 947 C CA . LYS A 1 125 ? 13.075 42.080 37.678 1.00 13.05 ? 125 LYS A CA 1 +ATOM 948 C C . LYS A 1 125 ? 13.496 43.091 36.698 1.00 13.41 ? 125 LYS A C 1 +ATOM 949 O O . LYS A 1 125 ? 13.503 44.280 36.992 1.00 17.93 ? 125 LYS A O 1 +ATOM 950 C CB . LYS A 1 125 ? 14.255 41.594 38.391 1.00 18.74 ? 125 LYS A CB 1 +ATOM 951 C CG . LYS A 1 125 ? 13.785 40.893 39.642 1.00 26.06 ? 125 LYS A CG 1 +ATOM 952 C CD . LYS A 1 125 ? 14.813 39.859 40.022 1.00 33.75 ? 125 LYS A CD 1 +ATOM 953 C CE . LYS A 1 125 ? 14.718 39.440 41.460 1.00 42.60 ? 125 LYS A CE 1 +ATOM 954 N NZ . LYS A 1 125 ? 15.368 40.453 42.262 1.00 45.95 ? 125 LYS A NZ 1 +ATOM 955 N N . THR A 1 126 ? 13.895 42.668 35.534 1.00 14.18 ? 126 THR A N 1 +ATOM 956 C CA . THR A 1 126 ? 14.263 43.632 34.537 1.00 14.74 ? 126 THR A CA 1 +ATOM 957 C C . THR A 1 126 ? 13.083 44.496 34.184 1.00 21.48 ? 126 THR A C 1 +ATOM 958 O O . THR A 1 126 ? 13.180 45.706 34.026 1.00 14.48 ? 126 THR A O 1 +ATOM 959 C CB . THR A 1 126 ? 14.736 42.843 33.314 1.00 18.24 ? 126 THR A CB 1 +ATOM 960 O OG1 . THR A 1 126 ? 15.903 42.159 33.700 1.00 18.95 ? 126 THR A OG1 1 +ATOM 961 C CG2 . THR A 1 126 ? 15.033 43.748 32.138 1.00 20.80 ? 126 THR A CG2 1 +ATOM 962 N N . ILE A 1 127 ? 11.955 43.854 34.000 1.00 13.78 ? 127 ILE A N 1 +ATOM 963 C CA . ILE A 1 127 ? 10.740 44.582 33.660 1.00 12.46 ? 127 ILE A CA 1 +ATOM 964 C C . ILE A 1 127 ? 10.312 45.553 34.781 1.00 12.48 ? 127 ILE A C 1 +ATOM 965 O O . ILE A 1 127 ? 9.837 46.683 34.527 1.00 14.90 ? 127 ILE A O 1 +ATOM 966 C CB . ILE A 1 127 ? 9.625 43.587 33.277 1.00 18.12 ? 127 ILE A CB 1 +ATOM 967 C CG1 . ILE A 1 127 ? 9.950 42.798 31.996 1.00 22.77 ? 127 ILE A CG1 1 +ATOM 968 C CG2 . ILE A 1 127 ? 8.247 44.246 33.189 1.00 17.55 ? 127 ILE A CG2 1 +ATOM 969 C CD1 . ILE A 1 127 ? 10.309 43.615 30.755 1.00 21.99 ? 127 ILE A CD1 1 +ATOM 970 N N . GLN A 1 128 ? 10.500 45.132 36.018 1.00 12.41 ? 128 GLN A N 1 +ATOM 971 C CA . GLN A 1 128 ? 10.153 46.000 37.146 1.00 14.64 ? 128 GLN A CA 1 +ATOM 972 C C . GLN A 1 128 ? 10.900 47.320 37.093 1.00 24.27 ? 128 GLN A C 1 +ATOM 973 O O . GLN A 1 128 ? 10.345 48.392 37.354 1.00 18.67 ? 128 GLN A O 1 +ATOM 974 C CB . GLN A 1 128 ? 10.327 45.327 38.502 1.00 14.66 ? 128 GLN A CB 1 +ATOM 975 C CG . GLN A 1 128 ? 9.420 44.094 38.724 1.00 16.55 ? 128 GLN A CG 1 +ATOM 976 C CD . GLN A 1 128 ? 9.551 43.425 40.078 1.00 20.25 ? 128 GLN A CD 1 +ATOM 977 O OE1 . GLN A 1 128 ? 8.700 42.606 40.564 1.00 25.50 ? 128 GLN A OE1 1 +ATOM 978 N NE2 . GLN A 1 128 ? 10.701 43.682 40.657 1.00 19.09 ? 128 GLN A NE2 1 +ATOM 979 N N . LYS A 1 129 ? 12.171 47.232 36.694 1.00 19.51 ? 129 LYS A N 1 +ATOM 980 C CA . LYS A 1 129 ? 13.006 48.404 36.606 1.00 21.63 ? 129 LYS A CA 1 +ATOM 981 C C . LYS A 1 129 ? 12.730 49.242 35.412 1.00 16.08 ? 129 LYS A C 1 +ATOM 982 O O . LYS A 1 129 ? 12.833 50.489 35.415 1.00 19.05 ? 129 LYS A O 1 +ATOM 983 C CB . LYS A 1 129 ? 14.480 48.083 36.720 1.00 19.94 ? 129 LYS A CB 1 +ATOM 984 C CG . LYS A 1 129 ? 14.839 47.364 37.993 1.00 33.50 ? 129 LYS A CG 1 +ATOM 985 C CD . LYS A 1 129 ? 16.259 46.803 37.891 1.00 60.34 ? 129 LYS A CD 1 +ATOM 986 C CE . LYS A 1 129 ? 16.409 45.375 38.413 1.00 72.03 ? 129 LYS A CE 1 +ATOM 987 N NZ . LYS A 1 129 ? 17.035 44.427 37.444 1.00 58.27 ? 129 LYS A NZ 1 +ATOM 988 N N . LYS A 1 130 ? 12.334 48.539 34.383 1.00 14.47 ? 130 LYS A N 1 +ATOM 989 C CA . LYS A 1 130 ? 12.069 49.179 33.159 1.00 14.14 ? 130 LYS A CA 1 +ATOM 990 C C . LYS A 1 130 ? 10.768 49.961 33.190 1.00 32.06 ? 130 LYS A C 1 +ATOM 991 O O . LYS A 1 130 ? 10.676 51.042 32.598 1.00 19.18 ? 130 LYS A O 1 +ATOM 992 C CB . LYS A 1 130 ? 12.156 48.111 32.079 1.00 13.94 ? 130 LYS A CB 1 +ATOM 993 C CG . LYS A 1 130 ? 11.876 48.584 30.688 1.00 16.19 ? 130 LYS A CG 1 +ATOM 994 C CD . LYS A 1 130 ? 12.200 47.539 29.639 1.00 15.46 ? 130 LYS A CD 1 +ATOM 995 C CE . LYS A 1 130 ? 12.162 48.089 28.252 1.00 17.42 ? 130 LYS A CE 1 +ATOM 996 N NZ . LYS A 1 130 ? 12.361 47.043 27.267 1.00 17.97 ? 130 LYS A NZ 1 +ATOM 997 N N . PHE A 1 131 ? 9.750 49.402 33.869 1.00 17.15 ? 131 PHE A N 1 +ATOM 998 C CA . PHE A 1 131 ? 8.436 50.059 33.955 1.00 17.51 ? 131 PHE A CA 1 +ATOM 999 C C . PHE A 1 131 ? 7.975 50.154 35.394 1.00 19.50 ? 131 PHE A C 1 +ATOM 1000 O O . PHE A 1 131 ? 7.128 49.406 35.873 1.00 16.50 ? 131 PHE A O 1 +ATOM 1001 C CB . PHE A 1 131 ? 7.442 49.164 33.257 1.00 13.65 ? 131 PHE A CB 1 +ATOM 1002 C CG . PHE A 1 131 ? 7.700 49.105 31.791 1.00 17.26 ? 131 PHE A CG 1 +ATOM 1003 C CD1 . PHE A 1 131 ? 7.455 50.209 30.994 1.00 15.03 ? 131 PHE A CD1 1 +ATOM 1004 C CD2 . PHE A 1 131 ? 8.182 47.923 31.229 1.00 17.10 ? 131 PHE A CD2 1 +ATOM 1005 C CE1 . PHE A 1 131 ? 7.677 50.161 29.630 1.00 22.71 ? 131 PHE A CE1 1 +ATOM 1006 C CE2 . PHE A 1 131 ? 8.444 47.876 29.868 1.00 15.12 ? 131 PHE A CE2 1 +ATOM 1007 C CZ . PHE A 1 131 ? 8.183 48.982 29.077 1.00 17.04 ? 131 PHE A CZ 1 +ATOM 1008 N N . PRO A 1 132 ? 8.553 51.054 36.122 1.00 17.40 ? 132 PRO A N 1 +ATOM 1009 C CA . PRO A 1 132 ? 8.225 51.136 37.521 1.00 23.50 ? 132 PRO A CA 1 +ATOM 1010 C C . PRO A 1 132 ? 6.878 51.781 37.873 1.00 17.48 ? 132 PRO A C 1 +ATOM 1011 O O . PRO A 1 132 ? 6.467 51.801 39.033 1.00 30.24 ? 132 PRO A O 1 +ATOM 1012 C CB . PRO A 1 132 ? 9.430 51.788 38.162 1.00 35.59 ? 132 PRO A CB 1 +ATOM 1013 C CG . PRO A 1 132 ? 10.215 52.465 37.045 1.00 34.69 ? 132 PRO A CG 1 +ATOM 1014 C CD . PRO A 1 132 ? 9.739 51.903 35.737 1.00 20.55 ? 132 PRO A CD 1 +ATOM 1015 N N . SER A 1 133 ? 6.180 52.303 36.889 1.00 19.51 ? 133 SER A N 1 +ATOM 1016 C CA . SER A 1 133 ? 4.864 52.875 37.130 1.00 22.40 ? 133 SER A CA 1 +ATOM 1017 C C . SER A 1 133 ? 3.769 51.832 36.852 1.00 19.13 ? 133 SER A C 1 +ATOM 1018 O O . SER A 1 133 ? 2.589 52.112 36.891 1.00 22.74 ? 133 SER A O 1 +ATOM 1019 C CB . SER A 1 133 ? 4.695 54.063 36.227 1.00 24.65 ? 133 SER A CB 1 +ATOM 1020 O OG . SER A 1 133 ? 4.234 53.586 34.985 1.00 40.84 ? 133 SER A OG 1 +ATOM 1021 N N . TRP A 1 134 ? 4.147 50.594 36.516 1.00 16.56 ? 134 TRP A N 1 +ATOM 1022 C CA . TRP A 1 134 ? 3.183 49.526 36.320 1.00 16.53 ? 134 TRP A CA 1 +ATOM 1023 C C . TRP A 1 134 ? 2.885 48.880 37.676 1.00 12.68 ? 134 TRP A C 1 +ATOM 1024 O O . TRP A 1 134 ? 3.611 48.939 38.648 1.00 15.86 ? 134 TRP A O 1 +ATOM 1025 C CB . TRP A 1 134 ? 3.741 48.367 35.417 1.00 14.34 ? 134 TRP A CB 1 +ATOM 1026 C CG . TRP A 1 134 ? 3.815 48.705 33.956 1.00 14.29 ? 134 TRP A CG 1 +ATOM 1027 C CD1 . TRP A 1 134 ? 3.614 49.917 33.375 1.00 14.19 ? 134 TRP A CD1 1 +ATOM 1028 C CD2 . TRP A 1 134 ? 4.208 47.807 32.905 1.00 16.34 ? 134 TRP A CD2 1 +ATOM 1029 N NE1 . TRP A 1 134 ? 3.857 49.843 32.012 1.00 18.38 ? 134 TRP A NE1 1 +ATOM 1030 C CE2 . TRP A 1 134 ? 4.221 48.543 31.717 1.00 14.27 ? 134 TRP A CE2 1 +ATOM 1031 C CE3 . TRP A 1 134 ? 4.558 46.441 32.891 1.00 17.79 ? 134 TRP A CE3 1 +ATOM 1032 C CZ2 . TRP A 1 134 ? 4.570 47.935 30.543 1.00 14.11 ? 134 TRP A CZ2 1 +ATOM 1033 C CZ3 . TRP A 1 134 ? 4.887 45.824 31.723 1.00 13.52 ? 134 TRP A CZ3 1 +ATOM 1034 C CH2 . TRP A 1 134 ? 4.861 46.584 30.591 1.00 10.13 ? 134 TRP A CH2 1 +ATOM 1035 N N . THR A 1 135 ? 1.782 48.142 37.744 1.00 14.31 ? 135 THR A N 1 +ATOM 1036 C CA . THR A 1 135 ? 1.410 47.415 38.922 1.00 13.27 ? 135 THR A CA 1 +ATOM 1037 C C . THR A 1 135 ? 2.223 46.120 38.901 1.00 14.57 ? 135 THR A C 1 +ATOM 1038 O O . THR A 1 135 ? 2.803 45.691 37.928 1.00 14.87 ? 135 THR A O 1 +ATOM 1039 C CB . THR A 1 135 ? -0.102 47.083 38.977 1.00 13.30 ? 135 THR A CB 1 +ATOM 1040 O OG1 . THR A 1 135 ? -0.284 46.016 38.106 1.00 16.39 ? 135 THR A OG1 1 +ATOM 1041 C CG2 . THR A 1 135 ? -1.069 48.217 38.638 1.00 13.04 ? 135 THR A CG2 1 +ATOM 1042 N N . LYS A 1 136 ? 2.373 45.494 40.003 1.00 15.05 ? 136 LYS A N 1 +ATOM 1043 C CA . LYS A 1 136 ? 3.143 44.289 40.100 1.00 13.03 ? 136 LYS A CA 1 +ATOM 1044 C C . LYS A 1 136 ? 2.657 43.223 39.192 1.00 17.74 ? 136 LYS A C 1 +ATOM 1045 O O . LYS A 1 136 ? 3.443 42.476 38.652 1.00 12.53 ? 136 LYS A O 1 +ATOM 1046 C CB . LYS A 1 136 ? 3.106 43.798 41.528 1.00 16.00 ? 136 LYS A CB 1 +ATOM 1047 C CG . LYS A 1 136 ? 4.306 42.969 41.864 1.00 34.19 ? 136 LYS A CG 1 +ATOM 1048 C CD . LYS A 1 136 ? 4.926 43.445 43.131 1.00 33.99 ? 136 LYS A CD 1 +ATOM 1049 C CE . LYS A 1 136 ? 4.166 42.752 44.225 1.00 39.86 ? 136 LYS A CE 1 +ATOM 1050 N NZ . LYS A 1 136 ? 4.961 42.624 45.420 1.00 57.75 ? 136 LYS A NZ 1 +ATOM 1051 N N . ASP A 1 137 ? 1.345 43.106 39.045 1.00 15.21 ? 137 ASP A N 1 +ATOM 1052 C CA . ASP A 1 137 ? 0.748 42.079 38.223 1.00 16.58 ? 137 ASP A CA 1 +ATOM 1053 C C . ASP A 1 137 ? 1.039 42.317 36.785 1.00 14.57 ? 137 ASP A C 1 +ATOM 1054 O O . ASP A 1 137 ? 1.232 41.388 36.031 1.00 14.56 ? 137 ASP A O 1 +ATOM 1055 C CB . ASP A 1 137 ? -0.773 41.979 38.475 1.00 22.62 ? 137 ASP A CB 1 +ATOM 1056 C CG . ASP A 1 137 ? -1.137 41.870 39.923 1.00 19.75 ? 137 ASP A CG 1 +ATOM 1057 O OD1 . ASP A 1 137 ? -0.451 40.954 40.571 1.00 16.06 ? 137 ASP A OD1 1 +ATOM 1058 O OD2 . ASP A 1 137 ? -1.986 42.575 40.432 1.00 31.91 ? 137 ASP A OD2 1 +ATOM 1059 N N . GLN A 1 138 ? 1.083 43.575 36.427 1.00 9.90 ? 138 GLN A N 1 +ATOM 1060 C CA . GLN A 1 138 ? 1.406 43.932 35.083 1.00 7.85 ? 138 GLN A CA 1 +ATOM 1061 C C . GLN A 1 138 ? 2.881 43.553 34.760 1.00 10.85 ? 138 GLN A C 1 +ATOM 1062 O O . GLN A 1 138 ? 3.220 43.114 33.627 1.00 13.12 ? 138 GLN A O 1 +ATOM 1063 C CB . GLN A 1 138 ? 1.255 45.464 34.902 1.00 10.92 ? 138 GLN A CB 1 +ATOM 1064 C CG . GLN A 1 138 ? -0.241 45.859 34.722 1.00 13.88 ? 138 GLN A CG 1 +ATOM 1065 C CD . GLN A 1 138 ? -0.426 47.355 34.471 1.00 19.21 ? 138 GLN A CD 1 +ATOM 1066 O OE1 . GLN A 1 138 ? -1.080 47.805 33.537 1.00 40.32 ? 138 GLN A OE1 1 +ATOM 1067 N NE2 . GLN A 1 138 ? 0.248 48.131 35.252 1.00 10.67 ? 138 GLN A NE2 1 +ATOM 1068 N N . GLN A 1 139 ? 3.732 43.775 35.737 1.00 10.97 ? 139 GLN A N 1 +ATOM 1069 C CA . GLN A 1 139 ? 5.166 43.480 35.620 1.00 11.34 ? 139 GLN A CA 1 +ATOM 1070 C C . GLN A 1 139 ? 5.348 42.011 35.458 1.00 15.03 ? 139 GLN A C 1 +ATOM 1071 O O . GLN A 1 139 ? 6.205 41.553 34.701 1.00 13.36 ? 139 GLN A O 1 +ATOM 1072 C CB . GLN A 1 139 ? 6.000 44.019 36.744 1.00 9.59 ? 139 GLN A CB 1 +ATOM 1073 C CG . GLN A 1 139 ? 5.984 45.575 36.754 1.00 11.41 ? 139 GLN A CG 1 +ATOM 1074 C CD . GLN A 1 139 ? 6.363 46.211 38.066 1.00 13.09 ? 139 GLN A CD 1 +ATOM 1075 O OE1 . GLN A 1 139 ? 6.349 45.576 39.123 1.00 16.98 ? 139 GLN A OE1 1 +ATOM 1076 N NE2 . GLN A 1 139 ? 6.680 47.506 38.031 1.00 16.26 ? 139 GLN A NE2 1 +ATOM 1077 N N . LEU A 1 140 ? 4.544 41.241 36.145 1.00 13.32 ? 140 LEU A N 1 +ATOM 1078 C CA . LEU A 1 140 ? 4.617 39.756 36.020 1.00 10.73 ? 140 LEU A CA 1 +ATOM 1079 C C . LEU A 1 140 ? 4.310 39.334 34.605 1.00 11.71 ? 140 LEU A C 1 +ATOM 1080 O O . LEU A 1 140 ? 4.966 38.467 33.997 1.00 12.90 ? 140 LEU A O 1 +ATOM 1081 C CB . LEU A 1 140 ? 3.668 39.083 37.052 1.00 10.99 ? 140 LEU A CB 1 +ATOM 1082 C CG . LEU A 1 140 ? 3.494 37.588 36.920 1.00 14.62 ? 140 LEU A CG 1 +ATOM 1083 C CD1 . LEU A 1 140 ? 4.814 36.901 37.152 1.00 11.35 ? 140 LEU A CD1 1 +ATOM 1084 C CD2 . LEU A 1 140 ? 2.534 37.211 38.069 1.00 15.80 ? 140 LEU A CD2 1 +ATOM 1085 N N . LYS A 1 141 ? 3.259 39.920 34.056 1.00 9.28 ? 141 LYS A N 1 +ATOM 1086 C CA . LYS A 1 141 ? 2.898 39.628 32.731 1.00 10.10 ? 141 LYS A CA 1 +ATOM 1087 C C . LYS A 1 141 ? 4.073 39.924 31.781 1.00 12.14 ? 141 LYS A C 1 +ATOM 1088 O O . LYS A 1 141 ? 4.397 39.088 30.920 1.00 11.64 ? 141 LYS A O 1 +ATOM 1089 C CB . LYS A 1 141 ? 1.614 40.363 32.335 1.00 8.82 ? 141 LYS A CB 1 +ATOM 1090 C CG . LYS A 1 141 ? 0.974 39.794 31.105 1.00 10.82 ? 141 LYS A CG 1 +ATOM 1091 C CD . LYS A 1 141 ? -0.216 40.597 30.569 1.00 10.76 ? 141 LYS A CD 1 +ATOM 1092 C CE . LYS A 1 141 ? -0.929 39.858 29.454 1.00 14.39 ? 141 LYS A CE 1 +ATOM 1093 N NZ . LYS A 1 141 ? -2.101 40.577 28.908 1.00 15.09 ? 141 LYS A NZ 1 +ATOM 1094 N N . GLY A 1 142 ? 4.624 41.130 31.930 1.00 12.38 ? 142 GLY A N 1 +ATOM 1095 C CA . GLY A 1 142 ? 5.742 41.594 31.099 1.00 12.66 ? 142 GLY A CA 1 +ATOM 1096 C C . GLY A 1 142 ? 6.881 40.616 31.217 1.00 11.62 ? 142 GLY A C 1 +ATOM 1097 O O . GLY A 1 142 ? 7.495 40.215 30.210 1.00 12.18 ? 142 GLY A O 1 +ATOM 1098 N N . GLY A 1 143 ? 7.159 40.169 32.418 1.00 9.74 ? 143 GLY A N 1 +ATOM 1099 C CA . GLY A 1 143 ? 8.218 39.202 32.657 1.00 14.48 ? 143 GLY A CA 1 +ATOM 1100 C C . GLY A 1 143 ? 8.051 37.904 31.920 1.00 13.81 ? 143 GLY A C 1 +ATOM 1101 O O . GLY A 1 143 ? 9.021 37.355 31.382 1.00 12.19 ? 143 GLY A O 1 +ATOM 1102 N N . ILE A 1 144 ? 6.846 37.409 31.898 1.00 8.39 ? 144 ILE A N 1 +ATOM 1103 C CA . ILE A 1 144 ? 6.557 36.181 31.246 1.00 6.98 ? 144 ILE A CA 1 +ATOM 1104 C C . ILE A 1 144 ? 6.741 36.370 29.785 1.00 8.01 ? 144 ILE A C 1 +ATOM 1105 O O . ILE A 1 144 ? 7.173 35.506 29.060 1.00 11.88 ? 144 ILE A O 1 +ATOM 1106 C CB . ILE A 1 144 ? 5.128 35.759 31.589 1.00 9.85 ? 144 ILE A CB 1 +ATOM 1107 C CG1 . ILE A 1 144 ? 4.967 35.475 33.057 1.00 9.90 ? 144 ILE A CG1 1 +ATOM 1108 C CG2 . ILE A 1 144 ? 4.574 34.630 30.708 1.00 12.71 ? 144 ILE A CG2 1 +ATOM 1109 C CD1 . ILE A 1 144 ? 3.490 35.333 33.443 1.00 15.15 ? 144 ILE A CD1 1 +ATOM 1110 N N . SER A 1 145 ? 6.407 37.517 29.253 1.00 7.89 ? 145 SER A N 1 +ATOM 1111 C CA . SER A 1 145 ? 6.550 37.780 27.834 1.00 6.17 ? 145 SER A CA 1 +ATOM 1112 C C . SER A 1 145 ? 7.998 37.833 27.414 1.00 10.93 ? 145 SER A C 1 +ATOM 1113 O O . SER A 1 145 ? 8.372 37.327 26.353 1.00 11.62 ? 145 SER A O 1 +ATOM 1114 C CB . SER A 1 145 ? 5.927 39.132 27.559 1.00 10.41 ? 145 SER A CB 1 +ATOM 1115 O OG . SER A 1 145 ? 5.638 39.172 26.195 1.00 12.14 ? 145 SER A OG 1 +ATOM 1116 N N . ALA A 1 146 ? 8.782 38.379 28.289 1.00 8.23 ? 146 ALA A N 1 +ATOM 1117 C CA . ALA A 1 146 ? 10.243 38.482 28.046 1.00 8.33 ? 146 ALA A CA 1 +ATOM 1118 C C . ALA A 1 146 ? 10.930 37.131 28.057 1.00 17.20 ? 146 ALA A C 1 +ATOM 1119 O O . ALA A 1 146 ? 11.990 36.891 27.434 1.00 12.42 ? 146 ALA A O 1 +ATOM 1120 C CB . ALA A 1 146 ? 10.866 39.340 29.088 1.00 13.06 ? 146 ALA A CB 1 +ATOM 1121 N N . TYR A 1 147 ? 10.359 36.217 28.803 1.00 11.41 ? 147 TYR A N 1 +ATOM 1122 C CA . TYR A 1 147 ? 10.897 34.856 28.905 1.00 12.67 ? 147 TYR A CA 1 +ATOM 1123 C C . TYR A 1 147 ? 11.072 34.244 27.517 1.00 16.62 ? 147 TYR A C 1 +ATOM 1124 O O . TYR A 1 147 ? 12.004 33.488 27.210 1.00 17.26 ? 147 TYR A O 1 +ATOM 1125 C CB . TYR A 1 147 ? 9.976 33.931 29.722 1.00 11.81 ? 147 TYR A CB 1 +ATOM 1126 C CG . TYR A 1 147 ? 10.521 32.552 29.965 1.00 7.41 ? 147 TYR A CG 1 +ATOM 1127 C CD1 . TYR A 1 147 ? 11.359 32.328 31.033 1.00 6.77 ? 147 TYR A CD1 1 +ATOM 1128 C CD2 . TYR A 1 147 ? 10.123 31.483 29.164 1.00 9.53 ? 147 TYR A CD2 1 +ATOM 1129 C CE1 . TYR A 1 147 ? 11.837 31.041 31.260 1.00 12.28 ? 147 TYR A CE1 1 +ATOM 1130 C CE2 . TYR A 1 147 ? 10.584 30.200 29.413 1.00 10.85 ? 147 TYR A CE2 1 +ATOM 1131 C CZ . TYR A 1 147 ? 11.455 29.992 30.452 1.00 12.75 ? 147 TYR A CZ 1 +ATOM 1132 O OH . TYR A 1 147 ? 11.925 28.718 30.694 1.00 14.20 ? 147 TYR A OH 1 +ATOM 1133 N N . ASN A 1 148 ? 10.138 34.560 26.671 1.00 9.24 ? 148 ASN A N 1 +ATOM 1134 C CA . ASN A 1 148 ? 10.140 34.077 25.313 1.00 8.45 ? 148 ASN A CA 1 +ATOM 1135 C C . ASN A 1 148 ? 10.945 34.912 24.335 1.00 17.21 ? 148 ASN A C 1 +ATOM 1136 O O . ASN A 1 148 ? 11.688 34.388 23.500 1.00 18.88 ? 148 ASN A O 1 +ATOM 1137 C CB . ASN A 1 148 ? 8.729 34.052 24.740 1.00 9.68 ? 148 ASN A CB 1 +ATOM 1138 C CG . ASN A 1 148 ? 8.634 33.595 23.348 1.00 12.54 ? 148 ASN A CG 1 +ATOM 1139 O OD1 . ASN A 1 148 ? 8.359 34.397 22.493 1.00 13.95 ? 148 ASN A OD1 1 +ATOM 1140 N ND2 . ASN A 1 148 ? 8.787 32.289 23.108 1.00 14.40 ? 148 ASN A ND2 1 +ATOM 1141 N N . ALA A 1 149 ? 10.756 36.243 24.393 1.00 15.46 ? 149 ALA A N 1 +ATOM 1142 C CA . ALA A 1 149 ? 11.388 37.137 23.451 1.00 12.87 ? 149 ALA A CA 1 +ATOM 1143 C C . ALA A 1 149 ? 12.417 38.103 23.921 1.00 11.58 ? 149 ALA A C 1 +ATOM 1144 O O . ALA A 1 149 ? 12.876 38.874 23.091 1.00 16.69 ? 149 ALA A O 1 +ATOM 1145 C CB . ALA A 1 149 ? 10.329 37.968 22.830 1.00 14.34 ? 149 ALA A CB 1 +ATOM 1146 N N . GLY A 1 150 ? 12.796 38.078 25.153 1.00 13.95 ? 150 GLY A N 1 +ATOM 1147 C CA . GLY A 1 150 ? 13.749 38.992 25.718 1.00 16.34 ? 150 GLY A CA 1 +ATOM 1148 C C . GLY A 1 150 ? 13.042 40.303 26.139 1.00 12.21 ? 150 GLY A C 1 +ATOM 1149 O O . GLY A 1 150 ? 11.954 40.656 25.689 1.00 15.17 ? 150 GLY A O 1 +ATOM 1150 N N . ALA A 1 151 ? 13.657 41.014 27.052 1.00 14.83 ? 151 ALA A N 1 +ATOM 1151 C CA . ALA A 1 151 ? 13.149 42.253 27.602 1.00 13.39 ? 151 ALA A CA 1 +ATOM 1152 C C . ALA A 1 151 ? 13.083 43.382 26.659 1.00 14.55 ? 151 ALA A C 1 +ATOM 1153 O O . ALA A 1 151 ? 12.256 44.297 26.808 1.00 15.50 ? 151 ALA A O 1 +ATOM 1154 C CB . ALA A 1 151 ? 13.789 42.642 28.893 1.00 21.31 ? 151 ALA A CB 1 +ATOM 1155 N N . GLY A 1 152 ? 13.920 43.318 25.637 1.00 14.14 ? 152 GLY A N 1 +ATOM 1156 C CA . GLY A 1 152 ? 13.881 44.382 24.703 1.00 14.22 ? 152 GLY A CA 1 +ATOM 1157 C C . GLY A 1 152 ? 12.607 44.429 23.942 1.00 13.94 ? 152 GLY A C 1 +ATOM 1158 O O . GLY A 1 152 ? 12.228 45.471 23.413 1.00 17.52 ? 152 GLY A O 1 +ATOM 1159 N N . ASN A 1 153 ? 11.925 43.293 23.880 1.00 9.75 ? 153 ASN A N 1 +ATOM 1160 C CA . ASN A 1 153 ? 10.671 43.179 23.137 1.00 10.90 ? 153 ASN A CA 1 +ATOM 1161 C C . ASN A 1 153 ? 9.481 43.781 23.913 1.00 9.55 ? 153 ASN A C 1 +ATOM 1162 O O . ASN A 1 153 ? 8.411 43.961 23.334 1.00 13.79 ? 153 ASN A O 1 +ATOM 1163 C CB . ASN A 1 153 ? 10.354 41.678 22.806 1.00 13.70 ? 153 ASN A CB 1 +ATOM 1164 C CG . ASN A 1 153 ? 9.341 41.550 21.703 1.00 15.14 ? 153 ASN A CG 1 +ATOM 1165 O OD1 . ASN A 1 153 ? 9.583 42.050 20.605 1.00 17.12 ? 153 ASN A OD1 1 +ATOM 1166 N ND2 . ASN A 1 153 ? 8.152 40.981 21.943 1.00 13.26 ? 153 ASN A ND2 1 +ATOM 1167 N N . VAL A 1 154 ? 9.657 44.046 25.189 1.00 10.00 ? 154 VAL A N 1 +ATOM 1168 C CA . VAL A 1 154 ? 8.597 44.619 26.001 1.00 7.86 ? 154 VAL A CA 1 +ATOM 1169 C C . VAL A 1 154 ? 8.771 46.119 26.047 1.00 6.65 ? 154 VAL A C 1 +ATOM 1170 O O . VAL A 1 154 ? 9.553 46.680 26.763 1.00 14.03 ? 154 VAL A O 1 +ATOM 1171 C CB . VAL A 1 154 ? 8.567 43.995 27.355 1.00 10.60 ? 154 VAL A CB 1 +ATOM 1172 C CG1 . VAL A 1 154 ? 7.404 44.565 28.216 1.00 12.57 ? 154 VAL A CG1 1 +ATOM 1173 C CG2 . VAL A 1 154 ? 8.551 42.468 27.237 1.00 10.66 ? 154 VAL A CG2 1 +ATOM 1174 N N . ARG A 1 155 ? 8.010 46.785 25.261 1.00 9.47 ? 155 ARG A N 1 +ATOM 1175 C CA . ARG A 1 155 ? 8.116 48.241 25.191 1.00 12.25 ? 155 ARG A CA 1 +ATOM 1176 C C . ARG A 1 155 ? 6.871 48.954 25.684 1.00 16.36 ? 155 ARG A C 1 +ATOM 1177 O O . ARG A 1 155 ? 6.897 50.172 25.811 1.00 15.27 ? 155 ARG A O 1 +ATOM 1178 C CB . ARG A 1 155 ? 8.333 48.665 23.734 1.00 14.95 ? 155 ARG A CB 1 +ATOM 1179 C CG . ARG A 1 155 ? 9.545 48.076 23.004 1.00 21.52 ? 155 ARG A CG 1 +ATOM 1180 C CD . ARG A 1 155 ? 9.577 48.535 21.549 1.00 20.75 ? 155 ARG A CD 1 +ATOM 1181 N NE . ARG A 1 155 ? 10.077 47.451 20.676 1.00 29.74 ? 155 ARG A NE 1 +ATOM 1182 C CZ . ARG A 1 155 ? 9.502 47.150 19.510 1.00 43.48 ? 155 ARG A CZ 1 +ATOM 1183 N NH1 . ARG A 1 155 ? 8.458 47.893 19.144 1.00 45.09 ? 155 ARG A NH1 1 +ATOM 1184 N NH2 . ARG A 1 155 ? 9.928 46.117 18.704 1.00 41.89 ? 155 ARG A NH2 1 +ATOM 1185 N N . SER A 1 156 ? 5.803 48.205 25.950 1.00 15.41 ? 156 SER A N 1 +ATOM 1186 C CA . SER A 1 156 ? 4.504 48.696 26.426 1.00 12.79 ? 156 SER A CA 1 +ATOM 1187 C C . SER A 1 156 ? 3.703 47.567 27.047 1.00 17.04 ? 156 SER A C 1 +ATOM 1188 O O . SER A 1 156 ? 4.006 46.409 26.800 1.00 16.19 ? 156 SER A O 1 +ATOM 1189 C CB . SER A 1 156 ? 3.675 49.219 25.287 1.00 13.94 ? 156 SER A CB 1 +ATOM 1190 O OG . SER A 1 156 ? 3.123 48.155 24.541 1.00 17.75 ? 156 SER A OG 1 +ATOM 1191 N N . TYR A 1 157 ? 2.616 47.894 27.774 1.00 16.77 ? 157 TYR A N 1 +ATOM 1192 C CA . TYR A 1 157 ? 1.752 46.878 28.357 1.00 12.73 ? 157 TYR A CA 1 +ATOM 1193 C C . TYR A 1 157 ? 0.851 46.229 27.350 1.00 7.39 ? 157 TYR A C 1 +ATOM 1194 O O . TYR A 1 157 ? 0.699 45.004 27.239 1.00 14.51 ? 157 TYR A O 1 +ATOM 1195 C CB . TYR A 1 157 ? 0.984 47.486 29.596 1.00 15.06 ? 157 TYR A CB 1 +ATOM 1196 C CG . TYR A 1 157 ? 0.216 46.370 30.294 1.00 11.70 ? 157 TYR A CG 1 +ATOM 1197 C CD1 . TYR A 1 157 ? 0.892 45.489 31.113 1.00 17.46 ? 157 TYR A CD1 1 +ATOM 1198 C CD2 . TYR A 1 157 ? -1.131 46.147 30.068 1.00 20.70 ? 157 TYR A CD2 1 +ATOM 1199 C CE1 . TYR A 1 157 ? 0.271 44.380 31.689 1.00 16.62 ? 157 TYR A CE1 1 +ATOM 1200 C CE2 . TYR A 1 157 ? -1.788 45.075 30.669 1.00 19.58 ? 157 TYR A CE2 1 +ATOM 1201 C CZ . TYR A 1 157 ? -1.094 44.207 31.486 1.00 21.43 ? 157 TYR A CZ 1 +ATOM 1202 O OH . TYR A 1 157 ? -1.741 43.134 32.083 1.00 24.26 ? 157 TYR A OH 1 +ATOM 1203 N N . ALA A 1 158 ? 0.206 47.052 26.558 1.00 13.89 ? 158 ALA A N 1 +ATOM 1204 C CA . ALA A 1 158 ? -0.747 46.598 25.613 1.00 11.54 ? 158 ALA A CA 1 +ATOM 1205 C C . ALA A 1 158 ? -0.251 45.730 24.505 1.00 18.33 ? 158 ALA A C 1 +ATOM 1206 O O . ALA A 1 158 ? -0.979 44.837 24.129 1.00 16.10 ? 158 ALA A O 1 +ATOM 1207 C CB . ALA A 1 158 ? -1.522 47.750 25.047 1.00 17.79 ? 158 ALA A CB 1 +ATOM 1208 N N . ARG A 1 159 ? 0.965 45.989 23.952 1.00 15.58 ? 159 ARG A N 1 +ATOM 1209 C CA . ARG A 1 159 ? 1.458 45.197 22.834 1.00 13.95 ? 159 ARG A CA 1 +ATOM 1210 C C . ARG A 1 159 ? 2.652 44.279 23.093 1.00 14.35 ? 159 ARG A C 1 +ATOM 1211 O O . ARG A 1 159 ? 3.328 43.764 22.176 1.00 13.35 ? 159 ARG A O 1 +ATOM 1212 C CB . ARG A 1 159 ? 1.850 46.209 21.733 1.00 14.65 ? 159 ARG A CB 1 +ATOM 1213 C CG . ARG A 1 159 ? 0.635 46.864 21.092 1.00 15.17 ? 159 ARG A CG 1 +ATOM 1214 C CD . ARG A 1 159 ? 0.971 48.159 20.333 1.00 15.84 ? 159 ARG A CD 1 +ATOM 1215 N NE . ARG A 1 159 ? 1.722 49.113 21.139 1.00 15.16 ? 159 ARG A NE 1 +ATOM 1216 C CZ . ARG A 1 159 ? 1.107 49.943 21.976 1.00 31.69 ? 159 ARG A CZ 1 +ATOM 1217 N NH1 . ARG A 1 159 ? -0.199 49.998 22.085 1.00 31.41 ? 159 ARG A NH1 1 +ATOM 1218 N NH2 . ARG A 1 159 ? 1.782 50.759 22.722 1.00 29.79 ? 159 ARG A NH2 1 +ATOM 1219 N N . MET A 1 160 ? 2.912 44.041 24.356 1.00 9.14 ? 160 MET A N 1 +ATOM 1220 C CA . MET A 1 160 ? 4.066 43.277 24.767 1.00 8.92 ? 160 MET A CA 1 +ATOM 1221 C C . MET A 1 160 ? 4.232 41.984 24.057 1.00 22.32 ? 160 MET A C 1 +ATOM 1222 O O . MET A 1 160 ? 5.371 41.603 23.785 1.00 14.41 ? 160 MET A O 1 +ATOM 1223 C CB . MET A 1 160 ? 4.123 43.060 26.274 1.00 15.86 ? 160 MET A CB 1 +ATOM 1224 C CG . MET A 1 160 ? 3.024 42.114 26.799 1.00 16.50 ? 160 MET A CG 1 +ATOM 1225 S SD . MET A 1 160 ? 3.174 41.658 28.539 1.00 12.47 ? 160 MET A SD 1 +ATOM 1226 C CE . MET A 1 160 ? 3.045 43.247 29.325 1.00 16.46 ? 160 MET A CE 1 +ATOM 1227 N N . ASP A 1 161 ? 3.115 41.303 23.793 1.00 11.42 ? 161 ASP A N 1 +ATOM 1228 C CA . ASP A 1 161 ? 3.210 39.962 23.189 1.00 8.26 ? 161 ASP A CA 1 +ATOM 1229 C C . ASP A 1 161 ? 3.435 39.966 21.734 1.00 10.49 ? 161 ASP A C 1 +ATOM 1230 O O . ASP A 1 161 ? 3.726 38.897 21.207 1.00 11.98 ? 161 ASP A O 1 +ATOM 1231 C CB . ASP A 1 161 ? 2.010 39.023 23.476 1.00 13.75 ? 161 ASP A CB 1 +ATOM 1232 C CG . ASP A 1 161 ? 2.024 38.221 24.741 1.00 12.60 ? 161 ASP A CG 1 +ATOM 1233 O OD1 . ASP A 1 161 ? 3.163 38.115 25.397 1.00 9.73 ? 161 ASP A OD1 1 +ATOM 1234 O OD2 . ASP A 1 161 ? 0.983 37.703 25.149 1.00 13.69 ? 161 ASP A OD2 1 +ATOM 1235 N N . ILE A 1 162 ? 3.349 41.102 21.094 1.00 12.99 ? 162 ILE A N 1 +ATOM 1236 C CA . ILE A 1 162 ? 3.606 41.123 19.646 1.00 9.75 ? 162 ILE A CA 1 +ATOM 1237 C C . ILE A 1 162 ? 5.059 40.919 19.465 1.00 10.91 ? 162 ILE A C 1 +ATOM 1238 O O . ILE A 1 162 ? 5.882 41.563 20.123 1.00 13.91 ? 162 ILE A O 1 +ATOM 1239 C CB . ILE A 1 162 ? 3.129 42.366 18.980 1.00 11.49 ? 162 ILE A CB 1 +ATOM 1240 C CG1 . ILE A 1 162 ? 1.597 42.331 19.053 1.00 19.25 ? 162 ILE A CG1 1 +ATOM 1241 C CG2 . ILE A 1 162 ? 3.474 42.316 17.507 1.00 18.13 ? 162 ILE A CG2 1 +ATOM 1242 C CD1 . ILE A 1 162 ? 1.071 43.743 18.869 1.00 35.65 ? 162 ILE A CD1 1 +ATOM 1243 N N . GLY A 1 163 ? 5.365 39.905 18.685 1.00 13.97 ? 163 GLY A N 1 +ATOM 1244 C CA . GLY A 1 163 ? 6.767 39.595 18.599 1.00 13.09 ? 163 GLY A CA 1 +ATOM 1245 C C . GLY A 1 163 ? 7.197 38.332 19.305 1.00 19.41 ? 163 GLY A C 1 +ATOM 1246 O O . GLY A 1 163 ? 8.300 37.804 19.082 1.00 16.15 ? 163 GLY A O 1 +ATOM 1247 N N . THR A 1 164 ? 6.382 37.869 20.245 1.00 14.42 ? 164 THR A N 1 +ATOM 1248 C CA . THR A 1 164 ? 6.678 36.614 20.853 1.00 7.95 ? 164 THR A CA 1 +ATOM 1249 C C . THR A 1 164 ? 6.164 35.552 19.913 1.00 10.40 ? 164 THR A C 1 +ATOM 1250 O O . THR A 1 164 ? 5.394 35.774 18.967 1.00 11.62 ? 164 THR A O 1 +ATOM 1251 C CB . THR A 1 164 ? 5.921 36.468 22.202 1.00 14.05 ? 164 THR A CB 1 +ATOM 1252 O OG1 . THR A 1 164 ? 4.514 36.534 21.979 1.00 12.74 ? 164 THR A OG1 1 +ATOM 1253 C CG2 . THR A 1 164 ? 6.347 37.560 23.156 1.00 13.35 ? 164 THR A CG2 1 +ATOM 1254 N N . THR A 1 165 ? 6.483 34.290 20.230 1.00 13.95 ? 165 THR A N 1 +ATOM 1255 C CA . THR A 1 165 ? 5.960 33.186 19.445 1.00 13.14 ? 165 THR A CA 1 +ATOM 1256 C C . THR A 1 165 ? 4.443 33.237 19.422 1.00 14.28 ? 165 THR A C 1 +ATOM 1257 O O . THR A 1 165 ? 3.800 33.245 20.447 1.00 12.10 ? 165 THR A O 1 +ATOM 1258 C CB . THR A 1 165 ? 6.433 31.837 20.006 1.00 16.23 ? 165 THR A CB 1 +ATOM 1259 O OG1 . THR A 1 165 ? 7.846 31.892 20.130 1.00 19.57 ? 165 THR A OG1 1 +ATOM 1260 C CG2 . THR A 1 165 ? 6.046 30.705 19.083 1.00 16.08 ? 165 THR A CG2 1 +ATOM 1261 N N . HIS A 1 166 ? 3.880 33.238 18.273 1.00 13.48 ? 166 HIS A N 1 +ATOM 1262 C CA . HIS A 1 166 ? 2.426 33.314 18.066 1.00 14.94 ? 166 HIS A CA 1 +ATOM 1263 C C . HIS A 1 166 ? 1.796 34.593 18.507 1.00 14.77 ? 166 HIS A C 1 +ATOM 1264 O O . HIS A 1 166 ? 0.574 34.695 18.514 1.00 16.50 ? 166 HIS A O 1 +ATOM 1265 C CB . HIS A 1 166 ? 1.618 32.152 18.606 1.00 16.79 ? 166 HIS A CB 1 +ATOM 1266 C CG . HIS A 1 166 ? 2.121 30.830 18.147 1.00 20.05 ? 166 HIS A CG 1 +ATOM 1267 N ND1 . HIS A 1 166 ? 1.902 29.697 18.913 1.00 21.07 ? 166 HIS A ND1 1 +ATOM 1268 C CD2 . HIS A 1 166 ? 2.784 30.498 17.009 1.00 20.99 ? 166 HIS A CD2 1 +ATOM 1269 C CE1 . HIS A 1 166 ? 2.455 28.688 18.243 1.00 25.55 ? 166 HIS A CE1 1 +ATOM 1270 N NE2 . HIS A 1 166 ? 2.970 29.141 17.102 1.00 23.23 ? 166 HIS A NE2 1 +ATOM 1271 N N . ASP A 1 167 ? 2.628 35.542 18.848 1.00 11.83 ? 167 ASP A N 1 +ATOM 1272 C CA . ASP A 1 167 ? 2.171 36.837 19.288 1.00 11.20 ? 167 ASP A CA 1 +ATOM 1273 C C . ASP A 1 167 ? 1.218 36.724 20.467 1.00 18.69 ? 167 ASP A C 1 +ATOM 1274 O O . ASP A 1 167 ? 0.299 37.574 20.598 1.00 15.93 ? 167 ASP A O 1 +ATOM 1275 C CB . ASP A 1 167 ? 1.455 37.631 18.246 1.00 14.26 ? 167 ASP A CB 1 +ATOM 1276 C CG . ASP A 1 167 ? 2.350 38.098 17.110 1.00 19.59 ? 167 ASP A CG 1 +ATOM 1277 O OD1 . ASP A 1 167 ? 3.555 38.417 17.382 1.00 15.92 ? 167 ASP A OD1 1 +ATOM 1278 O OD2 . ASP A 1 167 ? 1.983 38.178 15.994 1.00 28.61 ? 167 ASP A OD2 1 +ATOM 1279 N N . ASP A 1 168 ? 1.440 35.718 21.339 1.00 15.36 ? 168 ASP A N 1 +ATOM 1280 C CA . ASP A 1 168 ? 0.517 35.559 22.462 1.00 11.36 ? 168 ASP A CA 1 +ATOM 1281 C C . ASP A 1 168 ? 1.083 34.966 23.678 1.00 10.56 ? 168 ASP A C 1 +ATOM 1282 O O . ASP A 1 168 ? 0.338 34.462 24.509 1.00 13.14 ? 168 ASP A O 1 +ATOM 1283 C CB . ASP A 1 168 ? -0.615 34.668 21.947 1.00 11.82 ? 168 ASP A CB 1 +ATOM 1284 C CG . ASP A 1 168 ? -0.257 33.238 21.663 1.00 12.60 ? 168 ASP A CG 1 +ATOM 1285 O OD1 . ASP A 1 168 ? 1.006 32.964 21.822 1.00 12.14 ? 168 ASP A OD1 1 +ATOM 1286 O OD2 . ASP A 1 168 ? -1.062 32.395 21.324 1.00 15.27 ? 168 ASP A OD2 1 +ATOM 1287 N N . TYR A 1 169 ? 2.407 34.953 23.755 1.00 7.84 ? 169 TYR A N 1 +ATOM 1288 C CA . TYR A 1 169 ? 3.061 34.284 24.807 1.00 9.92 ? 169 TYR A CA 1 +ATOM 1289 C C . TYR A 1 169 ? 2.494 34.360 26.220 1.00 9.69 ? 169 TYR A C 1 +ATOM 1290 O O . TYR A 1 169 ? 2.020 33.388 26.856 1.00 10.61 ? 169 TYR A O 1 +ATOM 1291 C CB . TYR A 1 169 ? 4.613 34.261 24.654 1.00 10.43 ? 169 TYR A CB 1 +ATOM 1292 C CG . TYR A 1 169 ? 5.350 33.259 25.500 1.00 7.39 ? 169 TYR A CG 1 +ATOM 1293 C CD1 . TYR A 1 169 ? 5.702 33.550 26.771 1.00 8.35 ? 169 TYR A CD1 1 +ATOM 1294 C CD2 . TYR A 1 169 ? 5.649 31.952 25.038 1.00 7.96 ? 169 TYR A CD2 1 +ATOM 1295 C CE1 . TYR A 1 169 ? 6.348 32.620 27.597 1.00 9.49 ? 169 TYR A CE1 1 +ATOM 1296 C CE2 . TYR A 1 169 ? 6.273 31.026 25.805 1.00 5.94 ? 169 TYR A CE2 1 +ATOM 1297 C CZ . TYR A 1 169 ? 6.613 31.368 27.115 1.00 6.87 ? 169 TYR A CZ 1 +ATOM 1298 O OH . TYR A 1 169 ? 7.264 30.502 27.912 1.00 15.33 ? 169 TYR A OH 1 +ATOM 1299 N N . ALA A 1 170 ? 2.610 35.535 26.726 1.00 6.88 ? 170 ALA A N 1 +ATOM 1300 C CA . ALA A 1 170 ? 2.192 35.778 28.063 1.00 7.44 ? 170 ALA A CA 1 +ATOM 1301 C C . ALA A 1 170 ? 0.683 35.689 28.232 1.00 9.00 ? 170 ALA A C 1 +ATOM 1302 O O . ALA A 1 170 ? 0.246 35.184 29.279 1.00 10.02 ? 170 ALA A O 1 +ATOM 1303 C CB . ALA A 1 170 ? 2.671 37.157 28.495 1.00 9.63 ? 170 ALA A CB 1 +ATOM 1304 N N . ASN A 1 171 ? -0.060 36.154 27.271 1.00 12.11 ? 171 ASN A N 1 +ATOM 1305 C CA . ASN A 1 171 ? -1.525 36.069 27.376 1.00 11.14 ? 171 ASN A CA 1 +ATOM 1306 C C . ASN A 1 171 ? -1.910 34.601 27.511 1.00 12.47 ? 171 ASN A C 1 +ATOM 1307 O O . ASN A 1 171 ? -2.704 34.173 28.343 1.00 13.58 ? 171 ASN A O 1 +ATOM 1308 C CB . ASN A 1 171 ? -2.223 36.682 26.176 1.00 9.27 ? 171 ASN A CB 1 +ATOM 1309 C CG . ASN A 1 171 ? -2.410 38.178 26.357 1.00 14.00 ? 171 ASN A CG 1 +ATOM 1310 O OD1 . ASN A 1 171 ? -3.048 38.704 27.285 1.00 14.01 ? 171 ASN A OD1 1 +ATOM 1311 N ND2 . ASN A 1 171 ? -1.718 38.915 25.522 1.00 18.44 ? 171 ASN A ND2 1 +ATOM 1312 N N . ASP A 1 172 ? -1.354 33.760 26.702 1.00 6.81 ? 172 ASP A N 1 +ATOM 1313 C CA . ASP A 1 172 ? -1.622 32.291 26.781 1.00 7.70 ? 172 ASP A CA 1 +ATOM 1314 C C . ASP A 1 172 ? -1.159 31.685 28.063 1.00 12.02 ? 172 ASP A C 1 +ATOM 1315 O O . ASP A 1 172 ? -1.894 30.990 28.781 1.00 10.81 ? 172 ASP A O 1 +ATOM 1316 C CB . ASP A 1 172 ? -1.076 31.576 25.518 1.00 9.90 ? 172 ASP A CB 1 +ATOM 1317 C CG . ASP A 1 172 ? -1.264 30.108 25.397 1.00 13.39 ? 172 ASP A CG 1 +ATOM 1318 O OD1 . ASP A 1 172 ? -2.320 29.632 25.999 1.00 12.22 ? 172 ASP A OD1 1 +ATOM 1319 O OD2 . ASP A 1 172 ? -0.500 29.393 24.788 1.00 11.73 ? 172 ASP A OD2 1 +ATOM 1320 N N . VAL A 1 173 ? 0.078 31.920 28.451 1.00 7.94 ? 173 VAL A N 1 +ATOM 1321 C CA . VAL A 1 173 ? 0.567 31.393 29.657 1.00 6.61 ? 173 VAL A CA 1 +ATOM 1322 C C . VAL A 1 173 ? -0.228 31.789 30.853 1.00 7.36 ? 173 VAL A C 1 +ATOM 1323 O O . VAL A 1 173 ? -0.467 30.982 31.741 1.00 9.41 ? 173 VAL A O 1 +ATOM 1324 C CB . VAL A 1 173 ? 2.044 31.749 29.802 1.00 9.78 ? 173 VAL A CB 1 +ATOM 1325 C CG1 . VAL A 1 173 ? 2.542 31.462 31.169 1.00 8.27 ? 173 VAL A CG1 1 +ATOM 1326 C CG2 . VAL A 1 173 ? 2.885 30.957 28.777 1.00 13.24 ? 173 VAL A CG2 1 +ATOM 1327 N N . VAL A 1 174 ? -0.606 33.045 30.900 1.00 7.65 ? 174 VAL A N 1 +ATOM 1328 C CA . VAL A 1 174 ? -1.385 33.521 32.043 1.00 10.64 ? 174 VAL A CA 1 +ATOM 1329 C C . VAL A 1 174 ? -2.716 32.798 32.133 1.00 6.83 ? 174 VAL A C 1 +ATOM 1330 O O . VAL A 1 174 ? -3.136 32.382 33.230 1.00 11.07 ? 174 VAL A O 1 +ATOM 1331 C CB . VAL A 1 174 ? -1.541 35.049 31.906 1.00 13.43 ? 174 VAL A CB 1 +ATOM 1332 C CG1 . VAL A 1 174 ? -2.643 35.586 32.815 1.00 10.56 ? 174 VAL A CG1 1 +ATOM 1333 C CG2 . VAL A 1 174 ? -0.242 35.726 32.336 1.00 12.18 ? 174 VAL A CG2 1 +ATOM 1334 N N . ALA A 1 175 ? -3.369 32.582 31.024 1.00 7.14 ? 175 ALA A N 1 +ATOM 1335 C CA . ALA A 1 175 ? -4.667 31.888 30.997 1.00 6.25 ? 175 ALA A CA 1 +ATOM 1336 C C . ALA A 1 175 ? -4.513 30.450 31.429 1.00 14.36 ? 175 ALA A C 1 +ATOM 1337 O O . ALA A 1 175 ? -5.332 29.925 32.232 1.00 12.24 ? 175 ALA A O 1 +ATOM 1338 C CB . ALA A 1 175 ? -5.335 31.973 29.662 1.00 9.67 ? 175 ALA A CB 1 +ATOM 1339 N N . ARG A 1 176 ? -3.411 29.812 30.947 1.00 9.31 ? 176 ARG A N 1 +ATOM 1340 C CA . ARG A 1 176 ? -3.112 28.435 31.338 1.00 8.54 ? 176 ARG A CA 1 +ATOM 1341 C C . ARG A 1 176 ? -2.847 28.372 32.804 1.00 11.40 ? 176 ARG A C 1 +ATOM 1342 O O . ARG A 1 176 ? -3.254 27.454 33.535 1.00 11.36 ? 176 ARG A O 1 +ATOM 1343 C CB . ARG A 1 176 ? -1.945 27.771 30.619 1.00 7.93 ? 176 ARG A CB 1 +ATOM 1344 C CG . ARG A 1 176 ? -2.241 27.626 29.158 1.00 9.31 ? 176 ARG A CG 1 +ATOM 1345 C CD . ARG A 1 176 ? -1.124 26.865 28.441 1.00 8.04 ? 176 ARG A CD 1 +ATOM 1346 N NE . ARG A 1 176 ? -1.156 27.132 27.033 1.00 9.26 ? 176 ARG A NE 1 +ATOM 1347 C CZ . ARG A 1 176 ? -0.665 26.314 26.112 1.00 8.61 ? 176 ARG A CZ 1 +ATOM 1348 N NH1 . ARG A 1 176 ? -0.097 25.137 26.389 1.00 9.89 ? 176 ARG A NH1 1 +ATOM 1349 N NH2 . ARG A 1 176 ? -0.723 26.716 24.866 1.00 11.44 ? 176 ARG A NH2 1 +ATOM 1350 N N . ALA A 1 177 ? -2.142 29.368 33.276 1.00 8.13 ? 177 ALA A N 1 +ATOM 1351 C CA . ALA A 1 177 ? -1.830 29.418 34.659 1.00 8.31 ? 177 ALA A CA 1 +ATOM 1352 C C . ALA A 1 177 ? -3.086 29.598 35.511 1.00 12.18 ? 177 ALA A C 1 +ATOM 1353 O O . ALA A 1 177 ? -3.141 29.039 36.589 1.00 11.57 ? 177 ALA A O 1 +ATOM 1354 C CB . ALA A 1 177 ? -0.841 30.509 34.975 1.00 12.15 ? 177 ALA A CB 1 +ATOM 1355 N N . GLN A 1 178 ? -4.049 30.385 35.031 1.00 13.20 ? 178 GLN A N 1 +ATOM 1356 C CA . GLN A 1 178 ? -5.305 30.596 35.782 1.00 15.67 ? 178 GLN A CA 1 +ATOM 1357 C C . GLN A 1 178 ? -6.012 29.273 35.980 1.00 13.44 ? 178 GLN A C 1 +ATOM 1358 O O . GLN A 1 178 ? -6.435 28.940 37.047 1.00 15.07 ? 178 GLN A O 1 +ATOM 1359 C CB . GLN A 1 178 ? -6.138 31.699 35.221 1.00 16.84 ? 178 GLN A CB 1 +ATOM 1360 C CG . GLN A 1 178 ? -5.466 33.092 35.338 1.00 11.51 ? 178 GLN A CG 1 +ATOM 1361 C CD . GLN A 1 178 ? -6.233 34.184 34.635 1.00 14.46 ? 178 GLN A CD 1 +ATOM 1362 O OE1 . GLN A 1 178 ? -7.091 33.916 33.806 1.00 20.27 ? 178 GLN A OE1 1 +ATOM 1363 N NE2 . GLN A 1 178 ? -5.840 35.421 34.856 1.00 17.74 ? 178 GLN A NE2 1 +ATOM 1364 N N . TYR A 1 179 ? -6.021 28.475 34.979 1.00 11.65 ? 179 TYR A N 1 +ATOM 1365 C CA . TYR A 1 179 ? -6.551 27.105 35.089 1.00 10.11 ? 179 TYR A CA 1 +ATOM 1366 C C . TYR A 1 179 ? -5.808 26.289 36.130 1.00 19.75 ? 179 TYR A C 1 +ATOM 1367 O O . TYR A 1 179 ? -6.364 25.695 37.065 1.00 16.44 ? 179 TYR A O 1 +ATOM 1368 C CB . TYR A 1 179 ? -6.462 26.402 33.762 1.00 11.48 ? 179 TYR A CB 1 +ATOM 1369 C CG . TYR A 1 179 ? -6.880 24.953 33.833 1.00 13.29 ? 179 TYR A CG 1 +ATOM 1370 C CD1 . TYR A 1 179 ? -8.199 24.549 33.650 1.00 20.32 ? 179 TYR A CD1 1 +ATOM 1371 C CD2 . TYR A 1 179 ? -5.927 23.983 34.122 1.00 14.04 ? 179 TYR A CD2 1 +ATOM 1372 C CE1 . TYR A 1 179 ? -8.576 23.217 33.750 1.00 12.93 ? 179 TYR A CE1 1 +ATOM 1373 C CE2 . TYR A 1 179 ? -6.275 22.627 34.175 1.00 11.05 ? 179 TYR A CE2 1 +ATOM 1374 C CZ . TYR A 1 179 ? -7.616 22.265 34.024 1.00 18.21 ? 179 TYR A CZ 1 +ATOM 1375 O OH . TYR A 1 179 ? -7.994 20.954 34.140 1.00 22.38 ? 179 TYR A OH 1 +ATOM 1376 N N . TYR A 1 180 ? -4.472 26.254 36.063 1.00 13.39 ? 180 TYR A N 1 +ATOM 1377 C CA . TYR A 1 180 ? -3.742 25.503 37.051 1.00 8.76 ? 180 TYR A CA 1 +ATOM 1378 C C . TYR A 1 180 ? -4.022 25.937 38.440 1.00 10.01 ? 180 TYR A C 1 +ATOM 1379 O O . TYR A 1 180 ? -4.102 25.113 39.336 1.00 12.92 ? 180 TYR A O 1 +ATOM 1380 C CB . TYR A 1 180 ? -2.213 25.336 36.758 1.00 8.79 ? 180 TYR A CB 1 +ATOM 1381 C CG . TYR A 1 180 ? -1.947 24.521 35.512 1.00 11.61 ? 180 TYR A CG 1 +ATOM 1382 C CD1 . TYR A 1 180 ? -2.323 23.189 35.426 1.00 10.10 ? 180 TYR A CD1 1 +ATOM 1383 C CD2 . TYR A 1 180 ? -1.372 25.070 34.366 1.00 11.03 ? 180 TYR A CD2 1 +ATOM 1384 C CE1 . TYR A 1 180 ? -2.161 22.430 34.266 1.00 11.75 ? 180 TYR A CE1 1 +ATOM 1385 C CE2 . TYR A 1 180 ? -1.200 24.347 33.207 1.00 8.35 ? 180 TYR A CE2 1 +ATOM 1386 C CZ . TYR A 1 180 ? -1.616 23.019 33.134 1.00 10.88 ? 180 TYR A CZ 1 +ATOM 1387 O OH . TYR A 1 180 ? -1.512 22.297 31.988 1.00 13.06 ? 180 TYR A OH 1 +ATOM 1388 N N . LYS A 1 181 ? -4.124 27.238 38.627 1.00 13.64 ? 181 LYS A N 1 +ATOM 1389 C CA . LYS A 1 181 ? -4.343 27.815 39.920 1.00 16.44 ? 181 LYS A CA 1 +ATOM 1390 C C . LYS A 1 181 ? -5.598 27.211 40.555 1.00 20.37 ? 181 LYS A C 1 +ATOM 1391 O O . LYS A 1 181 ? -5.649 26.893 41.720 1.00 24.35 ? 181 LYS A O 1 +ATOM 1392 C CB . LYS A 1 181 ? -4.386 29.336 39.814 1.00 15.22 ? 181 LYS A CB 1 +ATOM 1393 C CG . LYS A 1 181 ? -4.239 29.917 41.205 1.00 31.44 ? 181 LYS A CG 1 +ATOM 1394 C CD . LYS A 1 181 ? -3.399 31.167 41.266 1.00 27.55 ? 181 LYS A CD 1 +ATOM 1395 C CE . LYS A 1 181 ? -3.119 31.600 42.670 1.00 29.65 ? 181 LYS A CE 1 +ATOM 1396 N NZ . LYS A 1 181 ? -3.199 33.062 42.727 1.00 44.58 ? 181 LYS A NZ 1 +ATOM 1397 N N . GLN A 1 182 ? -6.577 27.000 39.720 1.00 15.80 ? 182 GLN A N 1 +ATOM 1398 C CA . GLN A 1 182 ? -7.842 26.405 40.088 1.00 19.31 ? 182 GLN A CA 1 +ATOM 1399 C C . GLN A 1 182 ? -7.703 24.930 40.386 1.00 44.38 ? 182 GLN A C 1 +ATOM 1400 O O . GLN A 1 182 ? -8.626 24.316 40.894 1.00 32.90 ? 182 GLN A O 1 +ATOM 1401 C CB . GLN A 1 182 ? -8.571 26.495 38.789 1.00 29.85 ? 182 GLN A CB 1 +ATOM 1402 C CG . GLN A 1 182 ? -10.052 26.848 38.860 1.00 41.93 ? 182 GLN A CG 1 +ATOM 1403 C CD . GLN A 1 182 ? -10.857 25.881 38.004 1.00 59.05 ? 182 GLN A CD 1 +ATOM 1404 O OE1 . GLN A 1 182 ? -11.312 26.213 36.910 1.00 58.99 ? 182 GLN A OE1 1 +ATOM 1405 N NE2 . GLN A 1 182 ? -11.023 24.650 38.487 1.00 69.60 ? 182 GLN A NE2 1 +ATOM 1406 N N . HIS A 1 183 ? -6.570 24.339 40.035 1.00 29.54 ? 183 HIS A N 1 +ATOM 1407 C CA . HIS A 1 183 ? -6.363 22.916 40.255 1.00 12.65 ? 183 HIS A CA 1 +ATOM 1408 C C . HIS A 1 183 ? -5.299 22.614 41.228 1.00 14.37 ? 183 HIS A C 1 +ATOM 1409 O O . HIS A 1 183 ? -4.576 21.618 41.119 1.00 23.51 ? 183 HIS A O 1 +ATOM 1410 C CB . HIS A 1 183 ? -6.075 22.121 38.980 1.00 19.41 ? 183 HIS A CB 1 +ATOM 1411 C CG . HIS A 1 183 ? -7.289 22.127 38.149 1.00 16.90 ? 183 HIS A CG 1 +ATOM 1412 N ND1 . HIS A 1 183 ? -8.030 20.974 37.984 1.00 27.01 ? 183 HIS A ND1 1 +ATOM 1413 C CD2 . HIS A 1 183 ? -7.926 23.140 37.514 1.00 17.20 ? 183 HIS A CD2 1 +ATOM 1414 C CE1 . HIS A 1 183 ? -9.058 21.309 37.228 1.00 31.45 ? 183 HIS A CE1 1 +ATOM 1415 N NE2 . HIS A 1 183 ? -9.032 22.603 36.925 1.00 28.20 ? 183 HIS A NE2 1 +ATOM 1416 N N . GLY A 1 184 ? -5.155 23.537 42.155 1.00 19.53 ? 184 GLY A N 1 +ATOM 1417 C CA . GLY A 1 184 ? -4.231 23.352 43.224 1.00 18.24 ? 184 GLY A CA 1 +ATOM 1418 C C . GLY A 1 184 ? -2.781 23.654 43.014 1.00 28.45 ? 184 GLY A C 1 +ATOM 1419 O O . GLY A 1 184 ? -1.951 23.299 43.828 1.00 23.56 ? 184 GLY A O 1 +ATOM 1420 N N . TYR A 1 185 ? -2.474 24.329 41.937 1.00 16.22 ? 185 TYR A N 1 +ATOM 1421 C CA . TYR A 1 185 ? -1.087 24.659 41.782 1.00 11.28 ? 185 TYR A CA 1 +ATOM 1422 C C . TYR A 1 185 ? -0.858 26.007 42.416 1.00 16.07 ? 185 TYR A C 1 +ATOM 1423 O O . TYR A 1 185 ? -0.019 26.152 43.278 1.00 27.84 ? 185 TYR A O 1 +ATOM 1424 C CB . TYR A 1 185 ? -0.744 24.742 40.308 1.00 12.61 ? 185 TYR A CB 1 +ATOM 1425 C CG . TYR A 1 185 ? -0.554 23.380 39.720 1.00 13.04 ? 185 TYR A CG 1 +ATOM 1426 C CD1 . TYR A 1 185 ? -1.658 22.626 39.391 1.00 15.20 ? 185 TYR A CD1 1 +ATOM 1427 C CD2 . TYR A 1 185 ? 0.740 22.915 39.472 1.00 12.25 ? 185 TYR A CD2 1 +ATOM 1428 C CE1 . TYR A 1 185 ? -1.474 21.358 38.872 1.00 15.42 ? 185 TYR A CE1 1 +ATOM 1429 C CE2 . TYR A 1 185 ? 0.938 21.661 38.896 1.00 10.99 ? 185 TYR A CE2 1 +ATOM 1430 C CZ . TYR A 1 185 ? -0.178 20.899 38.619 1.00 17.12 ? 185 TYR A CZ 1 +ATOM 1431 O OH . TYR A 1 185 ? 0.023 19.660 38.134 1.00 20.12 ? 185 TYR A OH 1 +ATOM 1432 O OXT . TYR A 1 185 ? -1.493 26.965 42.046 1.00 21.77 ? 185 TYR A OXT 1 +HETATM 1433 C C1 . NAG B 2 . ? 11.645 29.482 21.787 1.00 39.16 ? 1 NAG B C1 1 +HETATM 1434 C C2 . NAG B 2 . ? 12.604 30.538 21.191 1.00 40.38 ? 1 NAG B C2 1 +HETATM 1435 C C3 . NAG B 2 . ? 13.727 31.071 22.125 1.00 41.69 ? 1 NAG B C3 1 +HETATM 1436 C C4 . NAG B 2 . ? 13.207 31.192 23.579 1.00 37.57 ? 1 NAG B C4 1 +HETATM 1437 C C5 . NAG B 2 . ? 12.395 29.935 23.991 1.00 30.37 ? 1 NAG B C5 1 +HETATM 1438 C C6 . NAG B 2 . ? 11.796 29.958 25.399 1.00 35.35 ? 1 NAG B C6 1 +HETATM 1439 C C7 . NAG B 2 . ? 12.158 30.681 18.760 1.00 51.16 ? 1 NAG B C7 1 +HETATM 1440 C C8 . NAG B 2 . ? 12.825 30.820 17.415 1.00 49.48 ? 1 NAG B C8 1 +HETATM 1441 N N2 . NAG B 2 . ? 12.945 30.248 19.776 1.00 43.13 ? 1 NAG B N2 1 +HETATM 1442 O O1 . NAG B 2 . ? 10.446 29.534 21.097 1.00 48.32 ? 1 NAG B O1 1 +HETATM 1443 O O3 . NAG B 2 . ? 14.138 32.384 21.673 1.00 43.50 ? 1 NAG B O3 1 +HETATM 1444 O O4 . NAG B 2 . ? 14.311 31.395 24.500 1.00 32.17 ? 1 NAG B O4 1 +HETATM 1445 O O5 . NAG B 2 . ? 11.283 29.788 23.121 1.00 42.84 ? 1 NAG B O5 1 +HETATM 1446 O O6 . NAG B 2 . ? 10.585 30.733 25.556 1.00 28.05 ? 1 NAG B O6 1 +HETATM 1447 O O7 . NAG B 2 . ? 11.359 31.656 18.790 1.00 50.12 ? 1 NAG B O7 1 +HETATM 1448 C C1 . NAG B 2 . ? 14.536 32.710 24.969 1.00 31.23 ? 2 NAG B C1 1 +HETATM 1449 C C2 . NAG B 2 . ? 15.336 32.729 26.273 1.00 33.06 ? 2 NAG B C2 1 +HETATM 1450 C C3 . NAG B 2 . ? 15.886 34.133 26.643 1.00 32.78 ? 2 NAG B C3 1 +HETATM 1451 C C4 . NAG B 2 . ? 16.421 34.912 25.444 1.00 34.65 ? 2 NAG B C4 1 +HETATM 1452 C C5 . NAG B 2 . ? 15.378 34.881 24.345 1.00 34.01 ? 2 NAG B C5 1 +HETATM 1453 C C6 . NAG B 2 . ? 15.793 35.639 23.080 1.00 36.23 ? 2 NAG B C6 1 +HETATM 1454 C C7 . NAG B 2 . ? 15.014 30.888 27.824 1.00 29.40 ? 2 NAG B C7 1 +HETATM 1455 C C8 . NAG B 2 . ? 14.120 30.302 28.872 1.00 22.14 ? 2 NAG B C8 1 +HETATM 1456 N N2 . NAG B 2 . ? 14.594 32.078 27.391 1.00 25.37 ? 2 NAG B N2 1 +HETATM 1457 O O3 . NAG B 2 . ? 16.923 33.956 27.609 1.00 26.57 ? 2 NAG B O3 1 +HETATM 1458 O O4 . NAG B 2 . ? 16.645 36.305 25.749 1.00 29.75 ? 2 NAG B O4 1 +HETATM 1459 O O5 . NAG B 2 . ? 15.183 33.500 23.971 1.00 38.34 ? 2 NAG B O5 1 +HETATM 1460 O O6 . NAG B 2 . ? 17.015 34.816 22.887 1.00 37.86 ? 2 NAG B O6 1 +HETATM 1461 O O7 . NAG B 2 . ? 16.137 30.418 27.486 1.00 20.75 ? 2 NAG B O7 1 +HETATM 1462 C C1 . NAG B 2 . ? 17.942 36.544 26.211 1.00 30.81 ? 3 NAG B C1 1 +HETATM 1463 C C2 . NAG B 2 . ? 18.356 37.961 25.789 1.00 38.89 ? 3 NAG B C2 1 +HETATM 1464 C C3 . NAG B 2 . ? 19.650 38.361 26.472 1.00 40.88 ? 3 NAG B C3 1 +HETATM 1465 C C4 . NAG B 2 . ? 19.499 38.292 27.972 1.00 37.22 ? 3 NAG B C4 1 +HETATM 1466 C C5 . NAG B 2 . ? 19.036 36.866 28.372 1.00 41.93 ? 3 NAG B C5 1 +HETATM 1467 C C6 . NAG B 2 . ? 18.564 36.694 29.832 1.00 30.67 ? 3 NAG B C6 1 +HETATM 1468 C C7 . NAG B 2 . ? 17.830 38.805 23.598 1.00 42.46 ? 3 NAG B C7 1 +HETATM 1469 C C8 . NAG B 2 . ? 17.875 38.554 22.118 1.00 38.84 ? 3 NAG B C8 1 +HETATM 1470 N N2 . NAG B 2 . ? 18.578 38.008 24.358 1.00 40.76 ? 3 NAG B N2 1 +HETATM 1471 O O3 . NAG B 2 . ? 20.015 39.662 26.014 1.00 47.92 ? 3 NAG B O3 1 +HETATM 1472 O O4 . NAG B 2 . ? 20.818 38.487 28.480 1.00 47.74 ? 3 NAG B O4 1 +HETATM 1473 O O5 . NAG B 2 . ? 17.899 36.440 27.619 1.00 37.63 ? 3 NAG B O5 1 +HETATM 1474 O O6 . NAG B 2 . ? 18.148 35.339 30.105 1.00 29.18 ? 3 NAG B O6 1 +HETATM 1475 O O7 . NAG B 2 . ? 17.076 39.676 24.064 1.00 39.80 ? 3 NAG B O7 1 +HETATM 1476 O O . HOH C 3 . ? 6.187 26.551 22.873 1.00 55.57 ? 201 HOH A O 1 +HETATM 1477 O O . HOH C 3 . ? 12.053 24.883 22.535 1.00 41.17 ? 203 HOH A O 1 +HETATM 1478 O O . HOH C 3 . ? 5.658 27.737 15.369 1.00 53.63 ? 210 HOH A O 1 +HETATM 1479 O O . HOH C 3 . ? 9.399 25.664 23.053 1.00 35.25 ? 211 HOH A O 1 +HETATM 1480 O O . HOH C 3 . ? 0.584 25.610 19.318 1.00 46.19 ? 212 HOH A O 1 +HETATM 1481 O O . HOH C 3 . ? 1.433 24.604 23.848 1.00 31.34 ? 213 HOH A O 1 +HETATM 1482 O O . HOH C 3 . ? 8.692 29.413 23.416 1.00 36.06 ? 214 HOH A O 1 +HETATM 1483 O O . HOH C 3 . ? 14.190 23.389 20.297 2.00 18.07 ? 216 HOH A O 1 +HETATM 1484 O O . HOH C 3 . ? 22.051 31.955 18.727 1.00 42.91 ? 221 HOH A O 1 +HETATM 1485 O O . HOH C 3 . ? 25.459 30.332 30.538 1.00 15.14 ? 222 HOH A O 1 +HETATM 1486 O O . HOH C 3 . ? 23.606 29.217 17.672 1.00 59.96 ? 223 HOH A O 1 +HETATM 1487 O O . HOH C 3 . ? 20.740 28.061 16.074 1.00 50.62 ? 224 HOH A O 1 +HETATM 1488 O O . HOH C 3 . ? 2.544 26.304 46.435 1.00 58.25 ? 226 HOH A O 1 +HETATM 1489 O O . HOH C 3 . ? -12.623 35.963 27.879 1.00 52.73 ? 227 HOH A O 1 +HETATM 1490 O O . HOH C 3 . ? 14.253 16.350 41.214 1.00 30.99 ? 228 HOH A O 1 +HETATM 1491 O O . HOH C 3 . ? -9.076 36.474 22.968 1.00 46.02 ? 229 HOH A O 1 +HETATM 1492 O O . HOH C 3 . ? 24.722 32.436 21.596 1.00 44.47 ? 231 HOH A O 1 +HETATM 1493 O O . HOH C 3 . ? 24.159 35.197 18.983 1.00 55.15 ? 234 HOH A O 1 +HETATM 1494 O O . HOH C 3 . ? -10.942 34.918 25.338 1.00 22.64 ? 236 HOH A O 1 +HETATM 1495 O O . HOH C 3 . ? 4.169 51.631 40.795 1.00 25.49 ? 245 HOH A O 1 +HETATM 1496 O O . HOH C 3 . ? 3.093 49.324 41.582 1.00 23.58 ? 246 HOH A O 1 +HETATM 1497 O O . HOH C 3 . ? 6.757 46.301 41.406 1.00 40.45 ? 248 HOH A O 1 +HETATM 1498 O O . HOH C 3 . ? 12.322 36.127 46.870 1.00 54.38 ? 249 HOH A O 1 +HETATM 1499 O O . HOH C 3 . ? -1.765 38.166 22.401 1.00 39.08 ? 252 HOH A O 1 +HETATM 1500 O O . HOH C 3 . ? -2.171 19.791 25.586 1.00 35.88 ? 254 HOH A O 1 +HETATM 1501 O O . HOH C 3 . ? 6.554 15.604 41.208 1.00 40.02 ? 256 HOH A O 1 +HETATM 1502 O O . HOH C 3 . ? -6.938 43.944 39.806 1.00 53.87 ? 258 HOH A O 1 +HETATM 1503 O O . HOH C 3 . ? -6.679 36.076 43.502 1.00 59.71 ? 260 HOH A O 1 +HETATM 1504 O O . HOH C 3 . ? -5.637 33.812 44.384 1.00 52.37 ? 261 HOH A O 1 +HETATM 1505 O O . HOH C 3 . ? -2.265 33.173 45.920 1.00 57.93 ? 262 HOH A O 1 +HETATM 1506 O O . HOH C 3 . ? -3.999 26.814 43.815 1.00 43.26 ? 263 HOH A O 1 +HETATM 1507 O O . HOH C 3 . ? 12.937 52.353 31.420 1.00 43.64 ? 265 HOH A O 1 +HETATM 1508 O O . HOH C 3 . ? 19.375 17.032 38.147 1.00 34.31 ? 267 HOH A O 1 +HETATM 1509 O O . HOH C 3 . ? 8.944 31.791 49.744 1.00 43.16 ? 269 HOH A O 1 +HETATM 1510 O O . HOH C 3 . ? 15.316 46.170 27.869 1.00 31.04 ? 270 HOH A O 1 +HETATM 1511 O O . HOH C 3 . ? 19.995 33.352 35.188 1.00 43.94 ? 271 HOH A O 1 +HETATM 1512 O O . HOH C 3 . ? 19.117 34.968 33.591 1.00 22.34 ? 272 HOH A O 1 +HETATM 1513 O O . HOH C 3 . ? 19.776 28.181 38.291 1.00 41.73 ? 273 HOH A O 1 +HETATM 1514 O O . HOH C 3 . ? -12.538 32.031 25.239 1.00 27.51 ? 275 HOH A O 1 +HETATM 1515 O O . HOH C 3 . ? 18.057 23.207 32.632 1.00 17.47 ? 276 HOH A O 1 +HETATM 1516 O O . HOH C 3 . ? 24.444 28.687 37.766 1.00 48.51 ? 277 HOH A O 1 +HETATM 1517 O O . HOH C 3 . ? 17.383 17.609 39.896 1.00 25.92 ? 278 HOH A O 1 +HETATM 1518 O O . HOH C 3 . ? 13.678 51.986 37.553 1.00 31.23 ? 279 HOH A O 1 +HETATM 1519 O O . HOH C 3 . ? 11.326 14.401 37.862 1.00 31.96 ? 280 HOH A O 1 +HETATM 1520 O O . HOH C 3 . ? 14.547 41.240 22.907 1.00 31.54 ? 281 HOH A O 1 +HETATM 1521 O O . HOH C 3 . ? 8.955 42.569 17.921 1.00 36.45 ? 282 HOH A O 1 +HETATM 1522 O O . HOH C 3 . ? -12.980 21.552 23.264 1.00 21.06 ? 283 HOH A O 1 +HETATM 1523 O O . HOH C 3 . ? -14.286 20.768 28.104 1.00 30.58 ? 284 HOH A O 1 +HETATM 1524 O O . HOH C 3 . ? -16.573 19.314 28.763 1.00 31.66 ? 285 HOH A O 1 +HETATM 1525 O O . HOH C 3 . ? -14.114 18.647 25.509 1.00 57.78 ? 286 HOH A O 1 +HETATM 1526 O O . HOH C 3 . ? -9.296 32.595 37.426 1.00 56.97 ? 290 HOH A O 1 +HETATM 1527 O O . HOH C 3 . ? -10.283 37.828 27.457 1.00 56.44 ? 291 HOH A O 1 +HETATM 1528 O O . HOH C 3 . ? 1.312 10.930 33.338 1.00 58.26 ? 292 HOH A O 1 +HETATM 1529 O O . HOH C 3 . ? 19.786 12.559 23.308 1.00 56.54 ? 295 HOH A O 1 +HETATM 1530 O O . HOH C 3 . ? 18.141 40.944 42.508 1.00 55.37 ? 298 HOH A O 1 +HETATM 1531 O O . HOH C 3 . ? 6.906 53.090 33.947 1.00 23.06 ? 299 HOH A O 1 +HETATM 1532 O O . HOH C 3 . ? 7.764 40.303 24.669 1.00 17.64 ? 300 HOH A O 1 +HETATM 1533 O O . HOH C 3 . ? 0.165 50.183 26.958 1.00 22.78 ? 301 HOH A O 1 +HETATM 1534 O O . HOH C 3 . ? 11.500 16.980 20.661 1.00 16.00 ? 302 HOH A O 1 +HETATM 1535 O O . HOH C 3 . ? 11.932 13.884 27.174 1.00 20.17 ? 303 HOH A O 1 +HETATM 1536 O O . HOH C 3 . ? -12.457 31.919 19.004 1.00 32.34 ? 305 HOH A O 1 +HETATM 1537 O O . HOH C 3 . ? -1.247 43.081 27.952 1.00 21.89 ? 308 HOH A O 1 +HETATM 1538 O O . HOH C 3 . ? -4.165 40.936 24.051 1.00 44.25 ? 309 HOH A O 1 +HETATM 1539 O O . HOH C 3 . ? -3.013 43.238 35.528 1.00 48.19 ? 311 HOH A O 1 +HETATM 1540 O O . HOH C 3 . ? -6.052 35.182 17.120 1.00 27.30 ? 312 HOH A O 1 +HETATM 1541 O O . HOH C 3 . ? -12.804 22.203 19.045 1.00 27.29 ? 314 HOH A O 1 +HETATM 1542 O O . HOH C 3 . ? -1.630 15.002 30.299 1.00 17.12 ? 315 HOH A O 1 +HETATM 1543 O O . HOH C 3 . ? 2.767 50.845 28.742 1.00 28.06 ? 316 HOH A O 1 +HETATM 1544 O O . HOH C 3 . ? -13.304 25.425 26.087 1.00 22.39 ? 317 HOH A O 1 +HETATM 1545 O O . HOH C 3 . ? -4.917 15.581 31.443 1.00 30.04 ? 318 HOH A O 1 +HETATM 1546 O O . HOH C 3 . ? 4.370 35.782 42.582 1.00 21.64 ? 319 HOH A O 1 +HETATM 1547 O O . HOH C 3 . ? -9.196 16.747 24.681 1.00 47.45 ? 320 HOH A O 1 +HETATM 1548 O O . HOH C 3 . ? 0.343 27.989 45.397 1.00 34.54 ? 321 HOH A O 1 +HETATM 1549 O O . HOH C 3 . ? 9.472 20.142 20.991 1.00 29.48 ? 322 HOH A O 1 +HETATM 1550 O O . HOH C 3 . ? 9.330 12.917 26.928 1.00 43.37 ? 323 HOH A O 1 +HETATM 1551 O O . HOH C 3 . ? 13.392 16.222 18.681 1.00 16.33 ? 324 HOH A O 1 +HETATM 1552 O O . HOH C 3 . ? 9.613 22.507 22.575 1.00 30.96 ? 325 HOH A O 1 +HETATM 1553 O O . HOH C 3 . ? 16.730 36.260 32.357 1.00 24.80 ? 326 HOH A O 1 +HETATM 1554 O O . HOH C 3 . ? 18.404 14.719 31.279 1.00 19.48 ? 328 HOH A O 1 +HETATM 1555 O O . HOH C 3 . ? 11.714 48.771 40.019 1.00 47.04 ? 329 HOH A O 1 +HETATM 1556 O O . HOH C 3 . ? 19.282 25.455 38.865 1.00 25.75 ? 330 HOH A O 1 +HETATM 1557 O O . HOH C 3 . ? 16.273 46.826 34.107 1.00 58.99 ? 331 HOH A O 1 +HETATM 1558 O O . HOH C 3 . ? 11.020 51.580 29.337 1.00 51.37 ? 332 HOH A O 1 +HETATM 1559 O O . HOH C 3 . ? -0.583 50.754 35.712 1.00 26.20 ? 333 HOH A O 1 +HETATM 1560 O O . HOH C 3 . ? -4.994 41.336 28.096 1.00 40.84 ? 334 HOH A O 1 +HETATM 1561 O O . HOH C 3 . ? 0.135 41.917 23.895 1.00 24.02 ? 335 HOH A O 1 +HETATM 1562 O O . HOH C 3 . ? 6.116 41.743 39.515 1.00 23.40 ? 336 HOH A O 1 +HETATM 1563 O O . HOH C 3 . ? 10.604 34.449 20.635 1.00 37.77 ? 338 HOH A O 1 +HETATM 1564 O O . HOH C 3 . ? 6.129 29.073 22.321 1.00 16.33 ? 339 HOH A O 1 +HETATM 1565 O O . HOH C 3 . ? -1.177 40.539 21.882 1.00 44.10 ? 344 HOH A O 1 +HETATM 1566 O O . HOH C 3 . ? 5.419 32.851 15.495 1.00 30.80 ? 345 HOH A O 1 +HETATM 1567 O O . HOH C 3 . ? -4.152 36.630 22.922 1.00 20.75 ? 347 HOH A O 1 +HETATM 1568 O O . HOH C 3 . ? -4.148 34.087 15.312 1.00 40.97 ? 348 HOH A O 1 +HETATM 1569 O O . HOH C 3 . ? -1.520 35.696 16.810 1.00 33.07 ? 349 HOH A O 1 +HETATM 1570 O O . HOH C 3 . ? -8.394 16.328 28.403 1.00 42.47 ? 350 HOH A O 1 +HETATM 1571 O O . HOH C 3 . ? 12.774 35.380 44.229 1.00 33.30 ? 351 HOH A O 1 +HETATM 1572 O O . HOH C 3 . ? -0.050 29.212 42.002 1.00 20.11 ? 352 HOH A O 1 +HETATM 1573 O O . HOH C 3 . ? 0.268 30.250 44.548 1.00 33.28 ? 353 HOH A O 1 +HETATM 1574 O O . HOH C 3 . ? 6.366 14.022 31.040 1.00 29.72 ? 354 HOH A O 1 +HETATM 1575 O O . HOH C 3 . ? 5.442 46.385 23.251 2.00 12.28 ? 355 HOH A O 1 +HETATM 1576 O O . HOH C 3 . ? 16.789 18.847 36.855 1.00 18.47 ? 359 HOH A O 1 +HETATM 1577 O O . HOH C 3 . ? 8.600 41.688 43.268 1.00 32.41 ? 360 HOH A O 1 +HETATM 1578 O O . HOH C 3 . ? -0.914 12.297 29.738 1.00 52.40 ? 361 HOH A O 1 +HETATM 1579 O O . HOH C 3 . ? 10.159 24.877 48.578 1.00 32.99 ? 362 HOH A O 1 +HETATM 1580 O O . HOH C 3 . ? 13.425 17.141 43.807 1.00 47.69 ? 364 HOH A O 1 +HETATM 1581 O O . HOH C 3 . ? 8.484 14.092 39.796 1.00 50.23 ? 365 HOH A O 1 +HETATM 1582 O O . HOH C 3 . ? 0.777 17.276 23.702 1.00 42.81 ? 369 HOH A O 1 +HETATM 1583 O O . HOH C 3 . ? 12.114 11.044 25.446 1.00 30.66 ? 370 HOH A O 1 +HETATM 1584 O O . HOH C 3 . ? -0.420 40.187 16.265 1.00 50.08 ? 371 HOH A O 1 +HETATM 1585 O O . HOH C 3 . ? 21.818 19.523 31.648 1.00 26.97 ? 372 HOH A O 1 +HETATM 1586 O O . HOH C 3 . ? 21.175 30.084 33.914 1.00 35.10 ? 374 HOH A O 1 +HETATM 1587 O O . HOH C 3 . ? 17.564 28.807 43.910 1.00 57.40 ? 375 HOH A O 1 +HETATM 1588 O O . HOH C 3 . ? 9.155 51.462 26.077 1.00 40.79 ? 377 HOH A O 1 +HETATM 1589 O O . HOH C 3 . ? -7.921 37.937 33.878 1.00 43.79 ? 378 HOH A O 1 +HETATM 1590 O O . HOH C 3 . ? 0.398 20.590 15.107 1.00 62.05 ? 379 HOH A O 1 +HETATM 1591 O O . HOH C 3 . ? 14.756 38.348 44.061 1.00 56.07 ? 380 HOH A O 1 +HETATM 1592 O O . HOH C 3 . ? 11.614 12.253 40.291 1.00 63.06 ? 383 HOH A O 1 +HETATM 1593 O O . HOH C 3 . ? 0.456 51.952 24.869 1.00 37.73 ? 384 HOH A O 1 +HETATM 1594 O O . HOH C 3 . ? -11.643 26.006 34.243 1.00 32.42 ? 386 HOH A O 1 +HETATM 1595 O O . HOH C 3 . ? -8.434 42.342 41.658 1.00 55.70 ? 388 HOH A O 1 +HETATM 1596 O O . HOH C 3 . ? -6.844 35.487 21.219 1.00 48.35 ? 389 HOH A O 1 +HETATM 1597 O O . HOH C 3 . ? -8.644 18.377 19.373 1.00 51.37 ? 391 HOH A O 1 +HETATM 1598 O O . HOH C 3 . ? -14.093 22.564 25.998 1.00 34.20 ? 392 HOH A O 1 +HETATM 1599 O O . HOH C 3 . ? -7.686 30.820 38.761 1.00 31.68 ? 393 HOH A O 1 +HETATM 1600 O O . HOH C 3 . ? 18.695 32.314 22.345 1.00 47.92 ? 394 HOH A O 1 +HETATM 1601 O O . HOH C 3 . ? 25.864 22.543 33.388 1.00 36.81 ? 395 HOH A O 1 +HETATM 1602 O O . HOH C 3 . ? 24.405 27.248 33.431 1.00 31.12 ? 396 HOH A O 1 +HETATM 1603 O O . HOH C 3 . ? -7.408 25.152 44.092 1.00 48.45 ? 399 HOH A O 1 +HETATM 1604 O O . HOH C 3 . ? 5.708 20.432 46.923 1.00 37.27 ? 400 HOH A O 1 +HETATM 1605 O O . HOH C 3 . ? 5.201 52.733 26.422 1.00 36.72 ? 401 HOH A O 1 +HETATM 1606 O O . HOH C 3 . ? 12.716 47.992 24.823 1.00 27.61 ? 402 HOH A O 1 +HETATM 1607 O O . HOH C 3 . ? 0.553 28.265 14.225 1.00 42.68 ? 403 HOH A O 1 +HETATM 1608 O O . HOH C 3 . ? 22.300 25.895 17.972 1.00 41.99 ? 405 HOH A O 1 +HETATM 1609 O O . HOH C 3 . ? 3.818 34.647 40.428 1.00 25.84 ? 406 HOH A O 1 +HETATM 1610 O O . HOH C 3 . ? 18.242 23.480 42.447 1.00 43.97 ? 410 HOH A O 1 +HETATM 1611 O O . HOH C 3 . ? -10.065 28.093 35.556 1.00 42.42 ? 411 HOH A O 1 +HETATM 1612 O O . HOH C 3 . ? -0.633 22.825 11.910 1.00 54.73 ? 412 HOH A O 1 +HETATM 1613 O O . HOH C 3 . ? 17.261 38.861 32.897 1.00 44.51 ? 413 HOH A O 1 +HETATM 1614 O O . HOH C 3 . ? 1.318 53.369 34.961 1.00 41.54 ? 414 HOH A O 1 +HETATM 1615 O O . HOH C 3 . ? 5.901 36.405 16.415 1.00 41.53 ? 415 HOH A O 1 +HETATM 1616 O O . HOH C 3 . ? 10.729 9.649 24.060 1.00 39.40 ? 416 HOH A O 1 +HETATM 1617 O O . HOH C 3 . ? 10.938 35.013 49.179 1.00 54.86 ? 420 HOH A O 1 +HETATM 1618 O O . HOH C 3 . ? 17.702 30.838 42.153 1.00 46.98 ? 421 HOH A O 1 +HETATM 1619 O O . HOH C 3 . ? 24.108 20.163 35.488 1.00 39.95 ? 422 HOH A O 1 +HETATM 1620 O O . HOH C 3 . ? -9.008 38.642 31.453 1.00 41.72 ? 423 HOH A O 1 +HETATM 1621 O O . HOH C 3 . ? -3.564 51.026 35.612 1.00 48.32 ? 424 HOH A O 1 +HETATM 1622 O O . HOH C 3 . ? -1.815 37.938 18.830 1.00 41.84 ? 431 HOH A O 1 +HETATM 1623 O O . HOH C 3 . ? 12.207 48.997 21.059 1.00 36.26 ? 432 HOH A O 1 +HETATM 1624 O O . HOH C 3 . ? 12.271 46.705 20.121 1.00 46.09 ? 433 HOH A O 1 +HETATM 1625 O O . HOH C 3 . ? 7.775 49.140 40.358 1.00 39.11 ? 434 HOH A O 1 +HETATM 1626 O O . HOH C 3 . ? -11.646 23.514 35.814 1.00 39.96 ? 440 HOH A O 1 +HETATM 1627 O O . HOH C 3 . ? -9.437 35.252 32.709 1.00 40.72 ? 441 HOH A O 1 +HETATM 1628 O O . HOH C 3 . ? 11.067 23.149 19.721 1.00 42.72 ? 442 HOH A O 1 +HETATM 1629 O O . HOH C 3 . ? 7.382 12.263 28.956 1.00 42.79 ? 443 HOH A O 1 +HETATM 1630 O O . HOH C 3 . ? -3.409 20.097 23.043 1.00 39.36 ? 444 HOH A O 1 +HETATM 1631 O O . HOH C 3 . ? 21.194 23.003 17.102 1.00 46.54 ? 445 HOH A O 1 +HETATM 1632 O O . HOH C 3 . ? -2.921 45.302 37.575 1.00 37.47 ? 446 HOH A O 1 +HETATM 1633 O O . HOH C 3 . ? -3.982 47.964 36.471 1.00 40.65 ? 447 HOH A O 1 +HETATM 1634 O O . HOH C 3 . ? -3.215 45.047 40.793 1.00 42.32 ? 448 HOH A O 1 +HETATM 1635 O O . HOH C 3 . ? 12.980 40.507 43.412 1.00 43.06 ? 450 HOH A O 1 +HETATM 1636 O O . HOH C 3 . ? 17.170 40.984 36.032 1.00 42.68 ? 451 HOH A O 1 +HETATM 1637 O O . HOH C 3 . ? 12.896 51.368 39.976 1.00 43.38 ? 452 HOH A O 1 +HETATM 1638 O O . HOH C 3 . ? -3.565 44.535 27.990 1.00 45.90 ? 453 HOH A O 1 +HETATM 1639 O O . HOH C 3 . ? -8.045 27.456 17.208 1.00 44.95 ? 454 HOH A O 1 +# +loop_ +_pdbx_poly_seq_scheme.asym_id +_pdbx_poly_seq_scheme.entity_id +_pdbx_poly_seq_scheme.seq_id +_pdbx_poly_seq_scheme.mon_id +_pdbx_poly_seq_scheme.ndb_seq_num +_pdbx_poly_seq_scheme.pdb_seq_num +_pdbx_poly_seq_scheme.auth_seq_num +_pdbx_poly_seq_scheme.pdb_mon_id +_pdbx_poly_seq_scheme.auth_mon_id +_pdbx_poly_seq_scheme.pdb_strand_id +_pdbx_poly_seq_scheme.pdb_ins_code +_pdbx_poly_seq_scheme.hetero +A 1 1 ARG 1 1 1 ARG ARG A . n +A 1 2 THR 2 2 2 THR THR A . n +A 1 3 ASP 3 3 3 ASP ASP A . n +A 1 4 CYS 4 4 4 CYS CYS A . n +A 1 5 TYR 5 5 5 TYR TYR A . n +A 1 6 GLY 6 6 6 GLY GLY A . n +A 1 7 ASN 7 7 7 ASN ASN A . n +A 1 8 VAL 8 8 8 VAL VAL A . n +A 1 9 ASN 9 9 9 ASN ASN A . n +A 1 10 ARG 10 10 10 ARG ARG A . n +A 1 11 ILE 11 11 11 ILE ILE A . n +A 1 12 ASP 12 12 12 ASP ASP A . n +A 1 13 THR 13 13 13 THR THR A . n +A 1 14 THR 14 14 14 THR THR A . n +A 1 15 GLY 15 15 15 GLY GLY A . n +A 1 16 ALA 16 16 16 ALA ALA A . n +A 1 17 SER 17 17 17 SER SER A . n +A 1 18 CYS 18 18 18 CYS CYS A . n +A 1 19 LYS 19 19 19 LYS LYS A . n +A 1 20 THR 20 20 20 THR THR A . n +A 1 21 ALA 21 21 21 ALA ALA A . n +A 1 22 LYS 22 22 22 LYS LYS A . n +A 1 23 PRO 23 23 23 PRO PRO A . n +A 1 24 GLU 24 24 24 GLU GLU A . n +A 1 25 GLY 25 25 25 GLY GLY A . n +A 1 26 LEU 26 26 26 LEU LEU A . n +A 1 27 SER 27 27 27 SER SER A . n +A 1 28 TYR 28 28 28 TYR TYR A . n +A 1 29 CYS 29 29 29 CYS CYS A . n +A 1 30 GLY 30 30 30 GLY GLY A . n +A 1 31 VAL 31 31 31 VAL VAL A . n +A 1 32 SER 32 32 32 SER SER A . n +A 1 33 ALA 33 33 33 ALA ALA A . n +A 1 34 SER 34 34 34 SER SER A . n +A 1 35 LYS 35 35 35 LYS LYS A . n +A 1 36 LYS 36 36 36 LYS LYS A . n +A 1 37 ILE 37 37 37 ILE ILE A . n +A 1 38 ALA 38 38 38 ALA ALA A . n +A 1 39 GLU 39 39 39 GLU GLU A . n +A 1 40 ARG 40 40 40 ARG ARG A . n +A 1 41 ASP 41 41 41 ASP ASP A . n +A 1 42 LEU 42 42 42 LEU LEU A . n +A 1 43 GLN 43 43 43 GLN GLN A . n +A 1 44 ALA 44 44 44 ALA ALA A . n +A 1 45 MET 45 45 45 MET MET A . n +A 1 46 ASP 46 46 46 ASP ASP A . n +A 1 47 ARG 47 47 47 ARG ARG A . n +A 1 48 TYR 48 48 48 TYR TYR A . n +A 1 49 LYS 49 49 49 LYS LYS A . n +A 1 50 THR 50 50 50 THR THR A . n +A 1 51 ILE 51 51 51 ILE ILE A . n +A 1 52 ILE 52 52 52 ILE ILE A . n +A 1 53 LYS 53 53 53 LYS LYS A . n +A 1 54 LYS 54 54 54 LYS LYS A . n +A 1 55 VAL 55 55 55 VAL VAL A . n +A 1 56 GLY 56 56 56 GLY GLY A . n +A 1 57 GLU 57 57 57 GLU GLU A . n +A 1 58 LYS 58 58 58 LYS LYS A . n +A 1 59 LEU 59 59 59 LEU LEU A . n +A 1 60 CYS 60 60 60 CYS CYS A . n +A 1 61 VAL 61 61 61 VAL VAL A . n +A 1 62 GLU 62 62 62 GLU GLU A . n +A 1 63 PRO 63 63 63 PRO PRO A . n +A 1 64 ALA 64 64 64 ALA ALA A . n +A 1 65 VAL 65 65 65 VAL VAL A . n +A 1 66 ILE 66 66 66 ILE ILE A . n +A 1 67 ALA 67 67 67 ALA ALA A . n +A 1 68 GLY 68 68 68 GLY GLY A . n +A 1 69 ILE 69 69 69 ILE ILE A . n +A 1 70 ILE 70 70 70 ILE ILE A . n +A 1 71 SER 71 71 71 SER SER A . n +A 1 72 ARG 72 72 72 ARG ARG A . n +A 1 73 GLU 73 73 73 GLU GLU A . n +A 1 74 SER 74 74 74 SER SER A . n +A 1 75 HIS 75 75 75 HIS HIS A . n +A 1 76 ALA 76 76 76 ALA ALA A . n +A 1 77 GLY 77 77 77 GLY GLY A . n +A 1 78 LYS 78 78 78 LYS LYS A . n +A 1 79 VAL 79 79 79 VAL VAL A . n +A 1 80 LEU 80 80 80 LEU LEU A . n +A 1 81 LYS 81 81 81 LYS LYS A . n +A 1 82 ASN 82 82 82 ASN ASN A . n +A 1 83 GLY 83 83 83 GLY GLY A . n +A 1 84 TRP 84 84 84 TRP TRP A . n +A 1 85 GLY 85 85 85 GLY GLY A . n +A 1 86 ASP 86 86 86 ASP ASP A . n +A 1 87 ARG 87 87 87 ARG ARG A . n +A 1 88 GLY 88 88 88 GLY GLY A . n +A 1 89 ASN 89 89 89 ASN ASN A . n +A 1 90 GLY 90 90 90 GLY GLY A . n +A 1 91 PHE 91 91 91 PHE PHE A . n +A 1 92 GLY 92 92 92 GLY GLY A . n +A 1 93 LEU 93 93 93 LEU LEU A . n +A 1 94 MET 94 94 94 MET MET A . n +A 1 95 GLN 95 95 95 GLN GLN A . n +A 1 96 VAL 96 96 96 VAL VAL A . n +A 1 97 ASP 97 97 97 ASP ASP A . n +A 1 98 LYS 98 98 98 LYS LYS A . n +A 1 99 ARG 99 99 99 ARG ARG A . n +A 1 100 SER 100 100 100 SER SER A . n +A 1 101 HIS 101 101 101 HIS HIS A . n +A 1 102 LYS 102 102 102 LYS LYS A . n +A 1 103 PRO 103 103 103 PRO PRO A . n +A 1 104 GLN 104 104 104 GLN GLN A . n +A 1 105 GLY 105 105 105 GLY GLY A . n +A 1 106 THR 106 106 106 THR THR A . n +A 1 107 TRP 107 107 107 TRP TRP A . n +A 1 108 ASN 108 108 108 ASN ASN A . n +A 1 109 GLY 109 109 109 GLY GLY A . n +A 1 110 GLU 110 110 110 GLU GLU A . n +A 1 111 VAL 111 111 111 VAL VAL A . n +A 1 112 HIS 112 112 112 HIS HIS A . n +A 1 113 ILE 113 113 113 ILE ILE A . n +A 1 114 THR 114 114 114 THR THR A . n +A 1 115 GLN 115 115 115 GLN GLN A . n +A 1 116 GLY 116 116 116 GLY GLY A . n +A 1 117 THR 117 117 117 THR THR A . n +A 1 118 THR 118 118 118 THR THR A . n +A 1 119 ILE 119 119 119 ILE ILE A . n +A 1 120 LEU 120 120 120 LEU LEU A . n +A 1 121 ILE 121 121 121 ILE ILE A . n +A 1 122 ASN 122 122 122 ASN ASN A . n +A 1 123 PHE 123 123 123 PHE PHE A . n +A 1 124 ILE 124 124 124 ILE ILE A . n +A 1 125 LYS 125 125 125 LYS LYS A . n +A 1 126 THR 126 126 126 THR THR A . n +A 1 127 ILE 127 127 127 ILE ILE A . n +A 1 128 GLN 128 128 128 GLN GLN A . n +A 1 129 LYS 129 129 129 LYS LYS A . n +A 1 130 LYS 130 130 130 LYS LYS A . n +A 1 131 PHE 131 131 131 PHE PHE A . n +A 1 132 PRO 132 132 132 PRO PRO A . n +A 1 133 SER 133 133 133 SER SER A . n +A 1 134 TRP 134 134 134 TRP TRP A . n +A 1 135 THR 135 135 135 THR THR A . n +A 1 136 LYS 136 136 136 LYS LYS A . n +A 1 137 ASP 137 137 137 ASP ASP A . n +A 1 138 GLN 138 138 138 GLN GLN A . n +A 1 139 GLN 139 139 139 GLN GLN A . n +A 1 140 LEU 140 140 140 LEU LEU A . n +A 1 141 LYS 141 141 141 LYS LYS A . n +A 1 142 GLY 142 142 142 GLY GLY A . n +A 1 143 GLY 143 143 143 GLY GLY A . n +A 1 144 ILE 144 144 144 ILE ILE A . n +A 1 145 SER 145 145 145 SER SER A . n +A 1 146 ALA 146 146 146 ALA ALA A . n +A 1 147 TYR 147 147 147 TYR TYR A . n +A 1 148 ASN 148 148 148 ASN ASN A . n +A 1 149 ALA 149 149 149 ALA ALA A . n +A 1 150 GLY 150 150 150 GLY GLY A . n +A 1 151 ALA 151 151 151 ALA ALA A . n +A 1 152 GLY 152 152 152 GLY GLY A . n +A 1 153 ASN 153 153 153 ASN ASN A . n +A 1 154 VAL 154 154 154 VAL VAL A . n +A 1 155 ARG 155 155 155 ARG ARG A . n +A 1 156 SER 156 156 156 SER SER A . n +A 1 157 TYR 157 157 157 TYR TYR A . n +A 1 158 ALA 158 158 158 ALA ALA A . n +A 1 159 ARG 159 159 159 ARG ARG A . n +A 1 160 MET 160 160 160 MET MET A . n +A 1 161 ASP 161 161 161 ASP ASP A . n +A 1 162 ILE 162 162 162 ILE ILE A . n +A 1 163 GLY 163 163 163 GLY GLY A . n +A 1 164 THR 164 164 164 THR THR A . n +A 1 165 THR 165 165 165 THR THR A . n +A 1 166 HIS 166 166 166 HIS HIS A . n +A 1 167 ASP 167 167 167 ASP ASP A . n +A 1 168 ASP 168 168 168 ASP ASP A . n +A 1 169 TYR 169 169 169 TYR TYR A . n +A 1 170 ALA 170 170 170 ALA ALA A . n +A 1 171 ASN 171 171 171 ASN ASN A . n +A 1 172 ASP 172 172 172 ASP ASP A . n +A 1 173 VAL 173 173 173 VAL VAL A . n +A 1 174 VAL 174 174 174 VAL VAL A . n +A 1 175 ALA 175 175 175 ALA ALA A . n +A 1 176 ARG 176 176 176 ARG ARG A . n +A 1 177 ALA 177 177 177 ALA ALA A . n +A 1 178 GLN 178 178 178 GLN GLN A . n +A 1 179 TYR 179 179 179 TYR TYR A . n +A 1 180 TYR 180 180 180 TYR TYR A . n +A 1 181 LYS 181 181 181 LYS LYS A . n +A 1 182 GLN 182 182 182 GLN GLN A . n +A 1 183 HIS 183 183 183 HIS HIS A . n +A 1 184 GLY 184 184 184 GLY GLY A . n +A 1 185 TYR 185 185 185 TYR TYR A . n +# +loop_ +_pdbx_nonpoly_scheme.asym_id +_pdbx_nonpoly_scheme.entity_id +_pdbx_nonpoly_scheme.mon_id +_pdbx_nonpoly_scheme.ndb_seq_num +_pdbx_nonpoly_scheme.pdb_seq_num +_pdbx_nonpoly_scheme.auth_seq_num +_pdbx_nonpoly_scheme.pdb_mon_id +_pdbx_nonpoly_scheme.auth_mon_id +_pdbx_nonpoly_scheme.pdb_strand_id +_pdbx_nonpoly_scheme.pdb_ins_code +C 3 HOH 1 201 201 HOH HOH A . +C 3 HOH 2 203 203 HOH HOH A . +C 3 HOH 3 210 210 HOH HOH A . +C 3 HOH 4 211 211 HOH HOH A . +C 3 HOH 5 212 212 HOH HOH A . +C 3 HOH 6 213 213 HOH HOH A . +C 3 HOH 7 214 214 HOH HOH A . +C 3 HOH 8 216 216 HOH HOH A . +C 3 HOH 9 221 221 HOH HOH A . +C 3 HOH 10 222 222 HOH HOH A . +C 3 HOH 11 223 223 HOH HOH A . +C 3 HOH 12 224 224 HOH HOH A . +C 3 HOH 13 226 226 HOH HOH A . +C 3 HOH 14 227 227 HOH HOH A . +C 3 HOH 15 228 228 HOH HOH A . +C 3 HOH 16 229 229 HOH HOH A . +C 3 HOH 17 231 231 HOH HOH A . +C 3 HOH 18 234 234 HOH HOH A . +C 3 HOH 19 236 236 HOH HOH A . +C 3 HOH 20 245 245 HOH HOH A . +C 3 HOH 21 246 246 HOH HOH A . +C 3 HOH 22 248 248 HOH HOH A . +C 3 HOH 23 249 249 HOH HOH A . +C 3 HOH 24 252 252 HOH HOH A . +C 3 HOH 25 254 254 HOH HOH A . +C 3 HOH 26 256 256 HOH HOH A . +C 3 HOH 27 258 258 HOH HOH A . +C 3 HOH 28 260 260 HOH HOH A . +C 3 HOH 29 261 261 HOH HOH A . +C 3 HOH 30 262 262 HOH HOH A . +C 3 HOH 31 263 263 HOH HOH A . +C 3 HOH 32 265 265 HOH HOH A . +C 3 HOH 33 267 267 HOH HOH A . +C 3 HOH 34 269 269 HOH HOH A . +C 3 HOH 35 270 270 HOH HOH A . +C 3 HOH 36 271 271 HOH HOH A . +C 3 HOH 37 272 272 HOH HOH A . +C 3 HOH 38 273 273 HOH HOH A . +C 3 HOH 39 275 275 HOH HOH A . +C 3 HOH 40 276 276 HOH HOH A . +C 3 HOH 41 277 277 HOH HOH A . +C 3 HOH 42 278 278 HOH HOH A . +C 3 HOH 43 279 279 HOH HOH A . +C 3 HOH 44 280 280 HOH HOH A . +C 3 HOH 45 281 281 HOH HOH A . +C 3 HOH 46 282 282 HOH HOH A . +C 3 HOH 47 283 283 HOH HOH A . +C 3 HOH 48 284 284 HOH HOH A . +C 3 HOH 49 285 285 HOH HOH A . +C 3 HOH 50 286 286 HOH HOH A . +C 3 HOH 51 290 290 HOH HOH A . +C 3 HOH 52 291 291 HOH HOH A . +C 3 HOH 53 292 292 HOH HOH A . +C 3 HOH 54 295 295 HOH HOH A . +C 3 HOH 55 298 298 HOH HOH A . +C 3 HOH 56 299 299 HOH HOH A . +C 3 HOH 57 300 300 HOH HOH A . +C 3 HOH 58 301 301 HOH HOH A . +C 3 HOH 59 302 302 HOH HOH A . +C 3 HOH 60 303 303 HOH HOH A . +C 3 HOH 61 305 305 HOH HOH A . +C 3 HOH 62 308 308 HOH HOH A . +C 3 HOH 63 309 309 HOH HOH A . +C 3 HOH 64 311 311 HOH HOH A . +C 3 HOH 65 312 312 HOH HOH A . +C 3 HOH 66 314 314 HOH HOH A . +C 3 HOH 67 315 315 HOH HOH A . +C 3 HOH 68 316 316 HOH HOH A . +C 3 HOH 69 317 317 HOH HOH A . +C 3 HOH 70 318 318 HOH HOH A . +C 3 HOH 71 319 319 HOH HOH A . +C 3 HOH 72 320 320 HOH HOH A . +C 3 HOH 73 321 321 HOH HOH A . +C 3 HOH 74 322 322 HOH HOH A . +C 3 HOH 75 323 323 HOH HOH A . +C 3 HOH 76 324 324 HOH HOH A . +C 3 HOH 77 325 325 HOH HOH A . +C 3 HOH 78 326 326 HOH HOH A . +C 3 HOH 79 328 328 HOH HOH A . +C 3 HOH 80 329 329 HOH HOH A . +C 3 HOH 81 330 330 HOH HOH A . +C 3 HOH 82 331 331 HOH HOH A . +C 3 HOH 83 332 332 HOH HOH A . +C 3 HOH 84 333 333 HOH HOH A . +C 3 HOH 85 334 334 HOH HOH A . +C 3 HOH 86 335 335 HOH HOH A . +C 3 HOH 87 336 336 HOH HOH A . +C 3 HOH 88 338 338 HOH HOH A . +C 3 HOH 89 339 339 HOH HOH A . +C 3 HOH 90 344 344 HOH HOH A . +C 3 HOH 91 345 345 HOH HOH A . +C 3 HOH 92 347 347 HOH HOH A . +C 3 HOH 93 348 348 HOH HOH A . +C 3 HOH 94 349 349 HOH HOH A . +C 3 HOH 95 350 350 HOH HOH A . +C 3 HOH 96 351 351 HOH HOH A . +C 3 HOH 97 352 352 HOH HOH A . +C 3 HOH 98 353 353 HOH HOH A . +C 3 HOH 99 354 354 HOH HOH A . +C 3 HOH 100 355 355 HOH HOH A . +C 3 HOH 101 359 359 HOH HOH A . +C 3 HOH 102 360 360 HOH HOH A . +C 3 HOH 103 361 361 HOH HOH A . +C 3 HOH 104 362 362 HOH HOH A . +C 3 HOH 105 364 364 HOH HOH A . +C 3 HOH 106 365 365 HOH HOH A . +C 3 HOH 107 369 369 HOH HOH A . +C 3 HOH 108 370 370 HOH HOH A . +C 3 HOH 109 371 371 HOH HOH A . +C 3 HOH 110 372 372 HOH HOH A . +C 3 HOH 111 374 374 HOH HOH A . +C 3 HOH 112 375 375 HOH HOH A . +C 3 HOH 113 377 377 HOH HOH A . +C 3 HOH 114 378 378 HOH HOH A . +C 3 HOH 115 379 379 HOH HOH A . +C 3 HOH 116 380 380 HOH HOH A . +C 3 HOH 117 383 383 HOH HOH A . +C 3 HOH 118 384 384 HOH HOH A . +C 3 HOH 119 386 386 HOH HOH A . +C 3 HOH 120 388 388 HOH HOH A . +C 3 HOH 121 389 389 HOH HOH A . +C 3 HOH 122 391 391 HOH HOH A . +C 3 HOH 123 392 392 HOH HOH A . +C 3 HOH 124 393 393 HOH HOH A . +C 3 HOH 125 394 394 HOH HOH A . +C 3 HOH 126 395 395 HOH HOH A . +C 3 HOH 127 396 396 HOH HOH A . +C 3 HOH 128 399 399 HOH HOH A . +C 3 HOH 129 400 400 HOH HOH A . +C 3 HOH 130 401 401 HOH HOH A . +C 3 HOH 131 402 402 HOH HOH A . +C 3 HOH 132 403 403 HOH HOH A . +C 3 HOH 133 405 405 HOH HOH A . +C 3 HOH 134 406 406 HOH HOH A . +C 3 HOH 135 410 410 HOH HOH A . +C 3 HOH 136 411 411 HOH HOH A . +C 3 HOH 137 412 412 HOH HOH A . +C 3 HOH 138 413 413 HOH HOH A . +C 3 HOH 139 414 414 HOH HOH A . +C 3 HOH 140 415 415 HOH HOH A . +C 3 HOH 141 416 416 HOH HOH A . +C 3 HOH 142 420 420 HOH HOH A . +C 3 HOH 143 421 421 HOH HOH A . +C 3 HOH 144 422 422 HOH HOH A . +C 3 HOH 145 423 423 HOH HOH A . +C 3 HOH 146 424 424 HOH HOH A . +C 3 HOH 147 431 431 HOH HOH A . +C 3 HOH 148 432 432 HOH HOH A . +C 3 HOH 149 433 433 HOH HOH A . +C 3 HOH 150 434 434 HOH HOH A . +C 3 HOH 151 440 440 HOH HOH A . +C 3 HOH 152 441 441 HOH HOH A . +C 3 HOH 153 442 442 HOH HOH A . +C 3 HOH 154 443 443 HOH HOH A . +C 3 HOH 155 444 444 HOH HOH A . +C 3 HOH 156 445 445 HOH HOH A . +C 3 HOH 157 446 446 HOH HOH A . +C 3 HOH 158 447 447 HOH HOH A . +C 3 HOH 159 448 448 HOH HOH A . +C 3 HOH 160 450 450 HOH HOH A . +C 3 HOH 161 451 451 HOH HOH A . +C 3 HOH 162 452 452 HOH HOH A . +C 3 HOH 163 453 453 HOH HOH A . +C 3 HOH 164 454 454 HOH HOH A . +# +_pdbx_molecule_features.prd_id PRD_900017 +_pdbx_molecule_features.name triacetyl-beta-chitotriose +_pdbx_molecule_features.type Oligosaccharide +_pdbx_molecule_features.class Inhibitor +_pdbx_molecule_features.details oligosaccharide +# +_pdbx_molecule.instance_id 1 +_pdbx_molecule.prd_id PRD_900017 +_pdbx_molecule.asym_id B +# +_pdbx_struct_assembly.id 1 +_pdbx_struct_assembly.details author_defined_assembly +_pdbx_struct_assembly.method_details ? +_pdbx_struct_assembly.oligomeric_details monomeric +_pdbx_struct_assembly.oligomeric_count 1 +# +_pdbx_struct_assembly_gen.assembly_id 1 +_pdbx_struct_assembly_gen.oper_expression 1 +_pdbx_struct_assembly_gen.asym_id_list A,B,C +# +_pdbx_struct_oper_list.id 1 +_pdbx_struct_oper_list.type 'identity operation' +_pdbx_struct_oper_list.name 1_555 +_pdbx_struct_oper_list.symmetry_operation x,y,z +_pdbx_struct_oper_list.matrix[1][1] 1.0000000000 +_pdbx_struct_oper_list.matrix[1][2] 0.0000000000 +_pdbx_struct_oper_list.matrix[1][3] 0.0000000000 +_pdbx_struct_oper_list.vector[1] 0.0000000000 +_pdbx_struct_oper_list.matrix[2][1] 0.0000000000 +_pdbx_struct_oper_list.matrix[2][2] 1.0000000000 +_pdbx_struct_oper_list.matrix[2][3] 0.0000000000 +_pdbx_struct_oper_list.vector[2] 0.0000000000 +_pdbx_struct_oper_list.matrix[3][1] 0.0000000000 +_pdbx_struct_oper_list.matrix[3][2] 0.0000000000 +_pdbx_struct_oper_list.matrix[3][3] 1.0000000000 +_pdbx_struct_oper_list.vector[3] 0.0000000000 +# +loop_ +_pdbx_audit_revision_history.ordinal +_pdbx_audit_revision_history.data_content_type +_pdbx_audit_revision_history.major_revision +_pdbx_audit_revision_history.minor_revision +_pdbx_audit_revision_history.revision_date +1 'Structure model' 1 0 1995-01-26 +2 'Structure model' 1 1 2008-03-24 +3 'Structure model' 1 2 2011-07-13 +4 'Structure model' 2 0 2020-07-29 +# +loop_ +_pdbx_audit_revision_details.ordinal +_pdbx_audit_revision_details.revision_ordinal +_pdbx_audit_revision_details.data_content_type +_pdbx_audit_revision_details.provider +_pdbx_audit_revision_details.type +_pdbx_audit_revision_details.description +_pdbx_audit_revision_details.details +1 1 'Structure model' repository 'Initial release' ? ? +2 4 'Structure model' repository Remediation 'Carbohydrate remediation' ? +# +loop_ +_pdbx_audit_revision_group.ordinal +_pdbx_audit_revision_group.revision_ordinal +_pdbx_audit_revision_group.data_content_type +_pdbx_audit_revision_group.group +1 2 'Structure model' 'Version format compliance' +2 3 'Structure model' 'Non-polymer description' +3 3 'Structure model' 'Version format compliance' +4 4 'Structure model' 'Atomic model' +5 4 'Structure model' 'Data collection' +6 4 'Structure model' 'Derived calculations' +7 4 'Structure model' Other +8 4 'Structure model' 'Structure summary' +# +loop_ +_pdbx_audit_revision_category.ordinal +_pdbx_audit_revision_category.revision_ordinal +_pdbx_audit_revision_category.data_content_type +_pdbx_audit_revision_category.category +1 4 'Structure model' atom_site +2 4 'Structure model' chem_comp +3 4 'Structure model' entity +4 4 'Structure model' entity_name_com +5 4 'Structure model' pdbx_branch_scheme +6 4 'Structure model' pdbx_chem_comp_identifier +7 4 'Structure model' pdbx_database_status +8 4 'Structure model' pdbx_entity_branch +9 4 'Structure model' pdbx_entity_branch_descriptor +10 4 'Structure model' pdbx_entity_branch_link +11 4 'Structure model' pdbx_entity_branch_list +12 4 'Structure model' pdbx_entity_nonpoly +13 4 'Structure model' pdbx_molecule_features +14 4 'Structure model' pdbx_nonpoly_scheme +15 4 'Structure model' pdbx_struct_assembly_gen +16 4 'Structure model' struct_asym +17 4 'Structure model' struct_conn +18 4 'Structure model' struct_site +19 4 'Structure model' struct_site_gen +# +loop_ +_pdbx_audit_revision_item.ordinal +_pdbx_audit_revision_item.revision_ordinal +_pdbx_audit_revision_item.data_content_type +_pdbx_audit_revision_item.item +1 4 'Structure model' '_atom_site.B_iso_or_equiv' +2 4 'Structure model' '_atom_site.Cartn_x' +3 4 'Structure model' '_atom_site.Cartn_y' +4 4 'Structure model' '_atom_site.Cartn_z' +5 4 'Structure model' '_atom_site.auth_asym_id' +6 4 'Structure model' '_atom_site.auth_atom_id' +7 4 'Structure model' '_atom_site.auth_seq_id' +8 4 'Structure model' '_atom_site.label_asym_id' +9 4 'Structure model' '_atom_site.label_atom_id' +10 4 'Structure model' '_atom_site.type_symbol' +11 4 'Structure model' '_chem_comp.name' +12 4 'Structure model' '_chem_comp.type' +13 4 'Structure model' '_entity.formula_weight' +14 4 'Structure model' '_entity.pdbx_description' +15 4 'Structure model' '_entity.pdbx_number_of_molecules' +16 4 'Structure model' '_entity.type' +17 4 'Structure model' '_pdbx_database_status.process_site' +18 4 'Structure model' '_pdbx_struct_assembly_gen.asym_id_list' +19 4 'Structure model' '_struct_conn.pdbx_dist_value' +20 4 'Structure model' '_struct_conn.pdbx_leaving_atom_flag' +21 4 'Structure model' '_struct_conn.ptnr1_auth_asym_id' +22 4 'Structure model' '_struct_conn.ptnr1_auth_seq_id' +23 4 'Structure model' '_struct_conn.ptnr1_label_asym_id' +24 4 'Structure model' '_struct_conn.ptnr1_label_atom_id' +25 4 'Structure model' '_struct_conn.ptnr2_auth_asym_id' +26 4 'Structure model' '_struct_conn.ptnr2_auth_seq_id' +27 4 'Structure model' '_struct_conn.ptnr2_label_asym_id' +28 4 'Structure model' '_struct_conn.ptnr2_label_atom_id' +# +_software.name TNT +_software.classification refinement +_software.version . +_software.citation_id ? +_software.pdbx_ordinal 1 +# +loop_ +_pdbx_validate_rmsd_bond.id +_pdbx_validate_rmsd_bond.PDB_model_num +_pdbx_validate_rmsd_bond.auth_atom_id_1 +_pdbx_validate_rmsd_bond.auth_asym_id_1 +_pdbx_validate_rmsd_bond.auth_comp_id_1 +_pdbx_validate_rmsd_bond.auth_seq_id_1 +_pdbx_validate_rmsd_bond.PDB_ins_code_1 +_pdbx_validate_rmsd_bond.label_alt_id_1 +_pdbx_validate_rmsd_bond.auth_atom_id_2 +_pdbx_validate_rmsd_bond.auth_asym_id_2 +_pdbx_validate_rmsd_bond.auth_comp_id_2 +_pdbx_validate_rmsd_bond.auth_seq_id_2 +_pdbx_validate_rmsd_bond.PDB_ins_code_2 +_pdbx_validate_rmsd_bond.label_alt_id_2 +_pdbx_validate_rmsd_bond.bond_value +_pdbx_validate_rmsd_bond.bond_target_value +_pdbx_validate_rmsd_bond.bond_deviation +_pdbx_validate_rmsd_bond.bond_standard_deviation +_pdbx_validate_rmsd_bond.linker_flag +1 1 CD A GLU 24 ? ? OE2 A GLU 24 ? ? 1.323 1.252 0.071 0.011 N +2 1 CD A GLU 57 ? ? OE1 A GLU 57 ? ? 1.337 1.252 0.085 0.011 N +# +loop_ +_pdbx_validate_rmsd_angle.id +_pdbx_validate_rmsd_angle.PDB_model_num +_pdbx_validate_rmsd_angle.auth_atom_id_1 +_pdbx_validate_rmsd_angle.auth_asym_id_1 +_pdbx_validate_rmsd_angle.auth_comp_id_1 +_pdbx_validate_rmsd_angle.auth_seq_id_1 +_pdbx_validate_rmsd_angle.PDB_ins_code_1 +_pdbx_validate_rmsd_angle.label_alt_id_1 +_pdbx_validate_rmsd_angle.auth_atom_id_2 +_pdbx_validate_rmsd_angle.auth_asym_id_2 +_pdbx_validate_rmsd_angle.auth_comp_id_2 +_pdbx_validate_rmsd_angle.auth_seq_id_2 +_pdbx_validate_rmsd_angle.PDB_ins_code_2 +_pdbx_validate_rmsd_angle.label_alt_id_2 +_pdbx_validate_rmsd_angle.auth_atom_id_3 +_pdbx_validate_rmsd_angle.auth_asym_id_3 +_pdbx_validate_rmsd_angle.auth_comp_id_3 +_pdbx_validate_rmsd_angle.auth_seq_id_3 +_pdbx_validate_rmsd_angle.PDB_ins_code_3 +_pdbx_validate_rmsd_angle.label_alt_id_3 +_pdbx_validate_rmsd_angle.angle_value +_pdbx_validate_rmsd_angle.angle_target_value +_pdbx_validate_rmsd_angle.angle_deviation +_pdbx_validate_rmsd_angle.angle_standard_deviation +_pdbx_validate_rmsd_angle.linker_flag +1 1 CB A ASP 3 ? ? CG A ASP 3 ? ? OD1 A ASP 3 ? ? 124.70 118.30 6.40 0.90 N +2 1 CB A ASP 3 ? ? CG A ASP 3 ? ? OD2 A ASP 3 ? ? 111.51 118.30 -6.79 0.90 N +3 1 CB A ASP 41 ? ? CG A ASP 41 ? ? OD1 A ASP 41 ? ? 111.10 118.30 -7.20 0.90 N +4 1 CB A ASP 41 ? ? CG A ASP 41 ? ? OD2 A ASP 41 ? ? 124.56 118.30 6.26 0.90 N +5 1 NE A ARG 47 ? ? CZ A ARG 47 ? ? NH2 A ARG 47 ? ? 117.15 120.30 -3.15 0.50 N +6 1 CB A ASP 86 ? ? CG A ASP 86 ? ? OD1 A ASP 86 ? ? 126.67 118.30 8.37 0.90 N +7 1 CB A ASP 86 ? ? CG A ASP 86 ? ? OD2 A ASP 86 ? ? 108.54 118.30 -9.76 0.90 N +8 1 NE A ARG 87 ? ? CZ A ARG 87 ? ? NH1 A ARG 87 ? ? 123.69 120.30 3.39 0.50 N +9 1 CB A ASP 97 ? ? CG A ASP 97 ? ? OD1 A ASP 97 ? ? 125.10 118.30 6.80 0.90 N +10 1 CB A ASP 97 ? ? CG A ASP 97 ? ? OD2 A ASP 97 ? ? 109.61 118.30 -8.69 0.90 N +11 1 NE A ARG 99 ? ? CZ A ARG 99 ? ? NH2 A ARG 99 ? ? 116.15 120.30 -4.15 0.50 N +12 1 NE A ARG 155 ? ? CZ A ARG 155 ? ? NH1 A ARG 155 ? ? 116.86 120.30 -3.44 0.50 N +13 1 CB A ASP 168 ? ? CG A ASP 168 ? ? OD2 A ASP 168 ? ? 123.79 118.30 5.49 0.90 N +14 1 NE A ARG 176 ? ? CZ A ARG 176 ? ? NH1 A ARG 176 ? ? 123.84 120.30 3.54 0.50 N +15 1 NE A ARG 176 ? ? CZ A ARG 176 ? ? NH2 A ARG 176 ? ? 117.05 120.30 -3.25 0.50 N +# +loop_ +_pdbx_validate_torsion.id +_pdbx_validate_torsion.PDB_model_num +_pdbx_validate_torsion.auth_comp_id +_pdbx_validate_torsion.auth_asym_id +_pdbx_validate_torsion.auth_seq_id +_pdbx_validate_torsion.PDB_ins_code +_pdbx_validate_torsion.label_alt_id +_pdbx_validate_torsion.phi +_pdbx_validate_torsion.psi +1 1 CYS A 29 ? ? -127.28 -169.17 +2 1 ASP A 168 ? ? -151.11 16.46 +# +loop_ +_pdbx_branch_scheme.asym_id +_pdbx_branch_scheme.entity_id +_pdbx_branch_scheme.mon_id +_pdbx_branch_scheme.num +_pdbx_branch_scheme.pdb_asym_id +_pdbx_branch_scheme.pdb_mon_id +_pdbx_branch_scheme.pdb_seq_num +_pdbx_branch_scheme.auth_asym_id +_pdbx_branch_scheme.auth_mon_id +_pdbx_branch_scheme.auth_seq_num +_pdbx_branch_scheme.hetero +B 2 NAG 1 B NAG 1 ? NAG 3 n +B 2 NAG 2 B NAG 2 ? NAG 2 n +B 2 NAG 3 B NAG 3 ? NAG 1 n +# +loop_ +_pdbx_chem_comp_identifier.comp_id +_pdbx_chem_comp_identifier.type +_pdbx_chem_comp_identifier.program +_pdbx_chem_comp_identifier.program_version +_pdbx_chem_comp_identifier.identifier +NAG 'CONDENSED IUPAC CARBOHYDRATE SYMBOL' GMML 1.0 DGlcpNAcb +NAG 'COMMON NAME' GMML 1.0 N-acetyl-b-D-glucopyranosamine +NAG 'IUPAC CARBOHYDRATE SYMBOL' PDB-CARE 1.0 b-D-GlcpNAc +NAG 'SNFG CARBOHYDRATE SYMBOL' GMML 1.0 GlcNAc +# +_pdbx_entity_branch.entity_id 2 +_pdbx_entity_branch.type oligosaccharide +# +loop_ +_pdbx_entity_branch_descriptor.ordinal +_pdbx_entity_branch_descriptor.entity_id +_pdbx_entity_branch_descriptor.descriptor +_pdbx_entity_branch_descriptor.type +_pdbx_entity_branch_descriptor.program +_pdbx_entity_branch_descriptor.program_version +1 2 DGlcpNAcb1-4DGlcpNAcb1-4DGlcpNAcb1-ROH 'Glycam Condensed Sequence' GMML 1.0 +2 2 'WURCS=2.0/1,3,2/[a2122h-1b_1-5_2*NCC/3=O]/1-1-1/a4-b1_b4-c1' WURCS PDB2Glycan 1.1.0 +3 2 '[][b-D-GlcpNAc]{[(4+1)][b-D-GlcpNAc]{[(4+1)][b-D-GlcpNAc]{}}}' LINUCS PDB-CARE ? +# +loop_ +_pdbx_entity_branch_link.link_id +_pdbx_entity_branch_link.entity_id +_pdbx_entity_branch_link.entity_branch_list_num_1 +_pdbx_entity_branch_link.comp_id_1 +_pdbx_entity_branch_link.atom_id_1 +_pdbx_entity_branch_link.leaving_atom_id_1 +_pdbx_entity_branch_link.entity_branch_list_num_2 +_pdbx_entity_branch_link.comp_id_2 +_pdbx_entity_branch_link.atom_id_2 +_pdbx_entity_branch_link.leaving_atom_id_2 +_pdbx_entity_branch_link.value_order +_pdbx_entity_branch_link.details +1 2 2 NAG C1 O1 1 NAG O4 HO4 sing ? +2 2 3 NAG C1 O1 2 NAG O4 HO4 sing ? +# +loop_ +_pdbx_entity_branch_list.entity_id +_pdbx_entity_branch_list.comp_id +_pdbx_entity_branch_list.num +_pdbx_entity_branch_list.hetero +2 NAG 1 n +2 NAG 2 n +2 NAG 3 n +# +_pdbx_entity_nonpoly.entity_id 3 +_pdbx_entity_nonpoly.name water +_pdbx_entity_nonpoly.comp_id HOH +# diff --git a/modules/io/tests/testfiles/mmcif/atom_site.mmcif b/modules/io/tests/testfiles/mmcif/atom_site.mmcif index 9bd8159d6215e3bf3c1dac4a6fae03f0c73c2375..e01cf812a5556911b8d35391a6ac488b46a9a7dd 100644 --- a/modules/io/tests/testfiles/mmcif/atom_site.mmcif +++ b/modules/io/tests/testfiles/mmcif/atom_site.mmcif @@ -26,6 +26,15 @@ _entity_poly.nstd_linkage no _entity_poly.nstd_monomer no _entity_poly.pdbx_seq_one_letter_code 'VTI' +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 VAL n +1 2 THR n +1 3 ILE n + loop_ _citation.id _citation.abstract_id_CAS diff --git a/modules/mol/alg/doc/chain_mapping.rst b/modules/mol/alg/doc/chain_mapping.rst new file mode 100644 index 0000000000000000000000000000000000000000..0933f252685a7b01851087d8104db8709ceacf53 --- /dev/null +++ b/modules/mol/alg/doc/chain_mapping.rst @@ -0,0 +1,7 @@ +:mod:`~ost.mol.alg.chain_mapping` -- Chain Mapping +-------------------------------------------------------------------------------- + +.. automodule:: ost.mol.alg.chain_mapping + :members: + :member-order: bysource + :synopsis: Chain mapping in assemblies diff --git a/modules/mol/alg/doc/contact_score.rst b/modules/mol/alg/doc/contact_score.rst new file mode 100644 index 0000000000000000000000000000000000000000..ebc839d47e74ca1980681772ce0f3703285a56a5 --- /dev/null +++ b/modules/mol/alg/doc/contact_score.rst @@ -0,0 +1,7 @@ +:mod:`~ost.mol.alg.contact_score` -- Contact-Based Scores +------------------------------------------------------------------------------------ + +.. automodule:: ost.mol.alg.contact_score + :members: + :member-order: bysource + :synopsis: Contact-based scores diff --git a/modules/mol/alg/doc/dockq.rst b/modules/mol/alg/doc/dockq.rst new file mode 100644 index 0000000000000000000000000000000000000000..4eabd307f5216e84f8faef3f906d37568cce83f2 --- /dev/null +++ b/modules/mol/alg/doc/dockq.rst @@ -0,0 +1,7 @@ +:mod:`~ost.mol.alg.dockq` -- DockQ Implementation +-------------------------------------------------------------------------------- + +.. module:: ost.mol.alg.dockq + :synopsis: DockQ implementation + +.. autofunction:: ost.mol.alg.dockq.DockQ diff --git a/modules/mol/alg/doc/helix_kinks.rst b/modules/mol/alg/doc/helix_kinks.rst new file mode 100644 index 0000000000000000000000000000000000000000..37fc78bdb80a6761eaac03f6b8b0f04e86bda42a --- /dev/null +++ b/modules/mol/alg/doc/helix_kinks.rst @@ -0,0 +1,6 @@ +:mod:`~ost.mol.alg.helix_kinks` -- Algorithms to Calculate Helix Kinks +--------------------------------------------------------------------------------------------------------------- + +.. automodule:: ost.mol.alg.helix_kinks + :synopsis: Algorithms to calculate Helix Kinks + :members: \ No newline at end of file diff --git a/modules/mol/alg/doc/lddt.rst b/modules/mol/alg/doc/lddt.rst index 1d058710431f7872b86f27a9bd50a4a9ff8ecd95..ae4e6d3d01cbcde6af206ca46cdd1d734c6a7fdb 100644 --- a/modules/mol/alg/doc/lddt.rst +++ b/modules/mol/alg/doc/lddt.rst @@ -1,6 +1,8 @@ -==== -lDDT -==== +:orphan: + +======================== +lDDT binary (deprecated) +======================== .. warning:: diff --git a/modules/mol/alg/doc/lddt_deprecated.rst b/modules/mol/alg/doc/lddt_deprecated.rst index 173bcb5ed5b3d8adbdc5abec02df9f2bc580b765..80e1b1355698486d48cdcfc8c1fe30a372ab767d 100644 --- a/modules/mol/alg/doc/lddt_deprecated.rst +++ b/modules/mol/alg/doc/lddt_deprecated.rst @@ -6,7 +6,8 @@ lDDT (deprecated) .. warning:: These functions in `ost.mol.alg` are deprecated. Consider using the newer - implementation in :class:`ost.mol.alg.lDDTScorer` instead. + implementation in + :class:`ost.mol.alg.lddt.lDDTScorer <ost.mol.alg.lddt.lDDTScorer>` instead. .. function:: LocalDistDiffTest(model, distance_list, tolerance_list, \ sequence_separation=0, \ @@ -61,6 +62,7 @@ lDDT (deprecated) model and of all the checked distances .. function:: LocalDistDiffTest(model, reference_list, distance_list, settings) + :noindex: Wrapper around :func:`LocalDistDiffTest` above. @@ -80,6 +82,7 @@ lDDT (deprecated) .. function:: LocalDistDiffTest(model, target, cutoff, max_dist, \ local_lddt_property_string="") + :noindex: Wrapper around :func:`LocalDistDiffTest` above using: *distance_list* = :func:`CreateDistanceList` with *target* and *max_dist* as @@ -104,6 +107,7 @@ lDDT (deprecated) .. function:: LocalDistDiffTest(alignment, tolerance, radius, ref_index=0, \ mdl_index=1) + :noindex: Calculates the Local Distance Difference Test score (see previous function) starting from an alignment between a reference structure and a model. The diff --git a/modules/mol/alg/doc/ligand_scoring.rst b/modules/mol/alg/doc/ligand_scoring.rst new file mode 100644 index 0000000000000000000000000000000000000000..79fcb8dceccc9c44f1130d7ad04a0853d98c1c97 --- /dev/null +++ b/modules/mol/alg/doc/ligand_scoring.rst @@ -0,0 +1,20 @@ +:mod:`~ost.mol.alg.ligand_scoring` -- Ligand scoring functions +------------------------------------------------------------------------------------------ + +.. module:: ost.mol.alg.ligand_scoring + :synopsis: Ligand scoring functions + +.. automodule:: ost.mol.alg.ligand_scoring_base + :members: + :member-order: bysource + :synopsis: Scoring of ligands + +.. automodule:: ost.mol.alg.ligand_scoring_lddtpli + :members: + :member-order: bysource + :synopsis: Scoring of ligands with lDDT-PLI + +.. automodule:: ost.mol.alg.ligand_scoring_scrmsd + :members: + :member-order: bysource + :synopsis: Scoring of ligands with Symmetry-corrected RMSD \ No newline at end of file diff --git a/modules/mol/alg/doc/molalg.rst b/modules/mol/alg/doc/molalg.rst index 6cb57ea40ab42d659b60bf0c95f7cd9b108c24a4..aab9fc5e207fa376d227ae4dd3fe8ec4e720f9fe 100644 --- a/modules/mol/alg/doc/molalg.rst +++ b/modules/mol/alg/doc/molalg.rst @@ -1,9 +1,26 @@ -:mod:`mol.alg <ost.mol.alg>` -- Algorithms for Structures +:mod:`~ost.mol.alg` -- Algorithms for Structures ================================================================================ .. module:: ost.mol.alg :synopsis: Algorithms operating on molecular structures +Submodules +-------------------------------------------------------------------------------- + +.. toctree:: + :maxdepth: 1 + + chain_mapping + contact_score + dockq + helix_kinks + ligand_scoring + qsscore + scoring + stereochemistry + structure_analysis + trajectory_analysis + Local Distance Test scores (lDDT, DRMSD) -------------------------------------------------------------------------------- @@ -83,94 +100,62 @@ Local Distance Test scores (lDDT, DRMSD) :rtype: :class:`str` -:mod:`stereochemistry <ost.mol.alg.stereochemistry>` -- Stereochemistry Checks --------------------------------------------------------------------------------- - -.. warning:: - - Stereochemistry checks described in - `Mariani et al. <https://dx.doi.org/10.1093/bioinformatics/btt473>`_ are - considered deprecated. They have been re-implemented and now support - nucleotides. The old code is still available and documented - :doc:`here <stereochemistry_deprecated>`. - -.. automodule:: ost.mol.alg.stereochemistry - :members: - :member-order: bysource - :synopsis: Stereochemistry checks - -.. currentmodule:: ost.mol.alg - - -:mod:`scoring <ost.mol.alg.scoring>` -- Specialized scoring functions --------------------------------------------------------------------------------- - -.. autoclass:: ost.mol.alg.scoring.lDDTBSScorer - :members: - -.. autoclass:: ost.mol.alg.scoring.Scorer - :members: - :member-order: bysource - -.. currentmodule:: ost.mol.alg - - -:mod:`ligand_scoring <ost.mol.alg.ligand_scoring>` -- Ligand scoring functions --------------------------------------------------------------------------------- - -.. automodule:: ost.mol.alg.ligand_scoring - :members: - :member-order: bysource - :synopsis: Scoring of ligands - - -:mod:`chain_mapping <ost.mol.alg.chain_mapping>` -- Chain Mapping --------------------------------------------------------------------------------- - -.. automodule:: ost.mol.alg.chain_mapping - :members: - :member-order: bysource - :synopsis: Chain mapping in assemblies - -.. currentmodule:: ost.mol.alg - - -:mod:`qsscore <ost.mol.alg.qsscore>` -- New QS score implementation --------------------------------------------------------------------------------- - -.. note:: - - This is a new implementation of QS Score, introduced in OpenStructure 2.4 and - tightly integrated with the chain mapping algorithms. - The :doc:`previous qsscoring code <qsscoring_deprecated>` that comes with - `Bertoni et al. <https://www.nature.com/articles/s41598-017-09654-8>`_ is - considered deprecated. - -.. automodule:: ost.mol.alg.qsscore - :members: - :member-order: bysource - :synopsis: QS Score implementation - -.. currentmodule:: ost.mol.alg - - -:mod:`DockQ <ost.mol.alg.dockq>` -- DockQ implementation --------------------------------------------------------------------------------- - -.. autofunction:: ost.mol.alg.dockq.DockQ - -.. currentmodule:: ost.mol.alg - - -:mod:`Contact Scores <ost.mol.alg.contact_scores>` -- Contact based scores --------------------------------------------------------------------------------- - -.. automodule:: ost.mol.alg.contact_score - :members: - :member-order: bysource - :synopsis: Contact Scores - -.. currentmodule:: ost.mol.alg +GDT - Global Distance Test +-------------------------- + + Implements the GDT score, i.e. identifies the largest number of positions + that can be superposed within a given distance threshold. The final + GDT score is then the returned number divided by the total number of + reference positioons. The algorithm is similar to what is described for + the LGA tool but simpler. Therefore, the fractions reported by OpenStructure + tend to be systematically lower. For benchmarking we computed the full GDT_TS, + i.e. average GDT for distance thresholds [1, 2, 4, 8], on all CASP15 TS + models. 96.5% of differences to the LGA results from the predictioncenter are + within 2 GDT points and 99.2% are within 3 GDT points. The max difference + is 7.39 GDT points. + + The algorithm expects two position lists of same length and applies a sliding + window with specified length to define a subset of position pairs as starting + point for iterative superposition. Each iterative superposition applies the + following steps: + + - Compute minimal RMSD superposition on subset of position pairs + - Apply superposition on all model positions + - Compute pairwise distances of all model positions and reference positions + - Define new subset of position pairs: pairs within distance threshold + - Stop if subset doesn't change anymore + + The subset in any of the iterations which is largest is stored. + + This is done for each sliding window position and the largest subset ever + observed is reported. To avoid long runtimes for large problem sizes, the + sliding window is not applied on each possible position but is capped. + If the number of positions is larger than this threshold, the sliding + window is only applied on N equidistant locations. + + .. function:: GDT(mdl_pos, ref_pos, window_size, max_windows, distance_thresh) + + Returns number of positions that can be superposed within + *distance_thresh* and the respective transformation matrix. + + :param mdl_pos: Positions representing the model, typically alpha-carbon + positions + :param ref_pos: Positions representing the reference, typically + alpha-carbon positions + :param window_size: Size of the sliding window that is used to serve as + starting point for iterative superposition. + The described benchmark was done with a value of 7. + :param max_windows: Cap for number of starting points. The described + benchmark was done with a value of 1000. + :param distance_thresh: Distance threshold for GDT algorithm + :type mdl_pos: :class:`ost.geom.Vec3List` + :type ref_pos: :class:`ost.geom.Vec3List` + :type window_size: :class:`int` + :type max_windows: :class:`int` + :type distance_thresh: :class:`float` + :returns: :class:`tuple` with first element being the number of + superposable positions (:class:`int`) and the second element the + transformation matrix (:class:`ost.geom.Mat4`) .. _steric-clashes: @@ -1085,26 +1070,7 @@ used to skip frames in the analysis. :param view_ring2: Second group of atoms :type view_ring2: :class:`~ost.mol.EntityView`. :param stride: Size of the increment of the frame's index between two - consecutive frames analyzed. - - -:mod:`helix_kinks <ost.mol.alg.helix_kinks>` -- Algorithms to calculate Helix Kinks ---------------------------------------------------------------------------------------------------------------- - -.. automodule:: ost.mol.alg.helix_kinks - :members: - -:mod:`trajectory_analysis <ost.mol.alg.trajectory_analysis>` -- DRMSD, pairwise distances and more ---------------------------------------------------------------------------------------------------------------- - -.. automodule:: ost.mol.alg.trajectory_analysis - :members: - -:mod:`structure_analysis <ost.mol.alg.structure_analysis>` -- Functions to analyze structures ---------------------------------------------------------------------------------------------------------------- - -.. automodule:: ost.mol.alg.structure_analysis - :members: + consecutive frames analyzed. .. _mapping-functions: @@ -1112,8 +1078,6 @@ used to skip frames in the analysis. Mapping functions -------------------------------------------------------------------------------- -.. currentmodule:: ost.mol.alg - The following functions help to convert one residue into another by reusing as much as possible from the present atoms. They are mainly meant to map from standard amino acid to other standard amino acids or from modified amino acids @@ -1490,4 +1454,3 @@ from a :class:`ost.io.MMCifInfoBioUnit` or the derived :param bu_info: Info object :type bu_info: :class:`MMCifInfoBioUnit`/:class:`BUInfo` :returns: A :class:`ost.mol.EntityHandle` of the requested biounit - diff --git a/modules/mol/alg/doc/molck.rst b/modules/mol/alg/doc/molck.rst index 7c4d9ee6300a7076e32dd9c81161fde444f35d67..c344308c72a001bff19f60e30cc4075dab9198a4 100644 --- a/modules/mol/alg/doc/molck.rst +++ b/modules/mol/alg/doc/molck.rst @@ -1,9 +1,10 @@ +:orphan: + .. Note on large code blocks: keep max. width to 100 or it will look bad on webpage! -========================= -Molecular Checker (Molck) -========================= +Molck - the Molecular Checker binary (deprecated) +================================================= -------------------------------------- Where can I find the Molck executable? diff --git a/modules/mol/alg/doc/qsscore.rst b/modules/mol/alg/doc/qsscore.rst new file mode 100644 index 0000000000000000000000000000000000000000..7b6f1711f1441ce8d7631c1bb28fab471d3568c6 --- /dev/null +++ b/modules/mol/alg/doc/qsscore.rst @@ -0,0 +1,18 @@ +:mod:`~ost.mol.alg.qsscore` -- New QS Score Implementation +-------------------------------------------------------------------------------- + +.. module:: ost.mol.alg.qsscore + :synopsis: New QS score implementation + +.. note:: + + This is a new implementation of QS Score, introduced in OpenStructure 2.4 and + tightly integrated with the chain mapping algorithms. + The :doc:`previous qsscoring code <qsscoring_deprecated>` that comes with + `Bertoni et al. <https://www.nature.com/articles/s41598-017-09654-8>`_ is + considered deprecated. + +.. automodule:: ost.mol.alg.qsscore + :members: + :member-order: bysource + :synopsis: New QS score implementation diff --git a/modules/mol/alg/doc/scoring.rst b/modules/mol/alg/doc/scoring.rst new file mode 100644 index 0000000000000000000000000000000000000000..a9651f5fa6f72c2c919a8b334ee33e2686353389 --- /dev/null +++ b/modules/mol/alg/doc/scoring.rst @@ -0,0 +1,12 @@ +:mod:`~ost.mol.alg.scoring` -- Specialized Scoring Functions +--------------------------------------------------------------------------------- + +.. module:: ost.mol.alg.scoring + :synopsis: Specialized scoring functions + +.. autoclass:: ost.mol.alg.scoring.lDDTBSScorer + :members: + +.. autoclass:: ost.mol.alg.scoring.Scorer + :members: + :member-order: bysource diff --git a/modules/mol/alg/doc/stereochemistry.rst b/modules/mol/alg/doc/stereochemistry.rst new file mode 100644 index 0000000000000000000000000000000000000000..2b4f763ebfe8c306c1e8f1a279c05574c0cf9fe0 --- /dev/null +++ b/modules/mol/alg/doc/stereochemistry.rst @@ -0,0 +1,7 @@ +:mod:`~ost.mol.alg.stereochemistry` -- Stereochemistry Checks +-------------------------------------------------------------------------------------- + +.. automodule:: ost.mol.alg.stereochemistry + :members: + :member-order: bysource + :synopsis: Stereochemistry checks diff --git a/modules/mol/alg/doc/stereochemistry_deprecated.rst b/modules/mol/alg/doc/stereochemistry_deprecated.rst index 3a4802a7a3f04f401c83f94db732f5db20cd33b1..b9e2422a8c048f8d833f7b54c88673b40524c962 100644 --- a/modules/mol/alg/doc/stereochemistry_deprecated.rst +++ b/modules/mol/alg/doc/stereochemistry_deprecated.rst @@ -3,6 +3,11 @@ Stereochemistry (deprecated) ================================================================================ +.. warning:: + + These functions in `ost.mol.alg` are deprecated. + Consider using the newer implementation in + :mod:`~ost.mol.alg.stereochemistry` instead. .. function:: CheckStructure(ent, \ bond_table, \ diff --git a/modules/mol/alg/doc/structure_analysis.rst b/modules/mol/alg/doc/structure_analysis.rst new file mode 100644 index 0000000000000000000000000000000000000000..79e679ac7720e6ca8e75bb76c33e39476c38f647 --- /dev/null +++ b/modules/mol/alg/doc/structure_analysis.rst @@ -0,0 +1,6 @@ +:mod:`~ost.mol.alg.structure_analysis` -- Functions to Analyze Structures +--------------------------------------------------------------------------------------------------------------- + +.. automodule:: ost.mol.alg.structure_analysis + :synopsis: Functions to analyze structures + :members: \ No newline at end of file diff --git a/modules/mol/alg/doc/trajectory_analysis.rst b/modules/mol/alg/doc/trajectory_analysis.rst new file mode 100644 index 0000000000000000000000000000000000000000..b771f65f8a8b70ae94c174822a958f1d8a34b35c --- /dev/null +++ b/modules/mol/alg/doc/trajectory_analysis.rst @@ -0,0 +1,6 @@ +:mod:`~ost.mol.alg.trajectory_analysis` -- DRMSD, Pairwise Distances and More +--------------------------------------------------------------------------------------------------------------- + +.. automodule:: ost.mol.alg.trajectory_analysis + :synopsis: DRMSD, pairwise distances and more + :members: \ No newline at end of file diff --git a/modules/mol/alg/pymod/CMakeLists.txt b/modules/mol/alg/pymod/CMakeLists.txt index 146774722d330305601088fd7fa18735b821c001..a487f3c4fa43da731d7ffa1aa8ead9a79d6dfef8 100644 --- a/modules/mol/alg/pymod/CMakeLists.txt +++ b/modules/mol/alg/pymod/CMakeLists.txt @@ -12,6 +12,7 @@ set(OST_MOL_ALG_PYMOD_SOURCES export_membrane.cc export_entity_to_density.cc export_biounit.cc + export_gdt.cc ) set(OST_MOL_ALG_PYMOD_MODULES @@ -28,9 +29,13 @@ set(OST_MOL_ALG_PYMOD_MODULES scoring.py chain_mapping.py stereochemistry.py - ligand_scoring.py dockq.py contact_score.py + ligand_scoring.py + ligand_scoring_base.py + ligand_scoring_scrmsd.py + ligand_scoring_lddtpli.py + bb_lddt.py ) if (NOT ENABLE_STATIC) diff --git a/modules/mol/alg/pymod/bb_lddt.py b/modules/mol/alg/pymod/bb_lddt.py new file mode 100644 index 0000000000000000000000000000000000000000..36da48b9416acc3f14e4fadd95db0ff5580dfd4b --- /dev/null +++ b/modules/mol/alg/pymod/bb_lddt.py @@ -0,0 +1,550 @@ +import itertools +import numpy as np +from scipy.spatial import distance + +import time +from ost import mol + +class BBlDDTEntity: + """ Helper object for BBlDDT computation + + Holds structural information and getters for interacting chains, i.e. + interfaces. Peptide residues are represented by their CA position + and nucleotides by C3'. + + :param ent: Structure for BBlDDT score computation + :type ent: :class:`ost.mol.EntityView`/:class:`ost.mol.EntityHandle` + :param contact_d: Pairwise distance of residues to be considered as contacts + :type contact_d: :class:`float` + """ + def __init__(self, ent, dist_thresh = 15.0, + dist_diff_thresholds = [0.5, 1.0, 2.0, 4.0]): + pep_query = "(peptide=true and aname=\"CA\")" + nuc_query = "(nucleotide=True and aname=\"C3'\")" + self._view = ent.Select(" or ".join([pep_query, nuc_query])) + self._dist_thresh = dist_thresh + self._dist_diff_thresholds = dist_diff_thresholds + + # the following attributes will be lazily evaluated + self._chain_names = None + self._interacting_chains = None + self._potentially_contributing_chains = None + self._sequence = dict() + self._pos = dict() + self._pair_dist = dict() + self._sc_dist = dict() + self._n_pair_contacts = None + self._n_sc_contacts = None + self._n_contacts = None + # min and max xyz for elements in pos used for fast collision + # detection + self._min_pos = dict() + self._max_pos = dict() + + @property + def view(self): + """ Processed structure + + View that only contains representative atoms. That's CA for peptide + residues and C3' for nucleotides. + + :type: :class:`ost.mol.EntityView` + """ + return self._view + + @property + def dist_thresh(self): + """ Pairwise distance of residues to be considered as contacts + + Given at :class:`BBlDDTEntity` construction + + :type: :class:`float` + """ + return self._dist_thresh + + @property + def dist_diff_thresholds(self): + """ Distance difference thresholds for lDDT computation + + Given at :class:`BBlDDTEntity` construction + + :type: :class:`list` of :class:`float` + """ + return self._dist_diff_thresholds + + @property + def chain_names(self): + """ Chain names in :attr:`~view` + + Names are sorted + + :type: :class:`list` of :class:`str` + """ + if self._chain_names is None: + self._chain_names = sorted([ch.name for ch in self.view.chains]) + return self._chain_names + + @property + def interacting_chains(self): + """ Pairs of chains in :attr:`~view` with at least one contact + + :type: :class:`list` of :class:`tuples` + """ + if self._interacting_chains is None: + # ugly hack: also computes self._n_pair_contacts + # this assumption is made when computing the n_pair_contacts + # attribute + self._interacting_chains = list() + self._n_pair_contacts = list() + for x in itertools.combinations(self.chain_names, 2): + if self.PotentialInteraction(x[0], x[1]): + n = np.count_nonzero(self.PairDist(x[0], x[1]) < self.dist_thresh) + if n > 0: + self._interacting_chains.append(x) + self._n_pair_contacts.append(n) + return self._interacting_chains + + @property + def potentially_contributing_chains(self): + """ Pairs of chains in :attr:`view` with potential contribution to lDDT + + That are pairs of chains that have at least one interaction within + :attr:`~dist_thresh` + max(:attr:`~dist_diff_thresholds`) + """ + if self._potentially_contributing_chains is None: + self._potentially_contributing_chains = list() + max_dist_diff_thresh = max(self.dist_diff_thresholds) + thresh = self.dist_thresh + max_dist_diff_thresh + for x in itertools.combinations(self.chain_names, 2): + if self.PotentialInteraction(x[0], x[1], + slack = max_dist_diff_thresh): + n = np.count_nonzero(self.PairDist(x[0], x[1]) < thresh) + if n > 0: + self._potentially_contributing_chains.append(x) + + return self._potentially_contributing_chains + + @property + def n_pair_contacts(self): + """ Number of contacts in :attr:`~interacting_chains` + + :type: :class:`list` of :class:`int` + """ + if self._n_pair_contacts: + # ugly hack: assumption that computing self.interacting_chains + # also triggers computation of n_pair_contacts + int_chains = self.interacting_chains + return self._n_pair_contacts + + @property + def n_sc_contacts(self): + """ Number of contacts for single chains in :attr:`~chain_names` + + :type: :class:`list` of :class:`int` + """ + if self._n_sc_contacts is None: + self._n_sc_contacts = list() + for cname in self.chain_names: + dist_mat = self.Dist(cname) + n = np.count_nonzero(dist_mat < self.dist_thresh) + # dist_mat is symmetric => first remove the diagonal from n + # as these are distances with itself, i.e. zeroes. + # Division by two then removes the symmetric component. + self._n_sc_contacts.append(int((n-dist_mat.shape[0])/2)) + return self._n_sc_contacts + + @property + def n_contacts(self): + """ Total number of contacts + + That's the sum of all :attr:`~n_pair_contacts` and + :attr:`~n_sc_contacts`. + + :type: :class:`int` + """ + if self._n_contacts is None: + self._n_contacts = sum(self.n_pair_contacts) + sum(self.n_sc_contacts) + return self._n_contacts + + def GetChain(self, chain_name): + """ Get chain by name + + :param chain_name: Chain in :attr:`~view` + :type chain_name: :class:`str` + """ + chain = self.view.FindChain(chain_name) + if not chain.IsValid(): + raise RuntimeError(f"view has no chain named \"{chain_name}\"") + return chain + + def GetSequence(self, chain_name): + """ Get sequence of chain + + Returns sequence of specified chain as raw :class:`str` + + :param chain_name: Chain in :attr:`~view` + :type chain_name: :class:`str` + """ + if chain_name not in self._sequence: + ch = self.GetChain(chain_name) + s = ''.join([r.one_letter_code for r in ch.residues]) + self._sequence[chain_name] = s + return self._sequence[chain_name] + + def GetPos(self, chain_name): + """ Get representative positions of chain + + That's CA positions for peptide residues and C3' for + nucleotides. Returns positions as a numpy array of shape + (n_residues, 3). + + :param chain_name: Chain in :attr:`~view` + :type chain_name: :class:`str` + """ + if chain_name not in self._pos: + ch = self.GetChain(chain_name) + pos = np.zeros((ch.GetResidueCount(), 3)) + for i, r in enumerate(ch.residues): + pos[i,:] = r.atoms[0].GetPos().data + self._pos[chain_name] = pos + return self._pos[chain_name] + + def Dist(self, chain_name): + """ Get pairwise distance of residues within same chain + + Returns distances as square numpy array of shape (a,a) + where a is the number of residues in specified chain. + """ + if chain_name not in self._sc_dist: + self._sc_dist[chain_name] = distance.cdist(self.GetPos(chain_name), + self.GetPos(chain_name), + 'euclidean') + return self._sc_dist[chain_name] + + def PairDist(self, chain_name_one, chain_name_two): + """ Get pairwise distances between two chains + + Returns distances as numpy array of shape (a, b). + Where a is the number of residues of the chain that comes BEFORE the + other in :attr:`~chain_names` + """ + key = (min(chain_name_one, chain_name_two), + max(chain_name_one, chain_name_two)) + if key not in self._pair_dist: + self._pair_dist[key] = distance.cdist(self.GetPos(key[0]), + self.GetPos(key[1]), + 'euclidean') + return self._pair_dist[key] + + def GetMinPos(self, chain_name): + """ Get min x,y,z cooridnates for given chain + + Based on positions that are extracted with GetPos + + :param chain_name: Chain in :attr:`~view` + :type chain_name: :class:`str` + """ + if chain_name not in self._min_pos: + self._min_pos[chain_name] = self.GetPos(chain_name).min(0) + return self._min_pos[chain_name] + + def GetMaxPos(self, chain_name): + """ Get max x,y,z cooridnates for given chain + + Based on positions that are extracted with GetPos + + :param chain_name: Chain in :attr:`~view` + :type chain_name: :class:`str` + """ + if chain_name not in self._max_pos: + self._max_pos[chain_name] = self.GetPos(chain_name).max(0) + return self._max_pos[chain_name] + + def PotentialInteraction(self, chain_name_one, chain_name_two, + slack=0.0): + """ Returns True if chains potentially interact + + Based on crude collision detection. There is no guarantee + that they actually interact if True is returned. However, + if False is returned, they don't interact for sure. + + :param chain_name_one: Chain in :attr:`~view` + :type chain_name_one: class:`str` + :param chain_name_two: Chain in :attr:`~view` + :type chain_name_two: class:`str` + :param slack: Add slack to interaction distance threshold + :type slack: :class:`float` + """ + min_one = self.GetMinPos(chain_name_one) + max_one = self.GetMaxPos(chain_name_one) + min_two = self.GetMinPos(chain_name_two) + max_two = self.GetMaxPos(chain_name_two) + if np.max(min_one - max_two) > (self.dist_thresh + slack): + return False + if np.max(min_two - max_one) > (self.dist_thresh + slack): + return False + return True + + +class BBlDDTScorer: + """ Helper object to compute Backbone only lDDT score + + Tightly integrated into the mechanisms from the chain_mapping module. + The prefered way to derive an object of type :class:`BBlDDTScorer` is + through the static constructor: :func:`~FromMappingResult`. + + lDDT computation in :func:`BBlDDTScorer.Score` implements caching. + Repeated computations with alternative chain mappings thus become faster. + + :param target: Structure designated as "target". Can be fetched from + :class:`ost.mol.alg.chain_mapping.MappingResult` + :type target: :class:`ost.mol.EntityView`/:class:`ost.mol.EntityHandle` + :param chem_groups: Groups of chemically equivalent chains in *target*. + Can be fetched from + :class:`ost.mol.alg.chain_mapping.MappingResult` + :type chem_groups: :class:`list` of :class:`list` of :class:`str` + :param model: Structure designated as "model". Can be fetched from + :class:`ost.mol.alg.chain_mapping.MappingResult` + :type model: :class:`ost.mol.EntityView`/:class:`ost.mol.EntityHandle` + :param alns: Each alignment is accessible with ``alns[(t_chain,m_chain)]``. + First sequence is the sequence of the respective chain in + :attr:`~qsent1`, second sequence the one from :attr:`~qsent2`. + Can be fetched from + :class:`ost.mol.alg.chain_mapping.MappingResult` + :type alns: :class:`dict` with key: :class:`tuple` of :class:`str`, value: + :class:`ost.seq.AlignmentHandle` + :param dist_thresh: Max distance of a pairwise interaction in target + to be considered as contact in lDDT + :type dist_thresh: :class:`float` + :param dist_diff_thresholds: Distance difference thresholds for + lDDT computations + :type dist_diff_thresholds: :class:`list` of :class:`float` + """ + def __init__(self, target, chem_groups, model, alns, dist_thresh = 15.0, + dist_diff_thresholds = [0.5, 1.0, 2.0, 4.0]): + + self._trg = BBlDDTEntity(target, dist_thresh = dist_thresh, + dist_diff_thresholds=dist_diff_thresholds) + + # ensure that target chain names match the ones in chem_groups + chem_group_ch_names = list(itertools.chain.from_iterable(chem_groups)) + if self._trg.chain_names != sorted(chem_group_ch_names): + raise RuntimeError(f"Expect exact same chain names in chem_groups " + f"and in target (which is processed to only " + f"contain peptides/nucleotides). target: " + f"{self._trg.chain_names}, chem_groups: " + f"{chem_group_ch_names}") + + self._chem_groups = chem_groups + self._mdl = BBlDDTEntity(model, dist_thresh = dist_thresh, + dist_diff_thresholds=dist_diff_thresholds) + self._alns = alns + self._dist_diff_thresholds = dist_diff_thresholds + self._dist_thresh = dist_thresh + + # cache for mapped interface scores + # key: tuple of tuple ((trg_ch1, trg_ch2), + # ((mdl_ch1, mdl_ch2)) + # where the first tuple is lexicographically sorted + # the second tuple is mapping dependent + # value: numpy array of len(dist_thresholds) representing the + # respective numbers of fulfilled contacts + self._pairwise_cache = dict() + + # cache for mapped single chain scores + # key: tuple (trg_ch, mdl_ch) + # value: numpy array of len(dist_thresholds) representing the + # respective numbers of fulfilled contacts + self._sc_cache = dict() + + @staticmethod + def FromMappingResult(mapping_result, dist_thresh = 15.0, + dist_diff_thresholds = [0.5, 1.0, 2.0, 4.0]): + """ The preferred way to get a :clas:`BBlDDTScorer` + + Static constructor that derives an object of type :class:`QSScorer` + using a :class:`ost.mol.alg.chain_mapping.MappingResult` + + :param mapping_result: Data source + :type mapping_result: :class:`ost.mol.alg.chain_mapping.MappingResult` + :param dist_thresh: The lDDT distance threshold + :type dist_thresh: :class:`float` + :param dist_diff_thresholds: The lDDT distance difference thresholds + :type dist_diff_thresholds: :class:`list` of :class:`float` + """ + scorer = BBlDDTScorer(mapping_result.target, mapping_result.chem_groups, + mapping_result.model, alns = mapping_result.alns, + dist_thresh = dist_thresh, + dist_diff_thresholds = dist_diff_thresholds) + return scorer + + @property + def trg(self): + """ The :class:`BBlDDTEntity` representing target + + :type: :class:`BBlDDTEntity` + """ + return self._trg + + @property + def mdl(self): + """ The :class:`BBlDDTEntity` representing model + + :type: :class:`BBlDDTEntity` + """ + return self._mdl + + @property + def alns(self): + """ Alignments between chains in :attr:`~trg` and :attr:`~mdl` + + Provided at object construction. Each alignment is accessible with + ``alns[(t_chain,m_chain)]``. First sequence is the sequence of the + respective chain in :attr:`~trg`, second sequence the one from + :attr:`~mdl`. + + :type: :class:`dict` with key: :class:`tuple` of :class:`str`, value: + :class:`ost.seq.AlignmentHandle` + """ + return self._alns + + @property + def chem_groups(self): + """ Groups of chemically equivalent chains in :attr:`~trg` + + Provided at object construction + + :type: :class:`list` of :class:`list` of :class:`str` + """ + return self._chem_groups + + def Score(self, mapping, check=True): + """ Computes Backbone lDDT given chain mapping + + Again, the preferred way is to get *mapping* is from an object + of type :class:`ost.mol.alg.chain_mapping.MappingResult`. + + :param mapping: see + :attr:`ost.mol.alg.chain_mapping.MappingResult.mapping` + :type mapping: :class:`list` of :class:`list` of :class:`str` + :param check: Perform input checks, can be disabled for speed purposes + if you know what you're doing. + :type check: :class:`bool` + :returns: The score + """ + if check: + # ensure that dimensionality of mapping matches self.chem_groups + if len(self.chem_groups) != len(mapping): + raise RuntimeError("Dimensions of self.chem_groups and mapping " + "must match") + for a,b in zip(self.chem_groups, mapping): + if len(a) != len(b): + raise RuntimeError("Dimensions of self.chem_groups and " + "mapping must match") + # ensure that chain names in mapping are all present in qsent2 + for name in itertools.chain.from_iterable(mapping): + if name is not None and name not in self.mdl.chain_names: + raise RuntimeError(f"Each chain in mapping must be present " + f"in self.mdl. No match for " + f"\"{name}\"") + + flat_mapping = dict() + for a, b in zip(self.chem_groups, mapping): + flat_mapping.update({x: y for x, y in zip(a, b) if y is not None}) + + return self.FromFlatMapping(flat_mapping) + + def FromFlatMapping(self, flat_mapping): + """ Same as :func:`Score` but with flat mapping + + :param flat_mapping: Dictionary with target chain names as keys and + the mapped model chain names as value + :type flat_mapping: :class:`dict` with :class:`str` as key and value + :returns: :class:`float` representing lDDT + """ + n_conserved = np.zeros(len(self._dist_diff_thresholds), dtype=np.int32) + + # process single chains + for cname in self.trg.chain_names: + if cname in flat_mapping: + n_conserved += self._NSCConserved(cname, flat_mapping[cname]) + + # process interfaces + for interface in self.trg.interacting_chains: + if interface[0] in flat_mapping and interface[1] in flat_mapping: + mdl_interface = (flat_mapping[interface[0]], + flat_mapping[interface[1]]) + n_conserved += self._NPairConserved(interface, mdl_interface) + + return np.mean(n_conserved / self.trg.n_contacts) + + def _NSCConserved(self, trg_ch, mdl_ch): + if (trg_ch, mdl_ch) in self._sc_cache: + return self._sc_cache[(trg_ch, mdl_ch)] + trg_dist = self.trg.Dist(trg_ch) + mdl_dist = self.mdl.Dist(mdl_ch) + trg_indices, mdl_indices = self._IndexMapping(trg_ch, mdl_ch) + trg_dist = trg_dist[np.ix_(trg_indices, trg_indices)] + mdl_dist = mdl_dist[np.ix_(mdl_indices, mdl_indices)] + # mask to select relevant distances (dist in trg < dist_thresh) + # np.triu zeroes the values below the diagonal + mask = np.triu(trg_dist < self._dist_thresh) + n_diag = trg_dist.shape[0] + trg_dist = trg_dist[mask] + mdl_dist = mdl_dist[mask] + dist_diffs = np.absolute(trg_dist - mdl_dist) + n_conserved = np.zeros(len(self._dist_diff_thresholds), dtype=np.int32) + for thresh_idx, thresh in enumerate(self._dist_diff_thresholds): + N = (dist_diffs < thresh).sum() + # still need to consider the 0.0 dist diffs on the diagonal + n_conserved[thresh_idx] = int((N - n_diag)) + self._sc_cache[(trg_ch, mdl_ch)] = n_conserved + return n_conserved + + def _NPairConserved(self, trg_int, mdl_int): + key_one = (trg_int, mdl_int) + if key_one in self._pairwise_cache: + return self._pairwise_cache[key_one] + key_two = ((trg_int[1], trg_int[0]), (mdl_int[1], mdl_int[0])) + if key_two in self._pairwise_cache: + return self._pairwise_cache[key_two] + trg_dist = self.trg.PairDist(trg_int[0], trg_int[1]) + mdl_dist = self.mdl.PairDist(mdl_int[0], mdl_int[1]) + if trg_int[0] > trg_int[1]: + trg_dist = trg_dist.transpose() + if mdl_int[0] > mdl_int[1]: + mdl_dist = mdl_dist.transpose() + trg_indices_1, mdl_indices_1 = self._IndexMapping(trg_int[0], mdl_int[0]) + trg_indices_2, mdl_indices_2 = self._IndexMapping(trg_int[1], mdl_int[1]) + trg_dist = trg_dist[np.ix_(trg_indices_1, trg_indices_2)] + mdl_dist = mdl_dist[np.ix_(mdl_indices_1, mdl_indices_2)] + # reduce to relevant distances (dist in trg < dist_thresh) + mask = trg_dist < self._dist_thresh + trg_dist = trg_dist[mask] + mdl_dist = mdl_dist[mask] + dist_diffs = np.absolute(trg_dist - mdl_dist) + n_conserved = np.zeros(len(self._dist_diff_thresholds), dtype=np.int32) + for thresh_idx, thresh in enumerate(self._dist_diff_thresholds): + n_conserved[thresh_idx] = (dist_diffs < thresh).sum() + self._pairwise_cache[key_one] = n_conserved + return n_conserved + + def _IndexMapping(self, ch1, ch2): + """ Fetches aln and returns indices of aligned residues + + returns 2 numpy arrays containing the indices of residues in + ch1 and ch2 which are aligned + """ + mapped_indices_1 = list() + mapped_indices_2 = list() + idx_1 = 0 + idx_2 = 0 + for col in self.alns[(ch1, ch2)]: + if col[0] != '-' and col[1] != '-': + mapped_indices_1.append(idx_1) + mapped_indices_2.append(idx_2) + if col[0] != '-': + idx_1 +=1 + if col[1] != '-': + idx_2 +=1 + return (np.array(mapped_indices_1), np.array(mapped_indices_2)) diff --git a/modules/mol/alg/pymod/chain_mapping.py b/modules/mol/alg/pymod/chain_mapping.py index 5e90c49dc292c3108524e5c5ce0853f7065dfd18..b19107ba5fc0640ed6a068a27517b0acd257a0aa 100644 --- a/modules/mol/alg/pymod/chain_mapping.py +++ b/modules/mol/alg/pymod/chain_mapping.py @@ -18,6 +18,7 @@ from ost import mol from ost import geom from ost.mol.alg import lddt +from ost.mol.alg import bb_lddt from ost.mol.alg import qsscore def _CSel(ent, cnames): @@ -786,10 +787,11 @@ class ChainMapper: def GetlDDTMapping(self, model, inclusion_radius=15.0, - thresholds=[0.5, 1.0, 2.0, 4.0], strategy="naive", + thresholds=[0.5, 1.0, 2.0, 4.0], strategy="heuristic", steep_opt_rate = None, block_seed_size = 5, block_blocks_per_chem_group = 5, - chem_mapping_result = None): + chem_mapping_result = None, + heuristic_n_max_naive = 40320): """ Identify chain mapping by optimizing lDDT score Maps *model* chain sequences to :attr:`~chem_groups` and find mapping @@ -822,6 +824,12 @@ class ChainMapper: extend them to *block_seed_size*. *block_blocks_per_chem_group* for each chem group are selected for exhaustive extension. + * **heuristic**: Uses *naive* strategy if number of possible mappings + is within *heuristic_n_max_naive*. The default of 40320 corresponds + to an octamer (8!=40320). A structure with stoichiometry A6B2 would be + 6!*2!=1440 etc. If the number of possible mappings is larger, + *greedy_full* is used. + Sets :attr:`MappingResult.opt_score` in case of no trivial one-to-one mapping. @@ -859,7 +867,8 @@ class ChainMapper: :returns: A :class:`MappingResult` """ - strategies = ["naive", "greedy_fast", "greedy_full", "greedy_block"] + strategies = ["naive", "greedy_fast", "greedy_full", "greedy_block", + "heuristic"] if strategy not in strategies: raise RuntimeError(f"Strategy must be in {strategies}") @@ -887,6 +896,13 @@ class ChainMapper: return MappingResult(self.target, mdl, self.chem_groups, chem_mapping, one_to_one, alns) + if strategy == "heuristic": + if _NMappingsWithin(self.chem_groups, chem_mapping, + heuristic_n_max_naive): + strategy = "naive" + else: + strategy = "greedy_full" + mapping = None opt_lddt = None @@ -910,7 +926,7 @@ class ChainMapper: mapping = _lDDTGreedyBlock(the_greed, block_seed_size, block_blocks_per_chem_group) # cached => lDDT computation is fast here - opt_lddt = the_greed.lDDT(self.chem_groups, mapping) + opt_lddt = the_greed.Score(mapping) alns = dict() for ref_group, mdl_group in zip(self.chem_groups, mapping): @@ -925,10 +941,11 @@ class ChainMapper: mapping, alns, opt_score = opt_lddt) - def GetQSScoreMapping(self, model, contact_d = 12.0, strategy = "naive", + def GetQSScoreMapping(self, model, contact_d = 12.0, strategy = "heuristic", block_seed_size = 5, block_blocks_per_chem_group = 5, - steep_opt_rate = None, chem_mapping_result = None, - greedy_prune_contact_map = False): + heuristic_n_max_naive = 40320, steep_opt_rate = None, + chem_mapping_result = None, + greedy_prune_contact_map = True): """ Identify chain mapping based on QSScore Scoring is based on CA/C3' positions which are present in all chains of @@ -954,6 +971,12 @@ class ChainMapper: extend them to *block_seed_size*. *block_blocks_per_chem_group* for each chem group are selected for exhaustive extension. + * **heuristic**: Uses *naive* strategy if number of possible mappings + is within *heuristic_n_max_naive*. The default of 40320 corresponds + to an octamer (8!=40320). A structure with stoichiometry A6B2 would be + 6!*2!=1440 etc. If the number of possible mappings is larger, + *greedy_full* is used. + Sets :attr:`MappingResult.opt_score` in case of no trivial one-to-one mapping. @@ -962,7 +985,8 @@ class ChainMapper: :param contact_d: Max distance between two residues to be considered as contact in qs scoring :type contact_d: :class:`float` - :param strategy: Strategy for sampling, must be in ["naive"] + :param strategy: Strategy for sampling, must be in ["naive", + "greedy_fast", "greedy_full", "greedy_block"] :type strategy: :class:`str` :param chem_mapping_result: Pro param. The result of :func:`~GetChemMapping` where you provided @@ -983,7 +1007,7 @@ class ChainMapper: :returns: A :class:`MappingResult` """ - strategies = ["naive", "greedy_fast", "greedy_full", "greedy_block"] + strategies = ["naive", "greedy_fast", "greedy_full", "greedy_block", "heuristic"] if strategy not in strategies: raise RuntimeError(f"strategy must be {strategies}") @@ -995,7 +1019,6 @@ class ChainMapper: self.chem_group_alignments, chem_mapping, chem_group_alns) - # check for the simplest case one_to_one = _CheckOneToOneMapping(self.chem_groups, chem_mapping) if one_to_one is not None: @@ -1009,6 +1032,14 @@ class ChainMapper: alns[(ref_ch, mdl_ch)] = aln return MappingResult(self.target, mdl, self.chem_groups, chem_mapping, one_to_one, alns) + + if strategy == "heuristic": + if _NMappingsWithin(self.chem_groups, chem_mapping, + heuristic_n_max_naive): + strategy = "naive" + else: + strategy = "greedy_full" + mapping = None opt_qsscore = None @@ -1033,7 +1064,7 @@ class ChainMapper: mapping = _QSScoreGreedyBlock(the_greed, block_seed_size, block_blocks_per_chem_group) # cached => QSScore computation is fast here - opt_qsscore = the_greed.Score(mapping, check=False) + opt_qsscore = the_greed.Score(mapping, check=False).QS_global alns = dict() for ref_group, mdl_group in zip(self.chem_groups, mapping): @@ -1047,71 +1078,42 @@ class ChainMapper: return MappingResult(self.target, mdl, self.chem_groups, chem_mapping, mapping, alns, opt_score = opt_qsscore) - def GetRigidMapping(self, model, strategy = "greedy_single_gdtts", - single_chain_gdtts_thresh=0.4, subsampling=None, - first_complete=False, iterative_superposition=False, - chem_mapping_result = None): - """Identify chain mapping based on rigid superposition + def GetRMSDMapping(self, model, strategy = "heuristic", subsampling=50, + chem_mapping_result = None, heuristic_n_max_naive = 120): + """Identify chain mapping based on minimal RMSD superposition Superposition and scoring is based on CA/C3' positions which are present in all chains of a :attr:`chem_groups` as well as the *model* chains which are mapped to that respective chem group. - Transformations to superpose *model* onto :attr:`ChainMapper.target` - are estimated using all possible combinations of target and model chains - within the same chem groups and build the basis for further extension. - - There are four extension strategies: + The following strategies are available: - * **greedy_single_gdtts**: Iteratively add the model/target chain pair - that adds the most conserved contacts based on the GDT-TS metric - (Number of CA/C3' atoms within [8, 4, 2, 1] Angstrom). The mapping - with highest GDT-TS score is returned. However, that mapping is not - guaranteed to be complete (see *single_chain_gdtts_thresh*). + * **naive**: Naively iterate all possible mappings and return the one + with lowes RMSD. - * **greedy_iterative_gdtts**: Same as greedy_single_gdtts except that - the transformation gets updated with each added chain pair. + * **greedy_single**: perform all vs. all single chain superpositions + within the respective ref/mdl chem groups to use as starting points. + For each starting point, iteratively add the model/target chain pair + with lowest RMSD until a full mapping is achieved. The mapping with + lowest RMSD is returned. - * **greedy_single_rmsd**: Conceptually similar to greedy_single_gdtts - but the added chain pairs are the ones with lowest RMSD. - The mapping with lowest overall RMSD gets returned. - *single_chain_gdtts_thresh* is only applied to derive the initial - transformations. After that, the minimal RMSD chain pair gets - iteratively added without applying any threshold. + * **greedy_iterative**: Same as greedy_single_rmsd exept that the + transformation gets updated with each added chain pair. - * **greedy_iterative_rmsd**: Same as greedy_single_rmsd exept that - the transformation gets updated with each added chain pair. - *single_chain_gdtts_thresh* is only applied to derive the initial - transformations. After that, the minimal RMSD chain pair gets - iteratively added without applying any threshold. + * **heuristic**: Uses *naive* strategy if number of possible mappings + is within *heuristic_n_max_naive*. The default of 120 corresponds + to a homo-pentamer (5!=120). If the number of possible mappings is + larger, *greedy_iterative* is used. :param model: Model to map :type model: :class:`ost.mol.EntityView`/:class:`ost.mol.EntityHandle` - :param strategy: Strategy to extend mappings from initial transforms, - see description above. Must be in ["greedy_single", - "greedy_iterative", "greedy_iterative_rmsd"] + :param strategy: Strategy for sampling. Must be in ["naive", + "greedy_single", "greedy_iterative"] :type strategy: :class:`str` - :param single_chain_gdtts_thresh: Minimal GDT-TS score for model/target - chain pair to be added to mapping. - Mapping extension for a given - transform stops when no pair fulfills - this threshold, potentially leading to - an incomplete mapping. - :type single_chain_gdtts_thresh: :class:`float` - :param subsampling: If given, only use an equally distributed subset - of all CA/C3' positions for superposition/scoring. + :param subsampling: If given, only an equally distributed subset + of CA/C3' positions in each chain are used for + superposition/scoring. :type subsampling: :class:`int` - :param first_complete: Avoid full enumeration and return first found - mapping that covers all model chains or all - target chains. Has no effect on - greedy_iterative_rmsd strategy. - :type first_complete: :class:`bool` - :param iterative_superposition: Whether to compute inital - transformations with - :func:`ost.mol.alg.IterativeSuperposeSVD` - as oposed to - :func:`ost.mol.alg.SuperposeSVD` - :type iterative_superposition: :class:`bool` :param chem_mapping_result: Pro param. The result of :func:`~GetChemMapping` where you provided *model*. If set, *model* parameter is not @@ -1120,8 +1122,8 @@ class ChainMapper: :returns: A :class:`MappingResult` """ - strategies = ["greedy_single_gdtts", "greedy_iterative_gdtts", - "greedy_single_rmsd", "greedy_iterative_rmsd"] + strategies = ["naive", "greedy_single", "greedy_iterative", "heuristic"] + if strategy not in strategies: raise RuntimeError(f"strategy must be {strategies}") @@ -1153,57 +1155,49 @@ class ChainMapper: chem_group_alns, max_pos = subsampling) - # get transforms of any mdl chain onto any trg chain in same chem group - # that fulfills gdtts threshold - initial_transforms = list() - initial_mappings = list() - for trg_pos, trg_chains, mdl_pos, mdl_chains in zip(trg_group_pos, - self.chem_groups, - mdl_group_pos, - chem_mapping): - for t_pos, t in zip(trg_pos, trg_chains): - for m_pos, m in zip(mdl_pos, mdl_chains): - if len(t_pos) >= 3 and len(m_pos) >= 3: - transform = _GetTransform(m_pos, t_pos, - iterative_superposition) - t_m_pos = geom.Vec3List(m_pos) - t_m_pos.ApplyTransform(transform) - gdt = t_pos.GetGDTTS(t_m_pos) - if gdt >= single_chain_gdtts_thresh: - initial_transforms.append(transform) - initial_mappings.append((t,m)) - - if strategy == "greedy_single_gdtts": - mapping = _SingleRigidGDTTS(initial_transforms, initial_mappings, - self.chem_groups, chem_mapping, - trg_group_pos, mdl_group_pos, - single_chain_gdtts_thresh, - iterative_superposition, first_complete, - len(self.target.chains), - len(mdl.chains)) - - elif strategy == "greedy_iterative_gdtts": - mapping = _IterativeRigidGDTTS(initial_transforms, initial_mappings, - self.chem_groups, chem_mapping, - trg_group_pos, mdl_group_pos, - single_chain_gdtts_thresh, - iterative_superposition, - first_complete, - len(self.target.chains), - len(mdl.chains)) - - elif strategy == "greedy_single_rmsd": - mapping = _SingleRigidRMSD(initial_transforms, initial_mappings, - self.chem_groups, chem_mapping, - trg_group_pos, mdl_group_pos, - iterative_superposition) - - - elif strategy == "greedy_iterative_rmsd": - mapping = _IterativeRigidRMSD(initial_transforms, initial_mappings, - self.chem_groups, chem_mapping, - trg_group_pos, mdl_group_pos, - iterative_superposition) + if strategy == "heuristic": + if _NMappingsWithin(self.chem_groups, chem_mapping, + heuristic_n_max_naive): + strategy = "naive" + else: + strategy = "greedy_iterative" + + mapping = None + + if strategy.startswith("greedy"): + # get transforms of any mdl chain onto any trg chain in same chem + # group that fulfills gdtts threshold + initial_transforms = list() + initial_mappings = list() + for trg_pos, trg_chains, mdl_pos, mdl_chains in zip(trg_group_pos, + self.chem_groups, + mdl_group_pos, + chem_mapping): + for t_pos, t in zip(trg_pos, trg_chains): + for m_pos, m in zip(mdl_pos, mdl_chains): + if len(t_pos) >= 3 and len(m_pos) >= 3: + transform = _GetTransform(m_pos, t_pos, False) + initial_transforms.append(transform) + initial_mappings.append((t,m)) + + if strategy == "greedy_single": + mapping = _SingleRigidRMSD(initial_transforms, + initial_mappings, + self.chem_groups, + chem_mapping, + trg_group_pos, + mdl_group_pos) + + + elif strategy == "greedy_iterative": + mapping = _IterativeRigidRMSD(initial_transforms, + initial_mappings, + self.chem_groups, chem_mapping, + trg_group_pos, mdl_group_pos) + elif strategy == "naive": + mapping = _NaiveRMSD(self.chem_groups, chem_mapping, + trg_group_pos, mdl_group_pos, + self.n_max_naive) # translate mapping format and return final_mapping = list() @@ -1237,15 +1231,19 @@ class ChainMapper: performed (greedy_prune_contact_map = True). The default for *n_max_naive* of 40320 corresponds to an octamer (8!=40320). A structure with stoichiometry A6B2 would be 6!*2!=1440 etc. + + If :attr:`~target` has nucleotide sequences, the QS-score target + function is replaced with a backbone only lDDT score that has + an inclusion radius of 30A. """ - chem_mapping_res = self.GetChemMapping(model) - if _NMappingsWithin(self.chem_groups, chem_mapping_res[0], n_max_naive): - return self.GetQSScoreMapping(model, strategy="naive", - chem_mapping_result=chem_mapping_res) + if len(self.polynuc_seqs) > 0: + return self.GetlDDTMapping(model, strategy = "heuristic", + inclusion_radius = 30.0, + heuristic_n_max_naive = n_max_naive) else: - return self.GetQSScoreMapping(model, strategy="greedy_full", + return self.GetQSScoreMapping(model, strategy="heuristic", greedy_prune_contact_map=True, - chem_mapping_result=chem_mapping_res) + heuristic_n_max_naive = n_max_naive) def GetRepr(self, substructure, model, topn=1, inclusion_radius=15.0, thresholds=[0.5, 1.0, 2.0, 4.0], bb_only=False, @@ -1687,13 +1685,13 @@ class _Aligner: :returns: Alignment with s1 as first and s2 as second sequence """ if chem_type == mol.ChemType.AMINOACIDS: - return seq.alg.GlobalAlign(s1, s2, self.pep_subst_mat, - gap_open=self.pep_gap_open, - gap_ext=self.pep_gap_ext)[0] + return seq.alg.SemiGlobalAlign(s1, s2, self.pep_subst_mat, + gap_open=self.pep_gap_open, + gap_ext=self.pep_gap_ext)[0] elif chem_type == mol.ChemType.NUCLEOTIDES: - return seq.alg.GlobalAlign(s1, s2, self.nuc_subst_mat, - gap_open=self.nuc_gap_open, - gap_ext=self.nuc_gap_ext)[0] + return seq.alg.SemiGlobalAlign(s1, s2, self.nuc_subst_mat, + gap_open=self.nuc_gap_open, + gap_ext=self.nuc_gap_ext)[0] else: raise RuntimeError("Invalid ChemType") return aln @@ -2040,166 +2038,25 @@ def _CheckOneToOneMapping(ref_chains, mdl_chains): else: return None -class _lDDTDecomposer: - - def __init__(self, ref, mdl, ref_mdl_alns, inclusion_radius = 15.0, - thresholds = [0.5, 1.0, 2.0, 4.0]): - """ Compute backbone only lDDT scores for ref/mdl - - Uses the pairwise decomposable property of backbone only lDDT and - implements a caching mechanism to efficiently enumerate different - chain mappings. - """ - - self.ref = ref - self.mdl = mdl - self.ref_mdl_alns = ref_mdl_alns - self.inclusion_radius = inclusion_radius - self.thresholds = thresholds - - # keep track of single chains and interfaces in ref - self.ref_chains = list() # e.g. ['A', 'B', 'C'] - self.ref_interfaces = list() # e.g. [('A', 'B'), ('A', 'C')] - - # holds lDDT scorer for each chain in ref - # key: chain name, value: scorer - self.single_chain_scorer = dict() - - # cache for single chain conserved contacts - # key: tuple (ref_ch, mdl_ch) value: number of conserved contacts - self.single_chain_cache = dict() - - # holds lDDT scorer for each pairwise interface in target - # key: tuple (ref_ch1, ref_ch2), value: scorer - self.interface_scorer = dict() - - # cache for interface conserved contacts - # key: tuple of tuple ((ref_ch1, ref_ch2),((mdl_ch1, mdl_ch2)) - # value: number of conserved contacts - self.interface_cache = dict() - - self.n = 0 - - self._SetupScorer() - - def _SetupScorer(self): - for ch in self.ref.chains: - # Select everything close to that chain - query = f"{self.inclusion_radius} <> " - query += f"[cname={mol.QueryQuoteName(ch.GetName())}] " - query += f"and cname!={mol.QueryQuoteName(ch.GetName())}" - for close_ch in self.ref.Select(query).chains: - k1 = (ch.GetName(), close_ch.GetName()) - k2 = (close_ch.GetName(), ch.GetName()) - if k1 not in self.interface_scorer and \ - k2 not in self.interface_scorer: - dimer_ref = _CSel(self.ref, [k1[0], k1[1]]) - s = lddt.lDDTScorer(dimer_ref, bb_only=True) - self.interface_scorer[k1] = s - self.interface_scorer[k2] = s - self.n += self.interface_scorer[k1].n_distances_ic - self.ref_interfaces.append(k1) - # single chain scorer are actually interface scorers to save - # some distance calculations - if ch.GetName() not in self.single_chain_scorer: - self.single_chain_scorer[ch.GetName()] = s - self.n += s.GetNChainContacts(ch.GetName(), - no_interchain=True) - self.ref_chains.append(ch.GetName()) - if close_ch.GetName() not in self.single_chain_scorer: - self.single_chain_scorer[close_ch.GetName()] = s - self.n += s.GetNChainContacts(close_ch.GetName(), - no_interchain=True) - self.ref_chains.append(close_ch.GetName()) - - # add any missing single chain scorer - for ch in self.ref.chains: - if ch.GetName() not in self.single_chain_scorer: - single_chain_ref = _CSel(self.ref, [ch.GetName()]) - self.single_chain_scorer[ch.GetName()] = \ - lddt.lDDTScorer(single_chain_ref, bb_only = True) - self.n += self.single_chain_scorer[ch.GetName()].n_distances - self.ref_chains.append(ch.GetName()) - - def lDDT(self, ref_chain_groups, mdl_chain_groups): - - flat_map = dict() - for ref_chains, mdl_chains in zip(ref_chain_groups, mdl_chain_groups): - for ref_ch, mdl_ch in zip(ref_chains, mdl_chains): - flat_map[ref_ch] = mdl_ch - - return self.lDDTFromFlatMap(flat_map) - - - def lDDTFromFlatMap(self, flat_map): - conserved = 0 - - # do single chain scores - for ref_ch in self.ref_chains: - if ref_ch in flat_map and flat_map[ref_ch] is not None: - conserved += self.SCCounts(ref_ch, flat_map[ref_ch]) - - # do interfaces - for ref_ch1, ref_ch2 in self.ref_interfaces: - if ref_ch1 in flat_map and ref_ch2 in flat_map: - mdl_ch1 = flat_map[ref_ch1] - mdl_ch2 = flat_map[ref_ch2] - if mdl_ch1 is not None and mdl_ch2 is not None: - conserved += self.IntCounts(ref_ch1, ref_ch2, mdl_ch1, - mdl_ch2) - - return conserved / (len(self.thresholds) * self.n) - - def SCCounts(self, ref_ch, mdl_ch): - if not (ref_ch, mdl_ch) in self.single_chain_cache: - alns = dict() - alns[mdl_ch] = self.ref_mdl_alns[(ref_ch, mdl_ch)] - mdl_sel = _CSel(self.mdl, [mdl_ch]) - s = self.single_chain_scorer[ref_ch] - _,_,_,conserved,_,_,_ = s.lDDT(mdl_sel, - residue_mapping=alns, - return_dist_test=True, - no_interchain=True, - chain_mapping={mdl_ch: ref_ch}, - check_resnames=False) - self.single_chain_cache[(ref_ch, mdl_ch)] = conserved - return self.single_chain_cache[(ref_ch, mdl_ch)] - - def IntCounts(self, ref_ch1, ref_ch2, mdl_ch1, mdl_ch2): - k1 = ((ref_ch1, ref_ch2),(mdl_ch1, mdl_ch2)) - k2 = ((ref_ch2, ref_ch1),(mdl_ch2, mdl_ch1)) - if k1 not in self.interface_cache and k2 not in self.interface_cache: - alns = dict() - alns[mdl_ch1] = self.ref_mdl_alns[(ref_ch1, mdl_ch1)] - alns[mdl_ch2] = self.ref_mdl_alns[(ref_ch2, mdl_ch2)] - mdl_sel = _CSel(self.mdl, [mdl_ch1, mdl_ch2]) - s = self.interface_scorer[(ref_ch1, ref_ch2)] - _,_,_,conserved,_,_,_ = s.lDDT(mdl_sel, - residue_mapping=alns, - return_dist_test=True, - no_intrachain=True, - chain_mapping={mdl_ch1: ref_ch1, - mdl_ch2: ref_ch2}, - check_resnames=False) - self.interface_cache[k1] = conserved - self.interface_cache[k2] = conserved - return self.interface_cache[k1] - -class _lDDTGreedySearcher(_lDDTDecomposer): +class _lDDTGreedySearcher(bb_lddt.BBlDDTScorer): def __init__(self, ref, mdl, ref_chem_groups, mdl_chem_groups, ref_mdl_alns, inclusion_radius = 15.0, thresholds = [0.5, 1.0, 2.0, 4.0], steep_opt_rate = None): + """ Greedy extension of already existing but incomplete chain mappings """ - super().__init__(ref, mdl, ref_mdl_alns, - inclusion_radius = inclusion_radius, - thresholds = thresholds) + super().__init__(ref, ref_chem_groups, mdl, ref_mdl_alns, + dist_thresh=inclusion_radius, + dist_diff_thresholds=thresholds) + + self.mdl_chem_groups = mdl_chem_groups self.steep_opt_rate = steep_opt_rate - self.neighbors = {k: set() for k in self.ref_chains} - for k in self.interface_scorer.keys(): - self.neighbors[k[0]].add(k[1]) - self.neighbors[k[1]].add(k[0]) + + self.neighbors = {k: set() for k in self.trg.chain_names} + for interface in self.trg.interacting_chains: + self.neighbors[interface[0]].add(interface[1]) + self.neighbors[interface[1]].add(interface[0]) assert(len(ref_chem_groups) == len(mdl_chem_groups)) self.ref_chem_groups = ref_chem_groups @@ -2215,16 +2072,10 @@ class _lDDTGreedySearcher(_lDDTDecomposer): # keep track of mdl chains that potentially give lDDT contributions, # i.e. they have locations within inclusion_radius + max(thresholds) - self.mdl_neighbors = dict() - d = self.inclusion_radius + max(self.thresholds) - for ch in self.mdl.chains: - ch_name = ch.GetName() - self.mdl_neighbors[ch_name] = set() - query = f"{d} <> [cname={mol.QueryQuoteName(ch_name)}]" - query += f" and cname !={mol.QueryQuoteName(ch_name)}" - for close_ch in self.mdl.Select(query).chains: - self.mdl_neighbors[ch_name].add(close_ch.GetName()) - + self.mdl_neighbors = {k: set() for k in self.mdl.chain_names} + for interface in self.mdl.potentially_contributing_chains: + self.mdl_neighbors[interface[0]].add(interface[1]) + self.mdl_neighbors[interface[1]].add(interface[0]) def ExtendMapping(self, mapping, max_ext = None): @@ -2273,14 +2124,14 @@ class _lDDTGreedySearcher(_lDDTDecomposer): chem_group_idx = self.ref_ch_group_mapper[ref_ch] for mdl_ch in free_mdl_chains[chem_group_idx]: # single chain score - n_single = self.SCCounts(ref_ch, mdl_ch) + n_single = self._NSCConserved(ref_ch, mdl_ch).sum() # scores towards neighbors that are already mapped n_inter = 0 for neighbor in self.neighbors[ref_ch]: if neighbor in mapping and mapping[neighbor] in \ self.mdl_neighbors[mdl_ch]: - n_inter += self.IntCounts(ref_ch, neighbor, mdl_ch, - mapping[neighbor]) + n_inter += self._NPairConserved((ref_ch, neighbor), + (mdl_ch, mapping[neighbor])).sum() n = n_single + n_inter if n_inter > 0 and n > max_n: @@ -2334,7 +2185,7 @@ class _lDDTGreedySearcher(_lDDTDecomposer): # try all possible mapping swaps. Swaps that improve the score are # immediately accepted and we start all over again - current_lddt = self.lDDTFromFlatMap(mapping) + current_lddt = self.FromFlatMapping(mapping) something_happened = True while something_happened: something_happened = False @@ -2345,13 +2196,12 @@ class _lDDTGreedySearcher(_lDDTDecomposer): swapped_mapping = dict(mapping) swapped_mapping[ch1] = mapping[ch2] swapped_mapping[ch2] = mapping[ch1] - score = self.lDDTFromFlatMap(swapped_mapping) + score = self.FromFlatMapping(swapped_mapping) if score > current_lddt: something_happened = True mapping = swapped_mapping current_lddt = score break - return mapping @@ -2362,40 +2212,15 @@ def _lDDTNaive(trg, mdl, inclusion_radius, thresholds, chem_groups, best_mapping = None best_lddt = -1.0 - # Benchmarks on homo-oligomers indicate that full blown lDDT - # computation is faster up to tetramers => 4!=24 possible mappings. - # For stuff bigger than that, the decomposer approach should be used - if _NMappingsWithin(chem_groups, chem_mapping, 24): - # Setup scoring - lddt_scorer = lddt.lDDTScorer(trg, bb_only = True) - for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive): - # chain_mapping and alns as input for lDDT computation - lddt_chain_mapping = dict() - lddt_alns = dict() - for ref_chem_group, mdl_chem_group in zip(chem_groups, mapping): - for ref_ch, mdl_ch in zip(ref_chem_group, mdl_chem_group): - # some mdl chains can be None - if mdl_ch is not None: - lddt_chain_mapping[mdl_ch] = ref_ch - lddt_alns[mdl_ch] = ref_mdl_alns[(ref_ch, mdl_ch)] - lDDT, _ = lddt_scorer.lDDT(mdl, thresholds=thresholds, - chain_mapping=lddt_chain_mapping, - residue_mapping = lddt_alns, - check_resnames = False) - if lDDT > best_lddt: - best_mapping = mapping - best_lddt = lDDT - - else: - # Setup scoring - lddt_scorer = _lDDTDecomposer(trg, mdl, ref_mdl_alns, - inclusion_radius=inclusion_radius, - thresholds = thresholds) - for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive): - lDDT = lddt_scorer.lDDT(chem_groups, mapping) - if lDDT > best_lddt: - best_mapping = mapping - best_lddt = lDDT + # Setup scoring + lddt_scorer = bb_lddt.BBlDDTScorer(trg, chem_groups, mdl, ref_mdl_alns, + dist_thresh=inclusion_radius, + dist_diff_thresholds=thresholds) + for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive): + lDDT = lddt_scorer.Score(mapping, check=False) + if lDDT > best_lddt: + best_mapping = mapping + best_lddt = lDDT return (best_mapping, best_lddt) @@ -2428,7 +2253,7 @@ def _lDDTGreedyFast(the_greed): n_best = 0 best_seed = None for seed in seeds: - n = the_greed.SCCounts(seed[0], seed[1]) + n = the_greed._NSCConserved(seed[0], seed[1]).sum() if n > n_best: n_best = n best_seed = seed @@ -2482,7 +2307,7 @@ def _lDDTGreedyFull(the_greed): tmp_mapping = dict(mapping) tmp_mapping[remnant_seed[0]] = remnant_seed[1] tmp_mapping = the_greed.ExtendMapping(tmp_mapping) - score = the_greed.lDDTFromFlatMap(tmp_mapping) + score = the_greed.FromFlatMapping(tmp_mapping) if score > best_score: best_score = score best_mapping = tmp_mapping @@ -2490,7 +2315,7 @@ def _lDDTGreedyFull(the_greed): something_happened = True mapping = best_mapping - score = the_greed.lDDTFromFlatMap(mapping) + score = the_greed.FromFlatMapping(mapping) if score > best_overall_score: best_overall_score = score best_overall_mapping = mapping @@ -2554,7 +2379,7 @@ def _lDDTGreedyBlock(the_greed, seed_size, blocks_per_chem_group): seed = dict(mapping) seed.update({s[0]: s[1]}) seed = the_greed.ExtendMapping(seed, max_ext = max_ext) - seed_lddt = the_greed.lDDTFromFlatMap(seed) + seed_lddt = the_greed.FromFlatMapping(seed) if seed_lddt > best_score: best_score = seed_lddt best_mapping = seed @@ -2570,7 +2395,7 @@ def _lDDTGreedyBlock(the_greed, seed_size, blocks_per_chem_group): best_mapping = None for seed in starting_blocks: seed = the_greed.ExtendMapping(seed) - seed_lddt = the_greed.lDDTFromFlatMap(seed) + seed_lddt = the_greed.FromFlatMapping(seed) if seed_lddt > best_lddt: best_lddt = seed_lddt best_mapping = seed @@ -3027,162 +2852,8 @@ def _QSScoreGreedyBlock(the_greed, seed_size, blocks_per_chem_group): return final_mapping - -def _SingleRigidGDTTS(initial_transforms, initial_mappings, chem_groups, - chem_mapping, trg_group_pos, mdl_group_pos, - single_chain_gdtts_thresh, iterative_superposition, - first_complete, n_trg_chains, n_mdl_chains): - """ Takes initial transforms and sequentially adds chain pairs with - best scoring gdtts that fulfill single_chain_gdtts_thresh. The mapping - from the transform that leads to best overall gdtts score is returned. - Optionally, the first complete mapping, i.e. a mapping that covers all - target chains or all model chains, is returned. - """ - best_mapping = dict() - best_gdt = 0 - for transform in initial_transforms: - mapping = dict() - mapped_mdl_chains = set() - gdt = 0.0 - - for trg_chains, mdl_chains, trg_pos, mdl_pos, in zip(chem_groups, - chem_mapping, - trg_group_pos, - mdl_group_pos): - - if len(trg_pos) == 0 or len(mdl_pos) == 0: - continue # cannot compute valid gdt - - gdt_scores = list() - - t_mdl_pos = list() - for m_pos in mdl_pos: - t_m_pos = geom.Vec3List(m_pos) - t_m_pos.ApplyTransform(transform) - t_mdl_pos.append(t_m_pos) - - for t_pos, t in zip(trg_pos, trg_chains): - for t_m_pos, m in zip(t_mdl_pos, mdl_chains): - gdt = t_pos.GetGDTTS(t_m_pos) - if gdt >= single_chain_gdtts_thresh: - gdt_scores.append((gdt, (t,m))) - - n_gdt_contacts = 4 * len(trg_pos[0]) - gdt_scores.sort(reverse=True) - for item in gdt_scores: - p = item[1] - if p[0] not in mapping and p[1] not in mapped_mdl_chains: - mapping[p[0]] = p[1] - mapped_mdl_chains.add(p[1]) - gdt += (item[0] * n_gdt_contacts) - - if gdt > best_gdt: - best_gdt = gdt - best_mapping = mapping - if first_complete: - n = len(mapping) - if n == n_mdl_chains or n == n_trg_chains: - break - - return best_mapping - - -def _IterativeRigidGDTTS(initial_transforms, initial_mappings, chem_groups, - chem_mapping, trg_group_pos, mdl_group_pos, - single_chain_gdtts_thresh, iterative_superposition, - first_complete, n_trg_chains, n_mdl_chains): - """ Takes initial transforms and sequentially adds chain pairs with - best scoring gdtts that fulfill single_chain_gdtts_thresh. With each - added chain pair, the transform gets updated. Thus the naming iterative. - The mapping from the initial transform that leads to best overall gdtts - score is returned. Optionally, the first complete mapping, i.e. a mapping - that covers all target chains or all model chains, is returned. - """ - - # to directly retrieve positions using chain names - trg_pos_dict = dict() - for trg_pos, trg_chains in zip(trg_group_pos, chem_groups): - for t_pos, t in zip(trg_pos, trg_chains): - trg_pos_dict[t] = t_pos - mdl_pos_dict = dict() - for mdl_pos, mdl_chains in zip(mdl_group_pos, chem_mapping): - for m_pos, m in zip(mdl_pos, mdl_chains): - mdl_pos_dict[m] = m_pos - - best_mapping = dict() - best_gdt = 0 - for initial_transform, initial_mapping in zip(initial_transforms, - initial_mappings): - mapping = {initial_mapping[0]: initial_mapping[1]} - transform = geom.Mat4(initial_transform) - mapped_trg_pos = geom.Vec3List(trg_pos_dict[initial_mapping[0]]) - mapped_mdl_pos = geom.Vec3List(mdl_pos_dict[initial_mapping[1]]) - - # the following variables contain the chains which are - # available for mapping - trg_chain_groups = [set(group) for group in chem_groups] - mdl_chain_groups = [set(group) for group in chem_mapping] - - # search and kick out inital mapping - for group in trg_chain_groups: - if initial_mapping[0] in group: - group.remove(initial_mapping[0]) - break - for group in mdl_chain_groups: - if initial_mapping[1] in group: - group.remove(initial_mapping[1]) - break - - something_happened = True - while something_happened: - # search for best mapping given current transform - something_happened=False - best_sc_mapping = None - best_sc_group_idx = None - best_sc_gdt = 0.0 - group_idx = 0 - for trg_chains, mdl_chains in zip(trg_chain_groups, mdl_chain_groups): - for t in trg_chains: - t_pos = trg_pos_dict[t] - for m in mdl_chains: - m_pos = mdl_pos_dict[m] - t_m_pos = geom.Vec3List(m_pos) - t_m_pos.ApplyTransform(transform) - gdt = t_pos.GetGDTTS(t_m_pos) - if gdt > single_chain_gdtts_thresh and gdt > best_sc_gdt: - best_sc_gdt = gdt - best_sc_mapping = (t,m) - best_sc_group_idx = group_idx - group_idx += 1 - - if best_sc_mapping is not None: - something_happened = True - mapping[best_sc_mapping[0]] = best_sc_mapping[1] - mapped_trg_pos.extend(trg_pos_dict[best_sc_mapping[0]]) - mapped_mdl_pos.extend(mdl_pos_dict[best_sc_mapping[1]]) - trg_chain_groups[best_sc_group_idx].remove(best_sc_mapping[0]) - mdl_chain_groups[best_sc_group_idx].remove(best_sc_mapping[1]) - - transform = _GetTransform(mapped_mdl_pos, mapped_trg_pos, - iterative_superposition) - - # compute overall gdt for current transform (non-normalized gdt!!!) - mapped_mdl_pos.ApplyTransform(transform) - gdt = mapped_trg_pos.GetGDTTS(mapped_mdl_pos, norm=False) - - if gdt > best_gdt: - best_gdt = gdt - best_mapping = mapping - if first_complete: - n = len(mapping) - if n == n_mdl_chains or n == n_trg_chains: - break - - return best_mapping - def _SingleRigidRMSD(initial_transforms, initial_mappings, chem_groups, - chem_mapping, trg_group_pos, mdl_group_pos, - iterative_superposition): + chem_mapping, trg_group_pos, mdl_group_pos): """ Takes initial transforms and sequentially adds chain pairs with lowest RMSD. The mapping from the transform that leads to lowest overall RMSD is @@ -3228,8 +2899,7 @@ def _SingleRigidRMSD(initial_transforms, initial_mappings, chem_groups, return best_mapping def _IterativeRigidRMSD(initial_transforms, initial_mappings, chem_groups, - chem_mapping, trg_group_pos, mdl_group_pos, - iterative_superposition): + chem_mapping, trg_group_pos, mdl_group_pos): """ Takes initial transforms and sequentially adds chain pairs with lowest RMSD. With each added chain pair, the transform gets updated. Thus the naming iterative. The mapping from the initial transform that @@ -3301,7 +2971,7 @@ def _IterativeRigidRMSD(initial_transforms, initial_mappings, chem_groups, mdl_chain_groups[best_sc_group_idx].remove(best_sc_mapping[1]) transform = _GetTransform(mapped_mdl_pos, mapped_trg_pos, - iterative_superposition) + False) # compute overall RMSD for current transform mapped_mdl_pos.ApplyTransform(transform) @@ -3313,6 +2983,43 @@ def _IterativeRigidRMSD(initial_transforms, initial_mappings, chem_groups, return best_mapping +def _NaiveRMSD(chem_groups, chem_mapping, trg_group_pos, mdl_group_pos, + n_max_naive): + + # to directly retrieve positions using chain names + trg_pos_dict = dict() + for trg_pos, trg_chains in zip(trg_group_pos, chem_groups): + for t_pos, t in zip(trg_pos, trg_chains): + trg_pos_dict[t] = t_pos + mdl_pos_dict = dict() + for mdl_pos, mdl_chains in zip(mdl_group_pos, chem_mapping): + for m_pos, m in zip(mdl_pos, mdl_chains): + mdl_pos_dict[m] = m_pos + + best_mapping = dict() + best_rmsd = float("inf") + + for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive): + trg_pos = geom.Vec3List() + mdl_pos = geom.Vec3List() + for trg_group, mdl_group in zip(chem_groups, mapping): + for trg_ch, mdl_ch in zip(trg_group, mdl_group): + if trg_ch is not None and mdl_ch is not None: + trg_pos.extend(trg_pos_dict[trg_ch]) + mdl_pos.extend(mdl_pos_dict[mdl_ch]) + superpose_res = mol.alg.SuperposeSVD(mdl_pos, trg_pos) + if superpose_res.rmsd < best_rmsd: + best_rmsd = superpose_res.rmsd + best_mapping = mapping + + # this is stupid... + tmp = dict() + for chem_group, mapping in zip(chem_groups, best_mapping): + for trg_ch, mdl_ch in zip(chem_group, mapping): + tmp[trg_ch] = mdl_ch + + return tmp + def _GetRefPos(trg, mdl, trg_msas, mdl_alns, max_pos = None): """ Extracts reference positions which are present in trg and mdl @@ -3520,6 +3227,9 @@ def _RefEqualGenerator(ref_chains, mdl_chains): for p in itertools.permutations(mdl_chains): yield list(p) +def _RefEmptyGenerator(ref_chains, mdl_chains): + yield list() + def _ConcatIterators(iterators): for item in itertools.product(*iterators): yield list(item) @@ -3565,8 +3275,8 @@ def _ChainMappings(ref_chains, mdl_chains, n_max=None): iterators = list() for ref, mdl in zip(ref_chains, mdl_chains): if len(ref) == 0: - raise RuntimeError("Expext at least one chain in ref chem group") - if len(ref) == len(mdl): + iterators.append(_RefEmptyGenerator(ref, mdl)) + elif len(ref) == len(mdl): iterators.append(_RefEqualGenerator(ref, mdl)) elif len(ref) < len(mdl): iterators.append(_RefSmallerGenerator(ref, mdl)) diff --git a/modules/mol/alg/pymod/contact_score.py b/modules/mol/alg/pymod/contact_score.py index b5ddeb10b7d3d3b7072e2a9bbbac28b9a78d9c4b..845f620e0da0032deccc5184ee8a3bac482f12c4 100644 --- a/modules/mol/alg/pymod/contact_score.py +++ b/modules/mol/alg/pymod/contact_score.py @@ -188,8 +188,6 @@ class ContactEntity: return self._sequence[chain_name] def _SetupContacts(self): - # this function is incredibly inefficient... if performance is an issue, - # go ahead and optimize self._contacts = dict() self._hr_contacts = list() @@ -198,32 +196,93 @@ class ContactEntity: for r_idx, r in enumerate(ch.residues): r.SetIntProp("contact_idx", r_idx) + residue_lists = list() + min_res_x = list() + min_res_y = list() + min_res_z = list() + max_res_x = list() + max_res_y = list() + max_res_z = list() + per_res_pos = list() + min_chain_pos = list() + max_chain_pos = list() + for cname in self.chain_names: - # q1 selects stuff in current chain that is close to any other chain - q1 = f"cname={cname} and {self.contact_d} <> [cname!={cname}]" - # q2 selects stuff in other chains that is close to current chain - q2 = f"cname!={cname} and {self.contact_d} <> [cname={cname}]" - v1 = self.view.Select(q1) - v2 = self.view.Select(q2) - v1_p = [geom.Vec3List([a.pos for a in r.atoms]) for r in v1.residues] - for r1, p1 in zip(v1.residues, v1_p): - for ch2 in v2.chains: - cname2 = ch2.GetName() - if cname2 > cname: - v2_p = [geom.Vec3List([a.pos for a in r.atoms]) for r in ch2.residues] - for r2, p2 in zip(ch2.residues, v2_p): - if p1.IsWithin(p2, self.contact_d): - cname_key = (cname, cname2) - if cname_key not in self._contacts: - self._contacts[cname_key] = set() - self._contacts[cname_key].add((r1.GetIntProp("contact_idx"), - r2.GetIntProp("contact_idx"))) - rnum1 = r1.GetNumber() - hr1 = f"{cname}.{rnum1.num}.{rnum1.ins_code}" - rnum2 = r2.GetNumber() - hr2 = f"{cname2}.{rnum2.num}.{rnum2.ins_code}" - self._hr_contacts.append((hr1.strip("\u0000"), - hr2.strip("\u0000"))) + ch = self.view.FindChain(cname) + if ch.GetAtomCount() == 0: + raise RuntimeError(f"Chain without atoms observed: \"{cname}\"") + residue_lists.append([r for r in ch.residues]) + res_pos = list() + for r in residue_lists[-1]: + pos = np.zeros((r.GetAtomCount(), 3)) + for at_idx, at in enumerate(r.atoms): + p = at.GetPos() + pos[(at_idx, 0)] = p[0] + pos[(at_idx, 1)] = p[1] + pos[(at_idx, 2)] = p[2] + res_pos.append(pos) + min_res_pos = np.vstack([p.min(0) for p in res_pos]) + max_res_pos = np.vstack([p.max(0) for p in res_pos]) + min_res_x.append(min_res_pos[:, 0]) + min_res_y.append(min_res_pos[:, 1]) + min_res_z.append(min_res_pos[:, 2]) + max_res_x.append(max_res_pos[:, 0]) + max_res_y.append(max_res_pos[:, 1]) + max_res_z.append(max_res_pos[:, 2]) + min_chain_pos.append(min_res_pos.min(0)) + max_chain_pos.append(max_res_pos.max(0)) + per_res_pos.append(res_pos) + + # operate on squared contact_d (scd) to save some square roots + scd = self.contact_d * self.contact_d + + for ch1_idx in range(len(self.chain_names)): + for ch2_idx in range(ch1_idx + 1, len(self.chain_names)): + # chains which fulfill the following expressions have no contact + # within self.contact_d + if np.max(min_chain_pos[ch1_idx] - max_chain_pos[ch2_idx]) > self.contact_d: + continue + if np.max(min_chain_pos[ch2_idx] - max_chain_pos[ch1_idx]) > self.contact_d: + continue + + # same thing for residue positions but all at once + skip_one = np.subtract.outer(min_res_x[ch1_idx], max_res_x[ch2_idx]) > self.contact_d + skip_one = np.logical_or(skip_one, np.subtract.outer(min_res_y[ch1_idx], max_res_y[ch2_idx]) > self.contact_d) + skip_one = np.logical_or(skip_one, np.subtract.outer(min_res_z[ch1_idx], max_res_z[ch2_idx]) > self.contact_d) + skip_two = np.subtract.outer(min_res_x[ch2_idx], max_res_x[ch1_idx]) > self.contact_d + skip_two = np.logical_or(skip_two, np.subtract.outer(min_res_y[ch2_idx], max_res_y[ch1_idx]) > self.contact_d) + skip_two = np.logical_or(skip_two, np.subtract.outer(min_res_z[ch2_idx], max_res_z[ch1_idx]) > self.contact_d) + skip = np.logical_or(skip_one, skip_two.T) + + # identify residue pairs for which we cannot exclude a contact + r1_indices, r2_indices = np.nonzero(np.logical_not(skip)) + ch1_per_res_pos = per_res_pos[ch1_idx] + ch2_per_res_pos = per_res_pos[ch2_idx] + for r1_idx, r2_idx in zip(r1_indices, r2_indices): + # compute pairwise distances + p1 = ch1_per_res_pos[r1_idx] + p2 = ch2_per_res_pos[r2_idx] + x2 = np.sum(p1**2, axis=1) # (m) + y2 = np.sum(p2**2, axis=1) # (n) + xy = np.matmul(p1, p2.T) # (m, n) + x2 = x2.reshape(-1, 1) + squared_distances = x2 - 2*xy + y2 # (m, n) + if np.min(squared_distances) <= scd: + # its a contact! + r1 = residue_lists[ch1_idx][r1_idx] + r2 = residue_lists[ch2_idx][r2_idx] + cname_key = (self.chain_names[ch1_idx], self.chain_names[ch2_idx]) + if cname_key not in self._contacts: + self._contacts[cname_key] = set() + self._contacts[cname_key].add((r1.GetIntProp("contact_idx"), + r2.GetIntProp("contact_idx"))) + rnum1 = r1.GetNumber() + hr1 = f"{self.chain_names[ch1_idx]}.{rnum1.num}.{rnum1.ins_code}" + rnum2 = r2.GetNumber() + hr2 = f"{self.chain_names[ch2_idx]}.{rnum2.num}.{rnum2.ins_code}" + self._hr_contacts.append((hr1.strip("\u0000"), + hr2.strip("\u0000"))) + def _SetupInterfaceResidues(self): self._interface_residues = {cname: set() for cname in self.chain_names} diff --git a/modules/mol/alg/pymod/dockq.py b/modules/mol/alg/pymod/dockq.py index d3695c1de54ea43bda7cb9a61af332b4dca9023f..e8ec3f7a5e42d2bfdffa5929266ab9550aabbe14 100644 --- a/modules/mol/alg/pymod/dockq.py +++ b/modules/mol/alg/pymod/dockq.py @@ -44,11 +44,11 @@ def _PreprocessStructures(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, tmp = ch1_aln.GetSequence(0) ref_s1 = seq.CreateSequence(tmp.GetName(), str(tmp)) ref_s1.SetOffset(tmp.GetOffset()) - ref_s1.AttachView(ref.Select(f"cname={ref_ch1}")) + ref_s1.AttachView(ref.Select(f"cname={mol.QueryQuoteName(ref_ch1)}")) tmp = ch1_aln.GetSequence(1) mdl_s1 = seq.CreateSequence(tmp.GetName(), str(tmp)) mdl_s1.SetOffset(tmp.GetOffset()) - mdl_s1.AttachView(mdl.Select(f"cname={mdl_ch1}")) + mdl_s1.AttachView(mdl.Select(f"cname={mol.QueryQuoteName(mdl_ch1)}")) new_ch1_aln = seq.CreateAlignment(ref_s1, mdl_s1) for col in new_ch1_aln: if col[0] != '-' and col[1] != '-': @@ -69,11 +69,11 @@ def _PreprocessStructures(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, tmp = ch2_aln.GetSequence(0) ref_s2 = seq.CreateSequence(tmp.GetName(), str(tmp)) ref_s2.SetOffset(tmp.GetOffset()) - ref_s2.AttachView(ref.Select(f"cname={ref_ch2}")) + ref_s2.AttachView(ref.Select(f"cname={mol.QueryQuoteName(ref_ch2)}")) tmp = ch2_aln.GetSequence(1) mdl_s2 = seq.CreateSequence(tmp.GetName(), str(tmp)) mdl_s2.SetOffset(tmp.GetOffset()) - mdl_s2.AttachView(mdl.Select(f"cname={mdl_ch2}")) + mdl_s2.AttachView(mdl.Select(f"cname={mol.QueryQuoteName(mdl_ch2)}")) new_ch2_aln = seq.CreateAlignment(ref_s2, mdl_s2) for col in new_ch2_aln: if col[0] != '-' and col[1] != '-': @@ -92,7 +92,7 @@ def _PreprocessStructures(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, dockq_idx += 1 else: # go by residue numbers - for mdl_r in mdl.Select(f"cname={mdl_ch1}").residues: + for mdl_r in mdl.Select(f"cname={mol.QueryQuoteName(mdl_ch1)}").residues: ref_r = ref.FindResidue(ref_ch1, mdl_r.GetNumber()) if ref_r.IsValid(): ref_r.SetIntProp("dockq_idx", dockq_idx) @@ -100,7 +100,7 @@ def _PreprocessStructures(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, ref_r.SetIntProp("dockq_mapped", 1) mdl_r.SetIntProp("dockq_mapped", 1) dockq_idx += 1 - for mdl_r in mdl.Select(f"cname={mdl_ch2}").residues: + for mdl_r in mdl.Select(f"cname={mol.QueryQuoteName(mdl_ch2)}").residues: ref_r = ref.FindResidue(ref_ch2, mdl_r.GetNumber()) if ref_r.IsValid(): ref_r.SetIntProp("dockq_idx", dockq_idx) @@ -124,8 +124,8 @@ def _PreprocessStructures(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, dockq_idx += 1 def _GetContacts(ent, ch1, ch2, dist_thresh): - int1 = ent.Select(f"cname={ch1} and {dist_thresh} <> [cname={ch2}]") - int2 = ent.Select(f"cname={ch2} and {dist_thresh} <> [cname={ch1}]") + int1 = ent.Select(f"cname={mol.QueryQuoteName(ch1)} and {dist_thresh} <> [cname={mol.QueryQuoteName(ch2)}]") + int2 = ent.Select(f"cname={mol.QueryQuoteName(ch2)} and {dist_thresh} <> [cname={mol.QueryQuoteName(ch1)}]") contacts = set() int1_p = [geom.Vec3List([a.pos for a in r.atoms]) for r in int1.residues] int2_p = [geom.Vec3List([a.pos for a in r.atoms]) for r in int2.residues] @@ -154,14 +154,15 @@ def _ContactScores(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, return (nnat, nmdl, fnat, fnonnat) -def _RMSDScores(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, dist_thresh=10.0): +def _RMSDScores(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, dist_thresh=10.0, + cb_mode=False): # backbone atoms used for superposition sup_atoms = ['CA','C','N','O'] # make mapped residues accessible by the dockq_idx property - mapped_mdl = mdl.Select(f"cname={mdl_ch1},{mdl_ch2} and grdockq_mapped=1") - mapped_ref = ref.Select(f"cname={ref_ch1},{ref_ch2} and grdockq_mapped=1") + mapped_mdl = mdl.Select(f"cname={mol.QueryQuoteName(mdl_ch1)},{mol.QueryQuoteName(mdl_ch2)} and grdockq_mapped=1") + mapped_ref = ref.Select(f"cname={mol.QueryQuoteName(ref_ch1)},{mol.QueryQuoteName(ref_ch2)} and grdockq_mapped=1") ch = mapped_mdl.FindChain(mdl_ch1) mdl_ch1_residues = {r.GetIntProp("dockq_idx"): r for r in ch.residues} ch = mapped_mdl.FindChain(mdl_ch2) @@ -173,8 +174,11 @@ def _RMSDScores(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, dist_thresh=10.0): # iRMSD ####### - int1 = ref.Select(f"cname={ref_ch1} and {dist_thresh} <> [cname={ref_ch2}]") - int2 = ref.Select(f"cname={ref_ch2} and {dist_thresh} <> [cname={ref_ch1}]") + i_ref = ref + if cb_mode: + i_ref = ref.Select("aname=CB or (rname=GLY and aname=CA)") + int1 = i_ref.Select(f"cname={mol.QueryQuoteName(ref_ch1)} and {dist_thresh} <> [cname={mol.QueryQuoteName(ref_ch2)}]") + int2 = i_ref.Select(f"cname={mol.QueryQuoteName(ref_ch2)} and {dist_thresh} <> [cname={mol.QueryQuoteName(ref_ch1)}]") ref_pos = geom.Vec3List() mdl_pos = geom.Vec3List() for r in int1.residues: @@ -263,7 +267,8 @@ def _DockQ(fnat, lrmsd, irmsd, d1, d2): return (fnat + _ScaleRMSD(lrmsd, d1) + _ScaleRMSD(irmsd, d2))/3 def DockQ(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, - ch1_aln=None, ch2_aln=None): + ch1_aln=None, ch2_aln=None, contact_dist_thresh = 5.0, + interface_dist_thresh = 10.0, interface_cb = False): """ Computes DockQ for specified interface DockQ is described in: Sankar Basu and Bjoern Wallner (2016), "DockQ: A @@ -294,6 +299,25 @@ def DockQ(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, The first sequence must match the sequence in *ref_ch2* and the second to *mdl_ch2*. :type ch2_aln: :class:`ost.seq.AlignmentHandle` + :param contact_dist_thresh: Residues with any atom within this threshold + are considered to be in contact. Affects contact + based scores fnat and fnonnat. CAPRI suggests + to lower the default of 5.0 to 4.0 for + protein-peptide interactions. + :type contact_dist_thresh: :class:`float` + :param interface_dist_thresh: Residues with any atom within this threshold + to another chain are considered interface + residues. Affects irmsd. CAPRI suggests to + lower the default of 10.0 to 8.0 in + combination with interface_cb=True for + protein-peptide interactions. + :type interface_dist_thresh: :class:`float` + :param interface_cb: Only use CB atoms (CA for GLY) to identify interface + residues for irmsd. CAPRI suggests to enable this + flag in combination with lowering + *interface_dist_thresh* to 8.0 for protein-peptide + interactions. + :type interface_cb: :class:`bool` :returns: :class:`dict` with keys nnat, nmdl, fnat, fnonnat, irmsd, lrmsd, DockQ which corresponds to the equivalent values in the original DockQ implementation. @@ -301,8 +325,11 @@ def DockQ(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, _PreprocessStructures(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, ch1_aln = ch1_aln, ch2_aln = ch2_aln) nnat, nmdl, fnat, fnonnat = _ContactScores(mdl, ref, mdl_ch1, mdl_ch2, - ref_ch1, ref_ch2) - irmsd, lrmsd = _RMSDScores(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2) + ref_ch1, ref_ch2, + dist_thresh = contact_dist_thresh) + irmsd, lrmsd = _RMSDScores(mdl, ref, mdl_ch1, mdl_ch2, ref_ch1, ref_ch2, + dist_thresh = interface_dist_thresh, + cb_mode = interface_cb) return {"nnat": nnat, "nmdl": nmdl, "fnat": fnat, diff --git a/modules/mol/alg/pymod/export_gdt.cc b/modules/mol/alg/pymod/export_gdt.cc new file mode 100644 index 0000000000000000000000000000000000000000..971b809755ea8473285f37e644085c2b463f2354 --- /dev/null +++ b/modules/mol/alg/pymod/export_gdt.cc @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2024 by the OpenStructure authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ + + +#include <boost/python.hpp> + +#include <ost/mol/alg/gdt.hh> + +using namespace boost::python; + +namespace{ + +boost::python::tuple WrapGDT(const geom::Vec3List& mdl_pos, + const geom::Vec3List& ref_pos, + int window_size, int max_windows, + Real distance_thresh) { + int n_superposed; + geom::Mat4 transform; + ost::mol::alg::GDT(mdl_pos, ref_pos, window_size, max_windows, + distance_thresh, n_superposed, transform); + return boost::python::make_tuple(n_superposed, transform); +} + +} // ns + +void export_GDT() { + + def("GDT", &WrapGDT, (arg("mdl_pos"), + arg("ref_pos"), + arg("window_size"), + arg("max_windows"), + arg("distance_thresh"))); +} diff --git a/modules/mol/alg/pymod/lddt.py b/modules/mol/alg/pymod/lddt.py index ff6119a53c9f9052296e339de458223a29ba505a..1453db731b9f6c680ca8ca548a3d04af183218fe 100644 --- a/modules/mol/alg/pymod/lddt.py +++ b/modules/mol/alg/pymod/lddt.py @@ -3,6 +3,17 @@ import numpy as np from ost import mol from ost import conop +# use cdist of scipy, fallback to (slower) numpy implementation if scipy is not +# available +try: + from scipy.spatial.distance import cdist +except: + def cdist(p1, p2): + x2 = np.sum(p1**2, axis=1) # (m) + y2 = np.sum(p2**2, axis=1) # (n) + xy = np.matmul(p1, p2.T) # (m, n) + x2 = x2.reshape(-1, 1) + return np.sqrt(x2 - 2*xy + y2) # (m, n) class CustomCompound: """ Defines atoms for custom compounds @@ -99,6 +110,13 @@ def GetDefaultSymmetrySettings(): "TYR", [("CD1", "CD2"), ("CE1", "CE2")] ) + # nucleotides + nuc_names = ["A", "C", "G", "U", "DA", "DC", "DG", "DT"] + for nuc_name in nuc_names: + symmetry_settings.AddSymmetricCompound( + nuc_name, [("OP1","OP2")] + ) + return symmetry_settings @@ -260,6 +278,9 @@ class lDDTScorer: # store indices of all atoms that have symmetry properties self.symmetric_atoms = set() + # the actual target positions in a numpy array of shape (self.n_atoms,3) + self.positions = None + # setup members defined above self._SetupEnv(self.compound_lib, self.custom_compounds, self.symmetry_settings, seqres_mapping, self.bb_only) @@ -280,16 +301,12 @@ class lDDTScorer: self._sym_ref_indices = None self._sym_ref_distances = None - # total number of distances - self._n_distances = None - # exactly the same as above but without interchain contacts # => single-chain (sc) self._ref_indices_sc = None self._ref_distances_sc = None self._sym_ref_indices_sc = None self._sym_ref_distances_sc = None - self._n_distances_sc = None # exactly the same as above but without intrachain contacts # => inter-chain (ic) @@ -297,7 +314,6 @@ class lDDTScorer: self._ref_distances_ic = None self._sym_ref_indices_ic = None self._sym_ref_distances_ic = None - self._n_distances_ic = None # input parameter checking self._ProcessSequenceSeparation() @@ -305,99 +321,124 @@ class lDDTScorer: @property def ref_indices(self): if self._ref_indices is None: - self._SetupDistances() + self._ref_indices, self._ref_distances = \ + lDDTScorer._SetupDistances(self.target, self.n_atoms, + self.atom_indices, + self.inclusion_radius) return self._ref_indices @property def ref_distances(self): if self._ref_distances is None: - self._SetupDistances() + self._ref_indices, self._ref_distances = \ + lDDTScorer._SetupDistances(self.target, self.n_atoms, + self.atom_indices, + self.inclusion_radius) return self._ref_distances @property def sym_ref_indices(self): if self._sym_ref_indices is None: - self._SetupDistances() + self._sym_ref_indices, self._sym_ref_distances = \ + lDDTScorer._NonSymDistances(self.n_atoms, self.symmetric_atoms, + self.ref_indices, self.ref_distances) return self._sym_ref_indices @property def sym_ref_distances(self): if self._sym_ref_distances is None: - self._SetupDistances() + self._sym_ref_indices, self._sym_ref_distances = \ + lDDTScorer._NonSymDistances(self.n_atoms, self.symmetric_atoms, + self.ref_indices, self.ref_distances) return self._sym_ref_distances - @property - def n_distances(self): - if self._n_distances is None: - self._n_distances = sum([len(x) for x in self.ref_indices]) - return self._n_distances - @property def ref_indices_sc(self): if self._ref_indices_sc is None: - self._SetupDistancesSC() + self._ref_indices_sc, self._ref_distances_sc = \ + lDDTScorer._SetupDistancesSC(self.n_atoms, + self.chain_start_indices, + self.ref_indices, + self.ref_distances) return self._ref_indices_sc @property def ref_distances_sc(self): if self._ref_distances_sc is None: - self._SetupDistancesSC() + self._ref_indices_sc, self._ref_distances_sc = \ + lDDTScorer._SetupDistancesSC(self.n_atoms, + self.chain_start_indices, + self.ref_indices, + self.ref_distances) return self._ref_distances_sc @property def sym_ref_indices_sc(self): if self._sym_ref_indices_sc is None: - self._SetupDistancesSC() + self._sym_ref_indices_sc, self._sym_ref_distances_sc = \ + lDDTScorer._NonSymDistances(self.n_atoms, + self.symmetric_atoms, + self.ref_indices_sc, + self.ref_distances_sc) return self._sym_ref_indices_sc @property def sym_ref_distances_sc(self): if self._sym_ref_distances_sc is None: - self._SetupDistancesSC() + self._sym_ref_indices_sc, self._sym_ref_distances_sc = \ + lDDTScorer._NonSymDistances(self.n_atoms, + self.symmetric_atoms, + self.ref_indices_sc, + self.ref_distances_sc) return self._sym_ref_distances_sc - @property - def n_distances_sc(self): - if self._n_distances_sc is None: - self._n_distances_sc = sum([len(x) for x in self.ref_indices_sc]) - return self._n_distances_sc - @property def ref_indices_ic(self): if self._ref_indices_ic is None: - self._SetupDistancesIC() + self._ref_indices_ic, self._ref_distances_ic = \ + lDDTScorer._SetupDistancesIC(self.n_atoms, + self.chain_start_indices, + self.ref_indices, + self.ref_distances) return self._ref_indices_ic @property def ref_distances_ic(self): if self._ref_distances_ic is None: - self._SetupDistancesIC() + self._ref_indices_ic, self._ref_distances_ic = \ + lDDTScorer._SetupDistancesIC(self.n_atoms, + self.chain_start_indices, + self.ref_indices, + self.ref_distances) return self._ref_distances_ic @property def sym_ref_indices_ic(self): if self._sym_ref_indices_ic is None: - self._SetupDistancesIC() + self._sym_ref_indices_ic, self._sym_ref_distances_ic = \ + lDDTScorer._NonSymDistances(self.n_atoms, + self.symmetric_atoms, + self.ref_indices_ic, + self.ref_distances_ic) return self._sym_ref_indices_ic @property def sym_ref_distances_ic(self): if self._sym_ref_distances_ic is None: - self._SetupDistancesIC() + self._sym_ref_indices_ic, self._sym_ref_distances_ic = \ + lDDTScorer._NonSymDistances(self.n_atoms, + self.symmetric_atoms, + self.ref_indices_ic, + self.ref_distances_ic) return self._sym_ref_distances_ic - @property - def n_distances_ic(self): - if self._n_distances_ic is None: - self._n_distances_ic = sum([len(x) for x in self.ref_indices_ic]) - return self._n_distances_ic - def lDDT(self, model, thresholds = [0.5, 1.0, 2.0, 4.0], local_lddt_prop=None, local_contact_prop=None, chain_mapping=None, no_interchain=False, no_intrachain=False, penalize_extra_chains=False, residue_mapping=None, return_dist_test=False, - check_resnames=True): + check_resnames=True, add_mdl_contacts=False, + interaction_data=None): """Computes lDDT of *model* - globally and per-residue :param model: Model to be scored - models are preferably scored upon @@ -440,7 +481,7 @@ class lDDTScorer: number of intra-chain contacts of each extra chain to the expected contacts, thus adding a penalty. - :param penalize_extra_chains: :class:`bool` + :type penalize_extra_chains: :class:`bool` :param residue_mapping: By default, residue mapping is based on residue numbers. That means, a model chain and the respective target chain map to the same @@ -477,10 +518,25 @@ class lDDTScorer: :param check_resnames: On by default. Enforces residue name matches between mapped model and target residues. :type check_resnames: :class:`bool` + :param add_mdl_contacts: Adds model contacts - Only using contacts that + are within a certain distance threshold in the + target does not penalize for added model + contacts. If set to True, this flag will also + consider target contacts that are within the + specified distance threshold in the model but + not necessarily in the target. No contact will + be added if the respective atom pair is not + resolved in the target. + :type add_mdl_contacts: :class:`bool` + :param interaction_data: Pro param - don't use + :type interaction_data: :class:`tuple` + :returns: global and per-residue lDDT scores as a tuple - - first element is global lDDT score and second element - a list of per-residue scores with length len(*model*.residues) - None is assigned to residues that are not covered by target + first element is global lDDT score (None if *target* has no + contacts) and second element a list of per-residue scores with + length len(*model*.residues). None is assigned to residues that + are not covered by target. If a residue is covered but has no + contacts in *target*, 0.0 is assigned. """ if chain_mapping is None: if len(self.chain_names) > 1 or len(model.chains) > 1: @@ -502,102 +558,54 @@ class lDDTScorer: f"not exist. Model has chains: " f"{[c.GetName() for c in model.chains]}") - # initialize positions with values far in nirvana. If a position is not - # set, it should be far away from any position in model. - max_pos = model.bounds.GetMax() - max_coordinate = abs(max(max_pos[0], max_pos[1], max_pos[2])) - max_coordinate += 42 * max(thresholds) - pos = np.ones((self.n_atoms, 3), dtype=np.float32) * max_coordinate - - # for each scored residue in model a list of indices describing the - # atoms from the reference that should be there - res_ref_atom_indices = list() - - # for each scored residue in model a list of indices of atoms that are - # actually there - res_atom_indices = list() - - # indices of the scored residues - res_indices = list() - - # Will contain one element per symmetry group - symmetries = list() - - current_model_res_idx = -1 - for ch in model.chains: - model_ch_name = ch.GetName() - if model_ch_name not in chain_mapping: - current_model_res_idx += len(ch.residues) - continue # additional model chain which is not mapped - target_ch_name = chain_mapping[model_ch_name] - - rnums = self._GetChainRNums(ch, residue_mapping, model_ch_name, - target_ch_name) - - for r, rnum in zip(ch.residues, rnums): - current_model_res_idx += 1 - res_mapper_key = (target_ch_name, rnum) - if res_mapper_key not in self.res_mapper: - continue - r_idx = self.res_mapper[res_mapper_key] - if check_resnames and r.name != self.compound_names[r_idx]: - raise RuntimeError( - f"Residue name mismatch for {r}, " - f" expect {self.compound_names[r_idx]}" - ) - res_start_idx = self.res_start_indices[r_idx] - rname = self.compound_names[r_idx] - anames = self.compound_anames[rname] - atoms = [r.FindAtom(aname) for aname in anames] - res_ref_atom_indices.append( - list(range(res_start_idx, res_start_idx + len(anames))) - ) - res_atom_indices.append(list()) - res_indices.append(current_model_res_idx) - for a_idx, a in enumerate(atoms): - if a.IsValid(): - p = a.GetPos() - pos[res_start_idx + a_idx][0] = p[0] - pos[res_start_idx + a_idx][1] = p[1] - pos[res_start_idx + a_idx][2] = p[2] - res_atom_indices[-1].append(res_start_idx + a_idx) - if rname in self.compound_symmetric_atoms: - sym_indices = list() - for sym_tuple in self.compound_symmetric_atoms[rname]: - a_one = atoms[sym_tuple[0]] - a_two = atoms[sym_tuple[1]] - if a_one.IsValid() and a_two.IsValid(): - sym_indices.append( - ( - res_start_idx + sym_tuple[0], - res_start_idx + sym_tuple[1], - ) - ) - if len(sym_indices) > 0: - symmetries.append(sym_indices) + # data objects defining model data - see _ProcessModel for rough + # description + pos, res_ref_atom_indices, res_atom_indices, res_atom_hashes, \ + res_indices, ref_res_indices, symmetries = \ + self._ProcessModel(model, chain_mapping, + residue_mapping = residue_mapping, + thresholds = thresholds, + check_resnames = check_resnames) if no_interchain and no_intrachain: - raise RuntimeError("on_interchain and no_intrachain flags are " + raise RuntimeError("no_interchain and no_intrachain flags are " "mutually exclusive") - if no_interchain: - sym_ref_indices = self.sym_ref_indices_sc - sym_ref_distances = self.sym_ref_distances_sc - ref_indices = self.ref_indices_sc - ref_distances = self.ref_distances_sc - n_distances = self.n_distances_sc - elif no_intrachain: - sym_ref_indices = self.sym_ref_indices_ic - sym_ref_distances = self.sym_ref_distances_ic - ref_indices = self.ref_indices_ic - ref_distances = self.ref_distances_ic - n_distances = self.n_distances_ic + + sym_ref_indices = None + sym_ref_distances = None + ref_indices = None + ref_distances = None + + if interaction_data is None: + if no_interchain: + sym_ref_indices = self.sym_ref_indices_sc + sym_ref_distances = self.sym_ref_distances_sc + ref_indices = self.ref_indices_sc + ref_distances = self.ref_distances_sc + elif no_intrachain: + sym_ref_indices = self.sym_ref_indices_ic + sym_ref_distances = self.sym_ref_distances_ic + ref_indices = self.ref_indices_ic + ref_distances = self.ref_distances_ic + else: + sym_ref_indices = self.sym_ref_indices + sym_ref_distances = self.sym_ref_distances + ref_indices = self.ref_indices + ref_distances = self.ref_distances + + if add_mdl_contacts: + ref_indices, ref_distances = \ + self._AddMdlContacts(model, res_atom_indices, res_atom_hashes, + ref_indices, ref_distances, + no_interchain, no_intrachain) + # recompute symmetry related indices/distances + sym_ref_indices, sym_ref_distances = \ + lDDTScorer._NonSymDistances(self.n_atoms, self.symmetric_atoms, + ref_indices, ref_distances) else: - sym_ref_indices = self.sym_ref_indices - sym_ref_distances = self.sym_ref_distances - ref_indices = self.ref_indices - ref_distances = self.ref_distances - n_distances = self.n_distances + sym_ref_indices, sym_ref_distances, ref_indices, ref_distances = \ + interaction_data self._ResolveSymmetries(pos, thresholds, symmetries, sym_ref_indices, sym_ref_distances) @@ -620,8 +628,8 @@ class lDDTScorer: else: per_res_lDDT[res_indices[idx]] = 0.0 - # do full model score + n_distances = sum([len(x) for x in ref_indices]) if penalize_extra_chains: n_distances += self._GetExtraModelChainPenalty(model, chain_mapping) @@ -677,6 +685,99 @@ class lDDTScorer: else: return self._GetNExp(list(range(s, e)), self.ref_indices) + def _ProcessModel(self, model, chain_mapping, residue_mapping = None, + thresholds = [0.5, 1.0, 2.0, 4.0], + check_resnames = True): + """ Helper that generates data structures from model + """ + + # initialize positions with values far in nirvana. If a position is not + # set, it should be far away from any position in model. + max_pos = model.bounds.GetMax() + max_coordinate = abs(max(max_pos[0], max_pos[1], max_pos[2])) + max_coordinate += 42 * max(thresholds) + pos = np.ones((self.n_atoms, 3), dtype=np.float32) * max_coordinate + + # for each scored residue in model a list of indices describing the + # atoms from the reference that should be there + res_ref_atom_indices = list() + + # for each scored residue in model a list of indices of atoms that are + # actually there + res_atom_indices = list() + + # and the respective hash codes + # this is required if add_mdl_contacts is set to True + res_atom_hashes = list() + + # indices of the scored residues + res_indices = list() + + # respective residue indices in reference + ref_res_indices = list() + + # Will contain one element per symmetry group + symmetries = list() + + current_model_res_idx = -1 + for ch in model.chains: + model_ch_name = ch.GetName() + if model_ch_name not in chain_mapping: + current_model_res_idx += len(ch.residues) + continue # additional model chain which is not mapped + target_ch_name = chain_mapping[model_ch_name] + + rnums = self._GetChainRNums(ch, residue_mapping, model_ch_name, + target_ch_name) + + for r, rnum in zip(ch.residues, rnums): + current_model_res_idx += 1 + res_mapper_key = (target_ch_name, rnum) + if res_mapper_key not in self.res_mapper: + continue + r_idx = self.res_mapper[res_mapper_key] + if check_resnames and r.name != self.compound_names[r_idx]: + raise RuntimeError( + f"Residue name mismatch for {r}, " + f" expect {self.compound_names[r_idx]}" + ) + res_start_idx = self.res_start_indices[r_idx] + rname = self.compound_names[r_idx] + anames = self.compound_anames[rname] + atoms = [r.FindAtom(aname) for aname in anames] + res_ref_atom_indices.append( + list(range(res_start_idx, res_start_idx + len(anames))) + ) + res_atom_indices.append(list()) + res_atom_hashes.append(list()) + res_indices.append(current_model_res_idx) + ref_res_indices.append(r_idx) + for a_idx, a in enumerate(atoms): + if a.IsValid(): + p = a.GetPos() + pos[res_start_idx + a_idx][0] = p[0] + pos[res_start_idx + a_idx][1] = p[1] + pos[res_start_idx + a_idx][2] = p[2] + res_atom_indices[-1].append(res_start_idx + a_idx) + res_atom_hashes[-1].append(a.handle.GetHashCode()) + if rname in self.compound_symmetric_atoms: + sym_indices = list() + for sym_tuple in self.compound_symmetric_atoms[rname]: + a_one = atoms[sym_tuple[0]] + a_two = atoms[sym_tuple[1]] + if a_one.IsValid() and a_two.IsValid(): + sym_indices.append( + ( + res_start_idx + sym_tuple[0], + res_start_idx + sym_tuple[1], + ) + ) + if len(sym_indices) > 0: + symmetries.append(sym_indices) + + return (pos, res_ref_atom_indices, res_atom_indices, res_atom_hashes, + res_indices, ref_res_indices, symmetries) + def _GetExtraModelChainPenalty(self, model, chain_mapping): """Counts n distances in extra model chains to be added as penalty @@ -691,7 +792,7 @@ class lDDTScorer: symmetry_settings = sm, inclusion_radius = self.inclusion_radius, bb_only = self.bb_only) - penalty += dummy_scorer.n_distances + penalty += sum([len(x) for x in dummy_scorer.ref_indices]) return penalty def _GetChainRNums(self, ch, residue_mapping, model_ch_name, @@ -755,6 +856,7 @@ class lDDTScorer: residue_numbers = self._GetTargetResidueNumbers(self.target, seqres_mapping) current_idx = 0 + positions = list() for chain in self.target.chains: ch_name = chain.GetName() self.chain_names.append(ch_name) @@ -776,6 +878,11 @@ class lDDTScorer: for a in atoms: if a.IsValid(): self.atom_indices[a.handle.GetHashCode()] = current_idx + p = a.GetPos() + positions.append(np.asarray([p[0], p[1], p[2]], + dtype=np.float32)) + else: + positions.append(np.zeros(3, dtype=np.float32)) current_idx += 1 if r.name in self.compound_symmetric_atoms: @@ -787,9 +894,9 @@ class lDDTScorer: self.symmetric_atoms.add( self.atom_indices[hashcode] ) + self.positions = np.vstack(positions) self.n_atoms = current_idx - def _GetTargetResidueNumbers(self, target, seqres_mapping): """Returns residue numbers for each chain in target as dict @@ -876,151 +983,259 @@ class lDDTScorer: if len(symmetric_atoms) > 0: self.compound_symmetric_atoms[r.name] = symmetric_atoms - def _SetupDistances(self): + def _AddMdlContacts(self, model, res_atom_indices, res_atom_hashes, + ref_indices, ref_distances, no_interchain, + no_intrachain): + + # buildup an index map for mdl atoms that are also present in target + in_target = np.zeros(self.n_atoms, dtype=bool) + for i in self.atom_indices.values(): + in_target[i] = True + mdl_atom_indices = dict() + for at_indices, at_hashes in zip(res_atom_indices, res_atom_hashes): + for i, h in zip(at_indices, at_hashes): + if in_target[i]: + mdl_atom_indices[h] = i + + # get contacts for mdl - the contacts are only from atom pairs that + # are also present in target, as we only provide the respective + # hashes in mdl_atom_indices + mdl_ref_indices, mdl_ref_distances = \ + lDDTScorer._SetupDistances(model, self.n_atoms, mdl_atom_indices, + self.inclusion_radius) + if no_interchain: + mdl_ref_indices, mdl_ref_distances = \ + lDDTScorer._SetupDistancesSC(self.n_atoms, + self.chain_start_indices, + mdl_ref_indices, + mdl_ref_distances) + + if no_intrachain: + mdl_ref_indices, mdl_ref_distances = \ + lDDTScorer._SetupDistancesIC(self.n_atoms, + self.chain_start_indices, + mdl_ref_indices, + mdl_ref_distances) + + # update ref_indices/ref_distances => add mdl contacts + for i in range(self.n_atoms): + mask = np.isin(mdl_ref_indices[i], ref_indices[i], + assume_unique=True, invert=True) + if np.sum(mask) > 0: + added_mdl_indices = mdl_ref_indices[i][mask] + ref_indices[i] = np.append(ref_indices[i], + added_mdl_indices) + + # distances need to be recomputed from ref positions + tmp = self.positions.take(added_mdl_indices, axis=0) + np.subtract(tmp, self.positions[i][None, :], out=tmp) + np.square(tmp, out=tmp) + tmp = tmp.sum(axis=1) + np.sqrt(tmp, out=tmp) # distances against all relevant atoms + ref_distances[i] = np.append(ref_distances[i], tmp) + + return (ref_indices, ref_distances) + + + + @staticmethod + def _SetupDistances(structure, n_atoms, atom_index_mapping, + inclusion_radius): + """Compute distance related members of lDDTScorer + + Brute force all vs all distance computation kills lDDT for large + complexes. Instead of building some KD tree data structure, we make use + of expected spatial proximity of atoms in the same chain. Distances are + computed as follows: + + - process each chain individually + - perform crude collision detection + - process potentially interacting chain pairs + - concatenate distances from all processing steps """ - # init - self._ref_indices = [np.asarray([], dtype=np.int64) for idx in range(self.n_atoms)] - self._ref_distances = [np.asarray([], dtype=np.float64) for idx in range(self.n_atoms)] - self._sym_ref_indices = [np.asarray([], dtype=np.int64) for idx in range(self.n_atoms)] - self._sym_ref_distances = [np.asarray([], dtype=np.float64) for idx in range(self.n_atoms)] + ref_indices = [np.asarray([], dtype=np.int64) for idx in range(n_atoms)] + ref_distances = [np.asarray([], dtype=np.float64) for idx in range(n_atoms)] - # initialize positions with values far in nirvana. If a position is not - # set, it should be far away from any position in target (or at least - # more than inclusion_radius). - max_pos = self.target.bounds.GetMax() - max_coordinate = abs(max(max_pos[0], max_pos[1], max_pos[2])) - max_coordinate += 2 * self.inclusion_radius + indices = [list() for _ in range(n_atoms)] + distances = [list() for _ in range(n_atoms)] + per_chain_pos = list() + per_chain_indices = list() - pos = np.ones((self.n_atoms, 3), dtype=np.float32) * max_coordinate - atom_indices = list() - mask_start = list() - mask_end = list() - - for r_idx, r in enumerate(self.target.residues): - r_start_idx = self.res_start_indices[r_idx] - r_n_atoms = len(self.compound_anames[r.name]) - r_end_idx = r_start_idx + r_n_atoms - for a in r.atoms: - if a.handle.GetHashCode() in self.atom_indices: - idx = self.atom_indices[a.handle.GetHashCode()] - p = a.GetPos() - pos[idx][0] = p[0] - pos[idx][1] = p[1] - pos[idx][2] = p[2] - atom_indices.append(idx) - mask_start.append(r_start_idx) - mask_end.append(r_end_idx) - - indices, distances = self._CloseStuff(pos, self.inclusion_radius, - atom_indices, mask_start, - mask_end) - - for i in range(len(atom_indices)): - self._ref_indices[atom_indices[i]] = indices[i] - self._ref_distances[atom_indices[i]] = distances[i] - self._NonSymDistances(self._ref_indices, self._ref_distances, - self._sym_ref_indices, - self._sym_ref_distances) - - def _SetupDistancesSC(self): + # Process individual chains + for ch in structure.chains: + pos_list = list() + atom_indices = list() + mask_start = list() + mask_end = list() + r_start_idx = 0 + for r_idx, r in enumerate(ch.residues): + n_valid_atoms = 0 + for a in r.atoms: + hash_code = a.handle.GetHashCode() + if hash_code in atom_index_mapping: + p = a.GetPos() + pos_list.append(np.asarray([p[0], p[1], p[2]])) + atom_indices.append(atom_index_mapping[hash_code]) + n_valid_atoms += 1 + mask_start.extend([r_start_idx] * n_valid_atoms) + mask_end.extend([r_start_idx + n_valid_atoms] * n_valid_atoms) + r_start_idx += n_valid_atoms + + if len(pos_list) == 0: + # nothing to do... + continue + + pos = np.vstack(pos_list) + atom_indices = np.asarray(atom_indices) + dists = cdist(pos, pos) + + # apply masks + far_away = 2 * inclusion_radius + for idx in range(atom_indices.shape[0]): + dists[idx, range(mask_start[idx], mask_end[idx])] = far_away + + # fish out and store close atoms within inclusion radius + within_mask = dists < inclusion_radius + for idx in range(atom_indices.shape[0]): + indices_to_append = atom_indices[within_mask[idx,:]] + if indices_to_append.shape[0] > 0: + full_at_idx = atom_indices[idx] + indices[full_at_idx].append(indices_to_append) + distances[full_at_idx].append(dists[idx, within_mask[idx,:]]) + + per_chain_pos.append(pos) + per_chain_indices.append(atom_indices) + + # perform crude collision detection + min_pos = [p.min(0) for p in per_chain_pos] + max_pos = [p.max(0) for p in per_chain_pos] + chain_pairs = list() + for idx_one in range(len(per_chain_pos)): + for idx_two in range(idx_one + 1, len(per_chain_pos)): + if np.max(min_pos[idx_one] - max_pos[idx_two]) > inclusion_radius: + continue + if np.max(min_pos[idx_two] - max_pos[idx_one]) > inclusion_radius: + continue + chain_pairs.append((idx_one, idx_two)) + + # process potentially interacting chains + for pair in chain_pairs: + dists = cdist(per_chain_pos[pair[0]], per_chain_pos[pair[1]]) + within = dists <= inclusion_radius + + # process pair[0] + tmp = within.sum(axis=1) + for idx in range(tmp.shape[0]): + if tmp[idx] > 0: + # even though not being a strict requirement, we perform an + # insertion here such that the indices for each atom will be + # sorted after the hstack operation + at_idx = per_chain_indices[pair[0]][idx] + indices_to_insert = per_chain_indices[pair[1]][within[idx,:]] + distances_to_insert = dists[idx, within[idx, :]] + insertion_idx = len(indices[at_idx]) + for i in range(insertion_idx): + if indices_to_insert[0] > indices[at_idx][i][0]: + insertion_idx = i + break + indices[at_idx].insert(insertion_idx, indices_to_insert) + distances[at_idx].insert(insertion_idx, distances_to_insert) + + # process pair[1] + tmp = within.sum(axis=0) + for idx in range(tmp.shape[0]): + if tmp[idx] > 0: + # even though not being a strict requirement, we perform an + # insertion here such that the indices for each atom will be + # sorted after the hstack operation + at_idx = per_chain_indices[pair[1]][idx] + indices_to_insert = per_chain_indices[pair[0]][within[:, idx]] + distances_to_insert = dists[within[:, idx], idx] + insertion_idx = len(indices[at_idx]) + for i in range(insertion_idx): + if indices_to_insert[0] > indices[at_idx][i][0]: + insertion_idx = i + break + indices[at_idx].insert(insertion_idx, indices_to_insert) + distances[at_idx].insert(insertion_idx, distances_to_insert) + + # concatenate distances from all processing steps + for at_idx in range(n_atoms): + if len(indices[at_idx]) > 0: + ref_indices[at_idx] = np.hstack(indices[at_idx]) + ref_distances[at_idx] = np.hstack(distances[at_idx]) + + return (ref_indices, ref_distances) + + @staticmethod + def _SetupDistancesSC(n_atoms, chain_start_indices, + ref_indices, ref_distances): """Select subset of contacts only covering intra-chain contacts """ # init - self._ref_indices_sc = [np.asarray([], dtype=np.int64) for idx in range(self.n_atoms)] - self._ref_distances_sc = [np.asarray([], dtype=np.float64) for idx in range(self.n_atoms)] - self._sym_ref_indices_sc = [np.asarray([], dtype=np.int64) for idx in range(self.n_atoms)] - self._sym_ref_distances_sc = [np.asarray([], dtype=np.float64) for idx in range(self.n_atoms)] - - # start from overall contacts - ref_indices = self.ref_indices - ref_distances = self.ref_distances - sym_ref_indices = self.sym_ref_indices - sym_ref_distances = self.sym_ref_distances - - n_chains = len(self.chain_start_indices) - for ch_idx, ch in enumerate(self.target.chains): - chain_s = self.chain_start_indices[ch_idx] - chain_e = self.n_atoms + ref_indices_sc = [np.asarray([], dtype=np.int64) for idx in range(n_atoms)] + ref_distances_sc = [np.asarray([], dtype=np.float64) for idx in range(n_atoms)] + + n_chains = len(chain_start_indices) + for ch_idx in range(n_chains): + chain_s = chain_start_indices[ch_idx] + chain_e = n_atoms if ch_idx + 1 < n_chains: - chain_e = self.chain_start_indices[ch_idx+1] + chain_e = chain_start_indices[ch_idx+1] for i in range(chain_s, chain_e): if len(ref_indices[i]) > 0: intra_idx = np.where(np.logical_and(ref_indices[i]>=chain_s, ref_indices[i]<chain_e))[0] - self._ref_indices_sc[i] = ref_indices[i][intra_idx] - self._ref_distances_sc[i] = ref_distances[i][intra_idx] + ref_indices_sc[i] = ref_indices[i][intra_idx] + ref_distances_sc[i] = ref_distances[i][intra_idx] - self._NonSymDistances(self._ref_indices_sc, self._ref_distances_sc, - self._sym_ref_indices_sc, - self._sym_ref_distances_sc) + return (ref_indices_sc, ref_distances_sc) - def _SetupDistancesIC(self): + @staticmethod + def _SetupDistancesIC(n_atoms, chain_start_indices, + ref_indices, ref_distances): """Select subset of contacts only covering inter-chain contacts """ # init - self._ref_indices_ic = [np.asarray([], dtype=np.int64) for idx in range(self.n_atoms)] - self._ref_distances_ic = [np.asarray([], dtype=np.float64) for idx in range(self.n_atoms)] - self._sym_ref_indices_ic = [np.asarray([], dtype=np.int64) for idx in range(self.n_atoms)] - self._sym_ref_distances_ic = [np.asarray([], dtype=np.float64) for idx in range(self.n_atoms)] - - # start from overall contacts - ref_indices = self.ref_indices - ref_distances = self.ref_distances - sym_ref_indices = self.sym_ref_indices - sym_ref_distances = self.sym_ref_distances - - n_chains = len(self.chain_start_indices) - for ch_idx, ch in enumerate(self.target.chains): - chain_s = self.chain_start_indices[ch_idx] - chain_e = self.n_atoms + ref_indices_ic = [np.asarray([], dtype=np.int64) for idx in range(n_atoms)] + ref_distances_ic = [np.asarray([], dtype=np.float64) for idx in range(n_atoms)] + + n_chains = len(chain_start_indices) + for ch_idx in range(n_chains): + chain_s = chain_start_indices[ch_idx] + chain_e = n_atoms if ch_idx + 1 < n_chains: - chain_e = self.chain_start_indices[ch_idx+1] + chain_e = chain_start_indices[ch_idx+1] for i in range(chain_s, chain_e): if len(ref_indices[i]) > 0: inter_idx = np.where(np.logical_or(ref_indices[i]<chain_s, ref_indices[i]>=chain_e))[0] - self._ref_indices_ic[i] = ref_indices[i][inter_idx] - self._ref_distances_ic[i] = ref_distances[i][inter_idx] + ref_indices_ic[i] = ref_indices[i][inter_idx] + ref_distances_ic[i] = ref_distances[i][inter_idx] - self._NonSymDistances(self._ref_indices_ic, self._ref_distances_ic, - self._sym_ref_indices_ic, - self._sym_ref_distances_ic) + return (ref_indices_ic, ref_distances_ic) - def _CloseStuff(self, pos, inclusion_radius, indices, mask_start, mask_end): - """returns close stuff for positions specified by indices - """ - # TODO: this function does brute force distance computation which has - # quadratic complexity... - close_indices = list() - distances = list() - # work with squared_inclusion_radius (sir) to save some square roots - sir = inclusion_radius ** 2 - for idx, ms, me in zip(indices, mask_start, mask_end): - p = pos[idx, :] - tmp = pos - p[None, :] - np.square(tmp, out=tmp) - tmp = tmp.sum(axis=1) - # mask out atoms of own residue => put them far away - tmp[range(ms, me)] = 2 * sir - close_indices.append(np.nonzero(tmp <= sir)[0]) - distances.append(np.sqrt(tmp[close_indices[-1]])) - return (close_indices, distances) - - def _NonSymDistances(self, ref_indices, ref_distances, - sym_ref_indices, sym_ref_distances): - """Transfer indices/distances of non-symmetric atoms in place + @staticmethod + def _NonSymDistances(n_atoms, symmetric_atoms, ref_indices, ref_distances): + """Transfer indices/distances of non-symmetric atoms and return """ - for idx in self.symmetric_atoms: + + sym_ref_indices = [np.asarray([], dtype=np.int64) for idx in range(n_atoms)] + sym_ref_distances = [np.asarray([], dtype=np.float64) for idx in range(n_atoms)] + + for idx in symmetric_atoms: indices = list() distances = list() for i, d in zip(ref_indices[idx], ref_distances[idx]): - if i not in self.symmetric_atoms: + if i not in symmetric_atoms: indices.append(i) distances.append(d) sym_ref_indices[idx] = indices sym_ref_distances[idx] = np.asarray(distances) + return (sym_ref_indices, sym_ref_distances) + def _EvalAtom(self, pos, atom_idx, thresholds, ref_indices, ref_distances): """Computes number of distance differences within given thresholds diff --git a/modules/mol/alg/pymod/ligand_scoring.py b/modules/mol/alg/pymod/ligand_scoring.py index b56e2dbe61f98cc0b5b10393c4ed3938198b5cdd..8a4fcceae10e1a71629ea6dfec7b5d75b19d6426 100644 --- a/modules/mol/alg/pymod/ligand_scoring.py +++ b/modules/mol/alg/pymod/ligand_scoring.py @@ -1,1906 +1,3 @@ -import warnings - -import numpy as np -import numpy.ma as np_ma -import networkx - -from ost import mol -from ost import geom -from ost import LogError, LogWarning, LogScript, LogInfo, LogVerbose, LogDebug -from ost.mol.alg import chain_mapping - - -class LigandScorer: - """ Scorer class to compute various small molecule ligand (non polymer) scores. - - .. note :: - Extra requirements: - - - Python modules `numpy` and `networkx` must be available - (e.g. use ``pip install numpy networkx``) - - At the moment, two scores are available: - - * lDDT-PLI, that looks at the conservation of protein-ligand contacts - with :class:`lDDT <ost.mol.alg.lddt.lDDTScorer>`. - * Binding-site superposed, symmetry-corrected RMSD that assesses the - accuracy of the ligand pose (BiSyRMSD, hereinafter referred to as RMSD). - - Both scores involve local chain mapping of the reference binding site - onto the model, symmetry-correction, and finally assignment (mapping) - of model and target ligands, as described in (Manuscript in preparation). - - The binding site is defined based on a radius around the target ligand - in the reference structure only. It only contains protein and nucleic - acid chains that pass the criteria for the - :class:`chain mapping <ost.mol.alg.chain_mapping>`. This means ignoring - other ligands, waters, short polymers as well as any incorrectly connected - chains that may be in proximity. - - Results are available as matrices (`(lddt_pli|rmsd)_matrix`), where every - target-model score is reported in a matrix; as `(lddt_pli|rmsd)` where - a model-target assignment has been determined (see below) and reported in - a dictionary; and as (`(lddt_pli|rmsd)_details`) methods, which report - additional details about different aspects of the scoring such as chain - mapping. - - The behavior of chain mapping and ligand assignment can be controlled - with the `global_chain_mapping` and `rmsd_assignment` arguments. - - By default, chain mapping is performed locally, ie. only within the - binding site. As a result, different ligand scores can correspond to - different chain mappings. This tends to produce more favorable scores, - especially in large, partially regular oligomeric complexes. - Setting `global_chain_mapping=True` enforces a single global chain mapping, - as per :meth:`ost.mol.alg.chain_mapping.ChainMapper.GetMapping`. - Note that this global chain mapping currently ignores non polymer entities - such as small ligands, and may result in overly pessimistic scores. - - By default, target-model ligand assignments are computed independently - for the RMSD and lDDT-PLI scores. For RMSD, each model ligand is uniquely - assigned to a target ligand, starting from the "best" possible mapping - (lowest RMSD) and using each target and model ligand in a single - assignment. Ties are resolved by best (highest) lDDT-PLI. Similarly, - for lDDT-PLI, the assignment is based on the highest lDDT-PLI, and ties - broken by lowest RMSD. Setting `rmsd_assignment=True` forces a single - ligand assignment, based on RMSD only. Ties are broken arbitrarily. - - By default, only exact matches between target and model ligands are - considered. This is a problem when the target only contains a subset - of the expected atoms (for instance if atoms are missing in an - experimental structure, which often happens in the PDB). With - `substructure_match=True`, complete model ligands can be scored against - partial target ligands. One problem with this approach is that it is - very easy to find good matches to small, irrelevant ligands like EDO, CO2 - or GOL. To counter that, the assignment algorithm considers the coverage, - expressed as the fraction of atoms of the model ligand atoms covered in the - target. Higher coverage matches are prioritized, but a match with a better - score will be preferred if it falls within a window of `coverage_delta` - (by default 0.2) of a worse-scoring match. As a result, for instance, - with a delta of 0.2, a low-score match with coverage 0.96 would be - preferred to a high-score match with coverage 0.90. - - Assumptions: - - The class generally assumes that the - :attr:`~ost.mol.ResidueHandle.is_ligand` property is properly set on all - the ligand atoms, and only ligand atoms. This is typically the case for - entities loaded from mmCIF (tested with mmCIF files from the PDB and - SWISS-MODEL). Legacy PDB files must contain `HET` headers (which is usually - the case for files downloaded from the PDB but not elsewhere). - - The class doesn't perform any cleanup of the provided structures. - It is up to the caller to ensure that the data is clean and suitable for - scoring. :ref:`Molck <molck>` should be used with extra - care, as many of the options (such as `rm_non_std` or `map_nonstd_res`) can - cause ligands to be removed from the structure. If cleanup with Molck is - needed, ligands should be kept aside and passed separately. Non-ligand residues - should be valid compounds with atom names following the naming conventions - of the component dictionary. Non-standard residues are acceptable, and if - the model contains a standard residue at that position, only atoms with - matching names will be considered. - - Unlike most of OpenStructure, this class does not assume that the ligands - (either in the model or the target) are part of the PDB component - dictionary. They may have arbitrary residue names. Residue names do not - have to match between the model and the target. Matching is based on - the calculation of isomorphisms which depend on the atom element name and - atom connectivity (bond order is ignored). - It is up to the caller to ensure that the connectivity of atoms is properly - set before passing any ligands to this class. Ligands with improper - connectivity will lead to bogus results. - - Note, however, that atom names should be unique within a residue (ie two - distinct atoms cannot have the same atom name). - - This only applies to the ligand. The rest of the model and target - structures (protein, nucleic acids) must still follow the usual rules and - contain only residues from the compound library. - - Although it isn't a requirement, hydrogen atoms should be removed from the - structures. Here is an example code snippet that will perform a reasonable - cleanup. Keep in mind that this is most likely not going to work as - expected with entities loaded from PDB files, as the `is_ligand` flag is - probably not set properly. - - Here is a snippet example of how to use this code:: - - from ost.mol.alg.ligand_scoring import LigandScorer - from ost.mol.alg import Molck, MolckSettings - - # Load data - # Structure model in PDB format, containing the receptor only - model = io.LoadPDB("path_to_model.pdb") - # Ligand model as SDF file - model_ligand = io.LoadEntity("path_to_ligand.sdf", format="sdf") - # Target loaded from mmCIF, containing the ligand - target = io.LoadMMCIF("path_to_target.cif") - - # Cleanup a copy of the structures - cleaned_model = model.Copy() - cleaned_target = target.Copy() - molck_settings = MolckSettings(rm_unk_atoms=True, - rm_non_std=False, - rm_hyd_atoms=True, - rm_oxt_atoms=False, - rm_zero_occ_atoms=False, - colored=False, - map_nonstd_res=False, - assign_elem=True) - Molck(cleaned_model, conop.GetDefaultLib(), molck_settings) - Molck(cleaned_target, conop.GetDefaultLib(), molck_settings) - - # Setup scorer object and compute lDDT-PLI - model_ligands = [model_ligand.Select("ele != H")] - ls = LigandScorer(model=cleaned_model, target=cleaned_target, model_ligands=model_ligands) - print("lDDT-PLI:", ls.lddt_pli) - print("RMSD:", ls.rmsd) - - :param model: Model structure - a deep copy is available as :attr:`model`. - No additional processing (ie. Molck), checks, - stereochemistry checks or sanitization is performed on the - input. Hydrogen atoms are kept. - :type model: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` - :param target: Target structure - a deep copy is available as :attr:`target`. - No additional processing (ie. Molck), checks or sanitization - is performed on the input. Hydrogen atoms are kept. - :type target: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` - :param model_ligands: Model ligands, as a list of - :class:`~ost.mol.ResidueHandle` belonging to the model - entity. Can be instantiated with either a :class:list of - :class:`~ost.mol.ResidueHandle`/:class:`ost.mol.ResidueView` - or of :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView`. - If `None`, ligands will be extracted based on the - :attr:`~ost.mol.ResidueHandle.is_ligand` flag (this is - normally set properly in entities loaded from mmCIF). - :type model_ligands: :class:`list` - :param target_ligands: Target ligands, as a list of - :class:`~ost.mol.ResidueHandle` belonging to the target - entity. Can be instantiated either a :class:list of - :class:`~ost.mol.ResidueHandle`/:class:`ost.mol.ResidueView` - or of :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` - containing a single residue each. - If `None`, ligands will be extracted based on the - :attr:`~ost.mol.ResidueHandle.is_ligand` flag (this is - normally set properly in entities loaded from mmCIF). - :type target_ligands: :class:`list` - :param resnum_alignments: Whether alignments between chemically equivalent - chains in *model* and *target* can be computed - based on residue numbers. This can be assumed in - benchmarking setups such as CAMEO/CASP. - :type resnum_alignments: :class:`bool` - :param check_resnames: On by default. Enforces residue name matches - between mapped model and target residues. - :type check_resnames: :class:`bool` - :param rename_ligand_chain: If a residue with the same chain name and - residue number than an explicitly passed model - or target ligand exits in the structure, - and `rename_ligand_chain` is False, a - RuntimeError will be raised. If - `rename_ligand_chain` is True, the ligand will - be moved to a new chain instead, and the move - will be logged to the console with SCRIPT - level. - :type rename_ligand_chain: :class:`bool` - :param chain_mapper: a chain mapper initialized for the target structure. - If None (default), a chain mapper will be initialized - lazily as required. - :type chain_mapper: :class:`ost.mol.alg.chain_mapping.ChainMapper` - :param substructure_match: Set this to True to allow partial target ligand. - :type substructure_match: :class:`bool` - :param coverage_delta: the coverage delta for partial ligand assignment. - :type coverage_delta: :class:`float` - :param radius: Inclusion radius for the binding site. Residues with - atoms within this distance of the ligand will be considered - for inclusion in the binding site. - :type radius: :class:`float` - :param lddt_pli_radius: lDDT inclusion radius for lDDT-PLI. - :type lddt_pli_radius: :class:`float` - :param lddt_lp_radius: lDDT inclusion radius for lDDT-LP. - :type lddt_lp_radius: :class:`float` - :param binding_sites_topn: maximum number of target binding site - representations to assess, per target ligand. - Ignored if `global_chain_mapping` is True. - :type binding_sites_topn: :class:`int` - :param global_chain_mapping: set to True to use a global chain mapping for - the polymer (protein, nucleotide) chains. - Defaults to False, in which case only local - chain mappings are allowed (where different - ligand may be scored against different chain - mappings). - :type global_chain_mapping: :class:`bool` - :param custom_mapping: Provide custom chain mapping between *model* and - *target* that is used as global chain mapping. - Dictionary with target chain names as key and model - chain names as value. Only has an effect if - *global_chain_mapping* is True. - :type custom_mapping: :class:`dict` - :param rmsd_assignment: assign ligands based on RMSD only. The default - (False) is to use a combination of lDDT-PLI and - RMSD for the assignment. - :type rmsd_assignment: :class:`bool` - :param n_max_naive: Parameter for global chain mapping. If *model* and - *target* have less or equal that number of chains, - the full - mapping solution space is enumerated to find the - the optimum. A heuristic is used otherwise. - :type n_max_naive: :class:`int` - :param max_symmetries: If more than that many isomorphisms exist for - a target-ligand pair, it will be ignored and reported - as unassigned. - :type max_symmetries: :class:`int` - :param unassigned: If True, unassigned model ligands are reported in - the output together with assigned ligands, with a score - of None, and reason for not being assigned in the - \\*_details matrix. Defaults to False. - :type unassigned: :class:`bool` - """ - def __init__(self, model, target, model_ligands=None, target_ligands=None, - resnum_alignments=False, check_resnames=True, - rename_ligand_chain=False, - chain_mapper=None, substructure_match=False, - coverage_delta=0.2, - radius=4.0, lddt_pli_radius=6.0, lddt_lp_radius=10.0, - binding_sites_topn=100000, global_chain_mapping=False, - rmsd_assignment=False, n_max_naive=12, max_symmetries=1e5, - custom_mapping=None, unassigned=False): - - if isinstance(model, mol.EntityView): - self.model = mol.CreateEntityFromView(model, False) - elif isinstance(model, mol.EntityHandle): - self.model = model.Copy() - else: - raise RuntimeError("model must be of type EntityView/EntityHandle") - - if isinstance(target, mol.EntityView): - self.target = mol.CreateEntityFromView(target, False) - elif isinstance(target, mol.EntityHandle): - self.target = target.Copy() - else: - raise RuntimeError("target must be of type EntityView/EntityHandle") - - # Extract ligands from target - if target_ligands is None: - self.target_ligands = self._extract_ligands(self.target) - else: - self.target_ligands = self._prepare_ligands(self.target, target, - target_ligands, - rename_ligand_chain) - if len(self.target_ligands) == 0: - LogWarning("No ligands in the target") - - # Extract ligands from model - if model_ligands is None: - self.model_ligands = self._extract_ligands(self.model) - else: - self.model_ligands = self._prepare_ligands(self.model, model, - model_ligands, - rename_ligand_chain) - if len(self.model_ligands) == 0: - LogWarning("No ligands in the model") - if len(self.target_ligands) == 0: - raise ValueError("No ligand in the model and in the target") - - self._chain_mapper = chain_mapper - self.resnum_alignments = resnum_alignments - self.check_resnames = check_resnames - self.rename_ligand_chain = rename_ligand_chain - self.substructure_match = substructure_match - self.radius = radius - self.lddt_pli_radius = lddt_pli_radius - self.lddt_lp_radius = lddt_lp_radius - self.binding_sites_topn = binding_sites_topn - self.global_chain_mapping = global_chain_mapping - self.rmsd_assignment = rmsd_assignment - self.n_max_naive = n_max_naive - self.max_symmetries = max_symmetries - self.unassigned = unassigned - self.coverage_delta = coverage_delta - - # scoring matrices - self._rmsd_matrix = None - self._rmsd_full_matrix = None - self._lddt_pli_matrix = None - self._lddt_pli_full_matrix = None - - # lazily computed scores - self._rmsd = None - self._rmsd_details = None - self._lddt_pli = None - self._lddt_pli_details = None - - # lazily precomputed variables - self._binding_sites = {} - self.__model_mapping = None - - # Bookkeeping of unassigned ligands - self._unassigned_target_ligands = None - self._unassigned_model_ligands = None - self._unassigned_target_ligands_reason = {} - self._unassigned_target_ligand_short = None - self._unassigned_model_ligand_short = None - self._unassigned_target_ligand_descriptions = None - self._unassigned_model_ligand_descriptions = None - # Keep track of symmetries/isomorphisms (regardless of scoring) - # 0.0: no isomorphism - # 1.0: isomorphic - # np.nan: not assessed yet - that's why we can't use a boolean - self._assignment_isomorphisms = None - # Keep track of match coverage (only in case there was a score) - self._assignment_match_coverage = None - - if custom_mapping is not None: - self._set_custom_mapping(custom_mapping) - - @property - def chain_mapper(self): - """ Chain mapper object for the given :attr:`target`. - - :type: :class:`ost.mol.alg.chain_mapping.ChainMapper` - """ - if self._chain_mapper is None: - self._chain_mapper = chain_mapping.ChainMapper(self.target, - n_max_naive=1e9, - resnum_alignments=self.resnum_alignments) - return self._chain_mapper - - @property - def _model_mapping(self): - """Get the global chain mapping for the model.""" - if self.__model_mapping is None: - self.__model_mapping = self.chain_mapper.GetMapping(self.model, - n_max_naive=self.n_max_naive) - return self.__model_mapping - - @staticmethod - def _extract_ligands(entity): - """Extract ligands from entity. Return a list of residues. - - Assumes that ligands have the :attr:`~ost.mol.ResidueHandle.is_ligand` - flag set. This is typically the case for entities loaded from mmCIF - (tested with mmCIF files from the PDB and SWISS-MODEL). - Legacy PDB files must contain `HET` headers (which is usually the - case for files downloaded from the PDB but not elsewhere). - - This function performs basic checks to ensure that the residues in this - chain are not forming polymer bonds (ie peptide/nucleotide ligands) and - will raise a RuntimeError if this assumption is broken. - - :param entity: the entity to extract ligands from - :type entity: :class:`~ost.mol.EntityHandle` - :rtype: :class:`list` of :class:`~ost.mol.ResidueHandle` - - """ - extracted_ligands = [] - for residue in entity.residues: - if residue.is_ligand: - if mol.InSequence(residue, residue.next): - raise RuntimeError("Residue %s connected in polymer sequen" - "ce %s" % (residue.qualified_name)) - extracted_ligands.append(residue) - LogVerbose("Detected residue %s as ligand" % residue) - return extracted_ligands - - @staticmethod - def _prepare_ligands(new_entity, old_entity, ligands, rename_chain): - """Prepare the ligands given into a list of ResidueHandles which are - part of the copied entity, suitable for the model_ligands and - target_ligands properties. - - This function takes a list of ligands as (Entity|Residue)(Handle|View). - Entities can contain multiple ligands, which will be considered as - separate ligands. - - Ligands which are part of the entity are simply fetched in the new - copied entity. Otherwise, they are copied over to the copied entity. - """ - extracted_ligands = [] - - next_chain_num = 1 - new_editor = None - - def _copy_residue(residue, rename_chain): - """ Copy the residue into the new chain. - Return the new residue handle.""" - nonlocal next_chain_num, new_editor - - # Instantiate the editor - if new_editor is None: - new_editor = new_entity.EditXCS() - - new_chain = new_entity.FindChain(residue.chain.name) - if not new_chain.IsValid(): - new_chain = new_editor.InsertChain(residue.chain.name) - else: - # Does a residue with the same name already exist? - already_exists = new_chain.FindResidue(residue.number).IsValid() - if already_exists: - if rename_chain: - chain_ext = 2 # Extend the chain name by this - while True: - new_chain_name = residue.chain.name + "_" + str(chain_ext) - new_chain = new_entity.FindChain(new_chain_name) - if new_chain.IsValid(): - chain_ext += 1 - continue - else: - new_chain = new_editor.InsertChain(new_chain_name) - break - LogScript("Moved ligand residue %s to new chain %s" % ( - residue.qualified_name, new_chain.name)) - else: - msg = "A residue number %s already exists in chain %s" % ( - residue.number, residue.chain.name) - raise RuntimeError(msg) - - # Add the residue with its original residue number - new_res = new_editor.AppendResidue(new_chain, residue.name, residue.number) - # Add atoms - for old_atom in residue.atoms: - new_editor.InsertAtom(new_res, old_atom.name, old_atom.pos, - element=old_atom.element, occupancy=old_atom.occupancy, - b_factor=old_atom.b_factor, is_hetatm=old_atom.is_hetatom) - # Add bonds - for old_atom in residue.atoms: - for old_bond in old_atom.bonds: - new_first = new_res.FindAtom(old_bond.first.name) - new_second = new_res.FindAtom(old_bond.second.name) - new_editor.Connect(new_first, new_second) - return new_res - - def _process_ligand_residue(res, rename_chain): - """Copy or fetch the residue. Return the residue handle.""" - new_res = None - if res.entity.handle == old_entity.handle: - # Residue is part of the old_entity handle. - # However, it may not be in the copied one, for instance it may have been a view - # We try to grab it first, otherwise we copy it - new_res = new_entity.FindResidue(res.chain.name, res.number) - if new_res and new_res.valid: - LogVerbose("Ligand residue %s already in entity" % res.handle.qualified_name) - else: - # Residue is not part of the entity, need to copy it first - new_res = _copy_residue(res, rename_chain) - LogVerbose("Copied ligand residue %s" % res.handle.qualified_name) - new_res.SetIsLigand(True) - return new_res - - for ligand in ligands: - if isinstance(ligand, mol.EntityHandle) or isinstance(ligand, mol.EntityView): - for residue in ligand.residues: - new_residue = _process_ligand_residue(residue, rename_chain) - extracted_ligands.append(new_residue) - elif isinstance(ligand, mol.ResidueHandle) or isinstance(ligand, mol.ResidueView): - new_residue = _process_ligand_residue(ligand, rename_chain) - extracted_ligands.append(new_residue) - else: - raise RuntimeError("Ligands should be given as Entity or Residue") - - if new_editor is not None: - new_editor.UpdateICS() - return extracted_ligands - - def _get_binding_sites(self, ligand): - """Find representations of the binding site of *ligand* in the model. - - Only consider protein and nucleic acid chains that pass the criteria - for the :class:`ost.mol.alg.chain_mapping`. This means ignoring other - ligands, waters, short polymers as well as any incorrectly connected - chain that may be in proximity. - - :param ligand: Defines the binding site to identify. - :type ligand: :class:`~ost.mol.ResidueHandle` - """ - if ligand.hash_code not in self._binding_sites: - - # create view of reference binding site - ref_residues_hashes = set() # helper to keep track of added residues - ignored_residue_hashes = {ligand.hash_code} - for ligand_at in ligand.atoms: - close_atoms = self.target.FindWithin(ligand_at.GetPos(), self.radius) - for close_at in close_atoms: - # Skip any residue not in the chain mapping target - ref_res = close_at.GetResidue() - h = ref_res.handle.GetHashCode() - if h not in ref_residues_hashes and \ - h not in ignored_residue_hashes: - if self.chain_mapper.target.ViewForHandle(ref_res).IsValid(): - h = ref_res.handle.GetHashCode() - ref_residues_hashes.add(h) - elif ref_res.is_ligand: - LogWarning("Ignoring ligand %s in binding site of %s" % ( - ref_res.qualified_name, ligand.qualified_name)) - ignored_residue_hashes.add(h) - elif ref_res.chem_type == mol.ChemType.WATERS: - pass # That's ok, no need to warn - else: - LogWarning("Ignoring residue %s in binding site of %s" % ( - ref_res.qualified_name, ligand.qualified_name)) - ignored_residue_hashes.add(h) - - if ref_residues_hashes: - # reason for doing that separately is to guarantee same ordering of - # residues as in underlying entity. (Reorder by ResNum seems only - # available on ChainHandles) - ref_bs = self.target.CreateEmptyView() - for ch in self.target.chains: - for r in ch.residues: - if r.handle.GetHashCode() in ref_residues_hashes: - ref_bs.AddResidue(r, mol.ViewAddFlag.INCLUDE_ALL) - if len(ref_bs.residues) == 0: - raise RuntimeError("Failed to add proximity residues to " - "the reference binding site entity") - - # Find the representations - if self.global_chain_mapping: - self._binding_sites[ligand.hash_code] = self.chain_mapper.GetRepr( - ref_bs, self.model, inclusion_radius=self.lddt_lp_radius, - global_mapping = self._model_mapping) - else: - self._binding_sites[ligand.hash_code] = self.chain_mapper.GetRepr( - ref_bs, self.model, inclusion_radius=self.lddt_lp_radius, - topn=self.binding_sites_topn) - - # Flag empty representation - if not self._binding_sites[ligand.hash_code]: - self._unassigned_target_ligands_reason[ligand] = ( - "model_representation", - "No representation of the reference binding site was " - "found in the model") - - else: # if ref_residues_hashes - # Flag missing binding site - self._unassigned_target_ligands_reason[ligand] = ("binding_site", - "No residue in proximity of the target ligand") - self._binding_sites[ligand.hash_code] = [] - - return self._binding_sites[ligand.hash_code] - - @staticmethod - def _build_binding_site_entity(ligand, residues, extra_residues=[]): - """ Build an entity with all the binding site residues in chain A - and the ligand in chain _. Residues are renumbered consecutively from - 1. The ligand is assigned residue number 1 and residue name LIG. - Residues in extra_residues not in `residues` in the model are added - at the end of chain A. - - :param ligand: the Residue Handle of the ligand - :type ligand: :class:`~ost.mol.ResidueHandle` - :param residues: a list of binding site residues - :type residues: :class:`list` of :class:`~ost.mol.ResidueHandle` - :param extra_residues: an optional list with addition binding site - residues. Residues in this list which are not - in `residues` will be added at the end of chain - A. This allows for instance adding unmapped - residues missing from the model into the - reference binding site. - :type extra_residues: :class:`list` of :class:`~ost.mol.ResidueHandle` - :rtype: :class:`~ost.mol.EntityHandle` - """ - bs_ent = mol.CreateEntity() - ed = bs_ent.EditXCS() - bs_chain = ed.InsertChain("A") - seen_res_qn = [] - for resnum, old_res in enumerate(residues, 1): - seen_res_qn.append(old_res.qualified_name) - new_res = ed.AppendResidue(bs_chain, old_res.handle, - deep=True) - ed.SetResidueNumber(new_res, mol.ResNum(resnum)) - - # Add extra residues at the end. - for extra_res in extra_residues: - if extra_res.qualified_name not in seen_res_qn: - resnum += 1 - seen_res_qn.append(extra_res.qualified_name) - new_res = ed.AppendResidue(bs_chain, - extra_res.handle, - deep=True) - ed.SetResidueNumber(new_res, mol.ResNum(resnum)) - # Add the ligand in chain _ - ligand_chain = ed.InsertChain("_") - ligand_res = ed.AppendResidue(ligand_chain, ligand.handle, - deep=True) - ed.RenameResidue(ligand_res, "LIG") - ed.SetResidueNumber(ligand_res, mol.ResNum(1)) - ed.UpdateICS() - - return bs_ent - - def _compute_scores(self): - """ - Compute the RMSD and lDDT-PLI scores for every possible target-model - ligand pair and store the result in internal matrices. - """ - # Create the result matrices - rmsd_full_matrix = np.empty( - (len(self.target_ligands), len(self.model_ligands)), dtype=dict) - lddt_pli_full_matrix = np.empty( - (len(self.target_ligands), len(self.model_ligands)), dtype=dict) - self._assignment_isomorphisms = np.full( - (len(self.target_ligands), len(self.model_ligands)), fill_value=np.nan) - self._assignment_match_coverage = np.zeros( - (len(self.target_ligands), len(self.model_ligands))) - - for target_i, target_ligand in enumerate(self.target_ligands): - LogVerbose("Analyzing target ligand %s" % target_ligand) - - for binding_site in self._get_binding_sites(target_ligand): - LogVerbose("Found binding site with chain mapping %s" % (binding_site.GetFlatChainMapping())) - - ref_bs_ent = self._build_binding_site_entity( - target_ligand, binding_site.ref_residues, - binding_site.substructure.residues) - ref_bs_ent_ligand = ref_bs_ent.FindResidue("_", 1) # by definition - - custom_compounds = { - ref_bs_ent_ligand.name: - mol.alg.lddt.CustomCompound.FromResidue( - ref_bs_ent_ligand)} - lddt_scorer = mol.alg.lddt.lDDTScorer( - ref_bs_ent, - custom_compounds=custom_compounds, - inclusion_radius=self.lddt_pli_radius) - - for model_i, model_ligand in enumerate(self.model_ligands): - try: - symmetries = _ComputeSymmetries( - model_ligand, target_ligand, - substructure_match=self.substructure_match, - by_atom_index=True, - max_symmetries=self.max_symmetries) - LogVerbose("Ligands %s and %s symmetry match" % ( - str(model_ligand), str(target_ligand))) - except NoSymmetryError: - # Ligands are different - skip - LogVerbose("No symmetry between %s and %s" % ( - str(model_ligand), str(target_ligand))) - self._assignment_isomorphisms[target_i, model_i] = 0. - continue - except TooManySymmetriesError: - # Ligands are too symmetrical - skip - LogVerbose("Too many symmetries between %s and %s" % ( - str(model_ligand), str(target_ligand))) - self._assignment_isomorphisms[target_i, model_i] = -1. - continue - except DisconnectedGraphError: - # Disconnected graph is handled elsewhere - continue - substructure_match = len(symmetries[0][0]) != len( - model_ligand.atoms) - coverage = len(symmetries[0][0]) / len(model_ligand.atoms) - self._assignment_match_coverage[target_i, model_i] = coverage - self._assignment_isomorphisms[target_i, model_i] = 1. - - rmsd = _SCRMSD_symmetries(symmetries, model_ligand, - target_ligand, transformation=binding_site.transform) - LogDebug("RMSD: %.4f" % rmsd) - - # Save results? - if not rmsd_full_matrix[target_i, model_i] or \ - rmsd_full_matrix[target_i, model_i]["rmsd"] > rmsd: - rmsd_full_matrix[target_i, model_i] = { - "rmsd": rmsd, - "lddt_lp": binding_site.lDDT, - "bs_ref_res": binding_site.substructure.residues, - "bs_ref_res_mapped": binding_site.ref_residues, - "bs_mdl_res_mapped": binding_site.mdl_residues, - "bb_rmsd": binding_site.bb_rmsd, - "target_ligand": target_ligand, - "model_ligand": model_ligand, - "chain_mapping": binding_site.GetFlatChainMapping(), - "transform": binding_site.transform, - "substructure_match": substructure_match, - "coverage": coverage, - "inconsistent_residues": binding_site.inconsistent_residues, - } - if self.unassigned: - rmsd_full_matrix[target_i, model_i][ - "unassigned"] = False - LogDebug("Saved RMSD") - - mdl_bs_ent = self._build_binding_site_entity( - model_ligand, binding_site.mdl_residues, []) - mdl_bs_ent_ligand = mdl_bs_ent.FindResidue("_", 1) # by definition - - # Now for each symmetry, loop and rename atoms according - # to ref. - mdl_editor = mdl_bs_ent.EditXCS() - for i, (trg_sym, mdl_sym) in enumerate(symmetries): - # Prepare Entities for RMSD - for mdl_anum, trg_anum in zip(mdl_sym, trg_sym): - # Rename model atoms according to symmetry - trg_atom = ref_bs_ent_ligand.atoms[trg_anum] - mdl_atom = mdl_bs_ent_ligand.atoms[mdl_anum] - mdl_editor.RenameAtom(mdl_atom, trg_atom.name) - mdl_editor.UpdateICS() - - global_lddt, local_lddt, lddt_tot, lddt_cons, n_res, \ - n_cont, n_cons = lddt_scorer.lDDT( - mdl_bs_ent, chain_mapping={"A": "A", "_": "_"}, - no_intrachain=True, - return_dist_test=True, - check_resnames=self.check_resnames) - LogDebug("lDDT-PLI for symmetry %d: %.4f" % (i, global_lddt)) - - # Save results? - if not lddt_pli_full_matrix[target_i, model_i]: - # First iteration - save_lddt = True - else: - last_best_lddt = lddt_pli_full_matrix[ - target_i, model_i]["lddt_pli"] - last_best_rmsd = lddt_pli_full_matrix[ - target_i, model_i]["rmsd"] - if global_lddt > last_best_lddt: - # Better lDDT-PLI - save_lddt = True - elif global_lddt == last_best_lddt and \ - rmsd < last_best_rmsd: - # Same lDDT-PLI, better RMSD - save_lddt = True - else: - save_lddt = False - if save_lddt: - lddt_pli_full_matrix[target_i, model_i] = { - "lddt_pli": global_lddt, - "rmsd": rmsd, - "lddt_lp": binding_site.lDDT, - "lddt_pli_n_contacts": lddt_tot, - "bs_ref_res": binding_site.substructure.residues, - "bs_ref_res_mapped": binding_site.ref_residues, - "bs_mdl_res_mapped": binding_site.mdl_residues, - "bb_rmsd": binding_site.bb_rmsd, - "target_ligand": target_ligand, - "model_ligand": model_ligand, - "chain_mapping": binding_site.GetFlatChainMapping(), - "transform": binding_site.transform, - "substructure_match": substructure_match, - "coverage": coverage, - "inconsistent_residues": binding_site.inconsistent_residues, - } - if self.unassigned: - lddt_pli_full_matrix[target_i, model_i][ - "unassigned"] = False - LogDebug("Saved lDDT-PLI") - - self._rmsd_full_matrix = rmsd_full_matrix - self._lddt_pli_full_matrix = lddt_pli_full_matrix - - @staticmethod - def _find_ligand_assignment(mat1, mat2=None, coverage=None, coverage_delta=None): - """ Find the ligand assignment based on mat1. If mat2 is provided, it - will be used to break ties in mat1. If mat2 is not provided, ties will - be resolved by taking the first match arbitrarily. - - Both mat1 and mat2 should "look" like RMSD - ie be between inf (bad) - and 0 (good). - """ - # We will modify mat1 and mat2, so make copies of it first - mat1 = np.copy(mat1) - if mat2 is None: - mat2 = np.copy(mat1) - mat2[~np.isnan(mat2)] = np.inf - else: - mat2 = np.copy(mat2) - if coverage is None: - coverage = np.copy(mat1) - coverage[:] = 1 # Assume full coverage by default - else: - coverage = np.copy(coverage) - - assignments = [] - if 0 in mat1.shape: - # No model or target ligand - LogDebug("No model or target ligand, returning no assignment.") - return assignments - - def _get_best_match(mat1_val, coverage_val): - """ Extract the row/column indices of the prediction matching the - given values.""" - mat1_match_idx = np.argwhere((mat1 == mat1_val) & (coverage >= coverage_val)) - # Multiple "best" - use mat2 to disambiguate - if len(mat1_match_idx) > 1: - # Get the values of mat2 at these positions - best_mat2_match = [mat2[tuple(x)] for x in mat1_match_idx] - # Find the index of the best mat2 - # Note: argmin returns the first value which is min. - best_mat2_idx = np.array(best_mat2_match).argmin() - # Now get the original indices - return mat1_match_idx[best_mat2_idx] - else: - return mat1_match_idx[0] - - # First only consider top coverage matches. - min_coverage = np.max(coverage) - while min_coverage > 0: - LogVerbose("Looking for matches with coverage >= %s" % min_coverage) - min_mat1 = LigandScorer._nanmin_nowarn(mat1, coverage < min_coverage) - while not np.isnan(min_mat1): - max_i_trg, max_i_mdl = _get_best_match(min_mat1, min_coverage) - - # Would we have a match for this model ligand with higher score - # but lower coverage? - alternative_matches = (mat1[:, max_i_mdl] < min_mat1) & ( - coverage[:, max_i_mdl] > (min_coverage - coverage_delta)) - if np.any(alternative_matches): - # Get the scores of these matches - LogVerbose("Found match with lower coverage but better score") - min_mat1 = np.nanmin(mat1[alternative_matches]) - max_i_trg, max_i_mdl = _get_best_match(min_mat1, min_coverage - coverage_delta) - - # Disable row and column - mat1[max_i_trg, :] = np.nan - mat1[:, max_i_mdl] = np.nan - mat2[max_i_trg, :] = np.nan - mat2[:, max_i_mdl] = np.nan - coverage[max_i_trg, :] = -np.inf - coverage[:, max_i_mdl] = -np.inf - - # Save - assignments.append((max_i_trg, max_i_mdl)) - - # Recompute min - min_mat1 = LigandScorer._nanmin_nowarn(mat1, coverage < min_coverage) - # Recompute min_coverage - min_coverage = np.max(coverage) - return assignments - - @staticmethod - def _nanmin_nowarn(array, mask): - """Compute np.nanmin but ignore the RuntimeWarning.""" - masked_array = np_ma.masked_array(array, mask=mask) - with warnings.catch_warnings(): # RuntimeWarning: All-NaN slice encountered - warnings.simplefilter("ignore") - min = np.nanmin(masked_array, ) - if np_ma.is_masked(min): - return np.nan # Everything was masked - else: - return min - - @staticmethod - def _reverse_lddt(lddt): - """Reverse lDDT means turning it from a number between 0 and 1 to a - number between infinity and 0 (0 being better). - - In practice, this is 1/lDDT. If lDDT is 0, the result is infinity. - """ - with warnings.catch_warnings(): # RuntimeWarning: divide by zero - warnings.simplefilter("ignore") - return np.float64(1) / lddt - - def _assign_ligands_rmsd(self): - """Assign (map) ligands between model and target. - - Sets self._rmsd and self._rmsd_details. - """ - mat2 = self._reverse_lddt(self.lddt_pli_matrix) - - mat_tuple = self._assign_matrices(self.rmsd_matrix, - mat2, - self._rmsd_full_matrix, - "rmsd") - self._rmsd = mat_tuple[0] - self._rmsd_details = mat_tuple[1] - # Ignore unassigned ligands - they are dealt with in lddt_pli. - # So the following lines should stay commented out: - # self._unassigned_target_ligands = mat_tuple[2] - # self._unassigned_model_ligands = mat_tuple[3] - - def _assign_matrices(self, mat1, mat2, data, main_key): - """ - Perform the ligand assignment, ie find the mapping between model and - target ligands. - - The algorithm starts by assigning the "best" mapping, and then discards - the target and model ligands (row, column) so that every model ligand - can be assigned to a single target ligand, and every target ligand - is only assigned to a single model ligand. Repeat until there is - nothing left to assign. - - In case of a tie in values in `mat1`, it uses `mat2` to break the tie. - - This algorithm doesn't guarantee a globally optimal assignment. - - Both `mat1` and `mat2` should contain values between 0 and infinity, - with lower values representing better scores. Use the - :meth:`_reverse_lddt` method to convert lDDT values to such a score. - - :param mat1: the main ligand assignment criteria (RMSD or lDDT-PLI) - :param mat2: the secondary ligand assignment criteria (lDDT-PLI or RMSD) - :param data: the data (either self._rmsd_full_matrix or self._lddt_pli_matrix) - :param main_key: the key of data (dictionnaries within `data`) to - assign into out_main. - :return: a tuple with 2 dictionaries of matrices containing the main - data, and details, respectively. - """ - assignments = self._find_ligand_assignment(mat1, mat2, - self._assignment_match_coverage, - self.coverage_delta) - out_main = {} - out_details = {} - assigned_trg = [False] * len(self.target_ligands) - assigned_mdl = [False] * len(self.model_ligands) - for assignment in assignments: - trg_idx, mdl_idx = assignment - assigned_mdl[mdl_idx] = True - assigned_trg[trg_idx] = True - mdl_lig = self.model_ligands[mdl_idx] - mdl_cname = mdl_lig.chain.name - mdl_resnum = mdl_lig.number - if mdl_cname not in out_main: - out_main[mdl_cname] = {} - out_details[mdl_cname] = {} - out_main[mdl_cname][mdl_resnum] = data[ - trg_idx, mdl_idx][main_key] - out_details[mdl_cname][mdl_resnum] = data[ - trg_idx, mdl_idx] - - unassigned_trg, unassigned_mdl = self._assign_unassigned( - assigned_trg, assigned_mdl, [out_main], [out_details], [main_key]) - return out_main, out_details, unassigned_trg, unassigned_mdl - - def _assign_unassigned(self, assigned_trg, assigned_mdl, - out_main, out_details, main_key): - unassigned_trg = {} - unassigned_mdl = {} - - unassigned_trg_idx = [i for i, x in enumerate(assigned_trg) if not x] - unassigned_mdl_idx = [i for i, x in enumerate(assigned_mdl) if not x] - - for mdl_idx in unassigned_mdl_idx: - mdl_lig = self.model_ligands[mdl_idx] - reason = self._find_unassigned_model_ligand_reason(mdl_lig, check=False) - mdl_cname = mdl_lig.chain.name - mdl_resnum = mdl_lig.number - if mdl_cname not in unassigned_mdl: - unassigned_mdl[mdl_cname] = {} - unassigned_mdl[mdl_cname][mdl_resnum] = reason - if self.unassigned: - for i, _ in enumerate(out_main): - if mdl_cname not in out_main[i]: - out_main[i][mdl_cname] = {} - out_details[i][mdl_cname] = {} - out_main[i][mdl_cname][mdl_resnum] = None - out_details[i][mdl_cname][mdl_resnum] = { - "unassigned": True, - "reason_short": reason[0], - "reason_long": reason[1], - main_key[i]: None, - } - LogInfo("Model ligand %s is unassigned: %s" % ( - mdl_lig.qualified_name, reason[1])) - - for trg_idx in unassigned_trg_idx: - trg_lig = self.target_ligands[trg_idx] - reason = self._find_unassigned_target_ligand_reason(trg_lig, check=False) - trg_cname = trg_lig.chain.name - trg_resnum = trg_lig.number - if trg_cname not in unassigned_trg: - unassigned_trg[trg_cname] = {} - unassigned_trg[trg_cname][trg_resnum] = reason - LogInfo("Target ligand %s is unassigned: %s" % ( - trg_lig.qualified_name, reason[1])) - - return unassigned_trg, unassigned_mdl - - - def _assign_matrix(self, mat, data1, main_key1, data2, main_key2): - """ - Perform the ligand assignment, ie find the mapping between model and - target ligands, based on a single matrix - - The algorithm starts by assigning the "best" mapping, and then discards - the target and model ligands (row, column) so that every model ligand - can be assigned to a single target ligand, and every target ligand - is only assigned to a single model ligand. Repeat until there is - nothing left to assign. - - This algorithm doesn't guarantee a globally optimal assignment. - - `mat` should contain values between 0 and infinity, - with lower values representing better scores. Use the - :meth:`_reverse_lddt` method to convert lDDT values to such a score. - - :param mat: the ligand assignment criteria (RMSD or lDDT-PLI) - :param data1: the first data (either self._rmsd_full_matrix or self._lddt_pli_matrix) - :param main_key1: the first key of data (dictionnaries within `data`) to - assign into out_main. - :param data2: the second data (either self._rmsd_full_matrix or self._lddt_pli_matrix) - :param main_key2: the second key of data (dictionnaries within `data`) to - assign into out_main. - :return: a tuple with 4 dictionaries of matrices containing the main - data1, details1, main data2 and details2, respectively. - """ - assignments = self._find_ligand_assignment(mat, - coverage=self._assignment_match_coverage, - coverage_delta=self.coverage_delta) - out_main1 = {} - out_details1 = {} - out_main2 = {} - out_details2 = {} - assigned_trg = [False] * len(self.target_ligands) - assigned_mdl = [False] * len(self.model_ligands) - for assignment in assignments: - trg_idx, mdl_idx = assignment - assigned_mdl[mdl_idx] = True - assigned_trg[trg_idx] = True - mdl_lig = self.model_ligands[mdl_idx] - mdl_cname = mdl_lig.chain.name - mdl_resnum = mdl_lig.number - # Data 1 - if mdl_cname not in out_main1: - out_main1[mdl_cname] = {} - out_details1[mdl_cname] = {} - out_main1[mdl_cname][mdl_resnum] = data1[ - trg_idx, mdl_idx][main_key1] - out_details1[mdl_cname][mdl_resnum] = data1[ - trg_idx, mdl_idx] - # Data2 - if mdl_cname not in out_main2: - out_main2[mdl_cname] = {} - out_details2[mdl_cname] = {} - out_main2[mdl_cname][mdl_resnum] = data2[ - trg_idx, mdl_idx][main_key2] - out_details2[mdl_cname][mdl_resnum] = data2[ - trg_idx, mdl_idx] - - unassigned_trg, unassigned_mdl = self._assign_unassigned( - assigned_trg, assigned_mdl, - [out_main1, out_main2], [out_details1, out_details2], - [main_key1, main_key2]) - - return out_main1, out_details1, out_main2, out_details2, \ - unassigned_trg, unassigned_mdl - - def _assign_ligands_lddt_pli(self): - """ Assign ligands based on lDDT-PLI. - - Sets self._lddt_pli and self._lddt_pli_details. - """ - mat1 = self._reverse_lddt(self.lddt_pli_matrix) - - mat_tuple = self._assign_matrices(mat1, - self.rmsd_matrix, - self._lddt_pli_full_matrix, - "lddt_pli") - self._lddt_pli = mat_tuple[0] - self._lddt_pli_details = mat_tuple[1] - self._unassigned_target_ligands = mat_tuple[2] - self._unassigned_model_ligands = mat_tuple[3] - - def _assign_ligands_rmsd_only(self): - """Assign (map) ligands between model and target based on RMSD only. - - Sets self._rmsd, self._rmsd_details, self._lddt_pli and - self._lddt_pli_details. - """ - mat_tuple = self._assign_matrix(self.rmsd_matrix, - self._rmsd_full_matrix, - "rmsd", - self._lddt_pli_full_matrix, - "lddt_pli") - self._rmsd = mat_tuple[0] - self._rmsd_details = mat_tuple[1] - self._lddt_pli = mat_tuple[2] - self._lddt_pli_details = mat_tuple[3] - self._unassigned_target_ligands = mat_tuple[4] - self._unassigned_model_ligands = mat_tuple[5] - - @property - def rmsd_matrix(self): - """ Get the matrix of RMSD values. - - Target ligands are in rows, model ligands in columns. - - NaN values indicate that no RMSD could be computed (i.e. different - ligands). - - :rtype: :class:`~numpy.ndarray` - """ - if self._rmsd_full_matrix is None: - self._compute_scores() - if self._rmsd_matrix is None: - # convert - shape = self._rmsd_full_matrix.shape - self._rmsd_matrix = np.full(shape, np.nan) - for i, j in np.ndindex(shape): - if self._rmsd_full_matrix[i, j] is not None: - self._rmsd_matrix[i, j] = self._rmsd_full_matrix[ - i, j]["rmsd"] - return self._rmsd_matrix - - @property - def lddt_pli_matrix(self): - """ Get the matrix of lDDT-PLI values. - - Target ligands are in rows, model ligands in columns. - - NaN values indicate that no lDDT-PLI could be computed (i.e. different - ligands). - - :rtype: :class:`~numpy.ndarray` - """ - if self._lddt_pli_full_matrix is None: - self._compute_scores() - if self._lddt_pli_matrix is None: - # convert - shape = self._lddt_pli_full_matrix.shape - self._lddt_pli_matrix = np.full(shape, np.nan) - for i, j in np.ndindex(shape): - if self._lddt_pli_full_matrix[i, j] is not None: - self._lddt_pli_matrix[i, j] = self._lddt_pli_full_matrix[ - i, j]["lddt_pli"] - return self._lddt_pli_matrix - - @property - def coverage_matrix(self): - """ Get the matrix of model ligand atom coverage in the target. - - Target ligands are in rows, model ligands in columns. - - A value of 0 indicates that there was no isomorphism between the model - and target ligands. If `substructure_match=False`, only full match - isomorphisms are considered, and therefore only values of 1.0 and 0.0 - are reported. - - :rtype: :class:`~numpy.ndarray` - """ - if self._assignment_match_coverage is None: - self._compute_scores() - return self._assignment_match_coverage - - @property - def rmsd(self): - """Get a dictionary of RMSD score values, keyed by model ligand - (chain name, :class:`~ost.mol.ResNum`). - - If the scoring object was instantiated with `unassigned=True`, some - scores may be `None`. - - :rtype: :class:`dict` - """ - if self._rmsd is None: - if self.rmsd_assignment: - self._assign_ligands_rmsd_only() - else: - self._assign_ligands_rmsd() - return self._rmsd - - @property - def rmsd_details(self): - """Get a dictionary of RMSD score details (dictionaries), keyed by - model ligand (chain name, :class:`~ost.mol.ResNum`). - - The value is a dictionary. For ligands that were assigned (mapped) to - the target, the dictionary contain the following information: - - * `rmsd`: the RMSD score value. - * `lddt_lp`: the lDDT score of the ligand pocket (lDDT-LP). - * `bs_ref_res`: a list of residues (:class:`~ost.mol.ResidueHandle`) - that define the binding site in the reference. - * `bs_ref_res_mapped`: a list of residues - (:class:`~ost.mol.ResidueHandle`) in the reference binding site - that could be mapped to the model. - * `bs_mdl_res_mapped`: a list of residues - (:class:`~ost.mol.ResidueHandle`) in the model that were mapped to - the reference binding site. The residues are in the same order as - `bs_ref_res_mapped`. - * `bb_rmsd`: the RMSD of the binding site backbone after superposition - * `target_ligand`: residue handle of the target ligand. - * `model_ligand`: residue handle of the model ligand. - * `chain_mapping`: local chain mapping as a dictionary, with target - chain name as key and model chain name as value. - * `transform`: transformation to superpose the model onto the target. - * `substructure_match`: whether the score is the result of a partial - (substructure) match. A value of `True` indicates that the target - ligand covers only part of the model, while `False` indicates a - perfect match. - * `coverage`: the fraction of model atoms covered by the assigned - target ligand, in the interval (0, 1]. If `substructure_match` - is `False`, this will always be 1. - * `inconsistent_residues`: a list of tuples of mapped residues views - (:class:`~ost.mol.ResidueView`) with residue names that differ - between the reference and the model, respectively. - The list is empty if all residue names match, which is guaranteed - if `check_resnames=True`. - Note: more binding site mappings may be explored during scoring, - but only inconsistencies in the selected mapping are reported. - * `unassigned`: only if the scorer was instantiated with - `unassigned=True`: `False` - - If the scoring object was instantiated with `unassigned=True`, in - addition the unassigned ligands will be reported with a score of `None` - and the following information: - - * `unassigned`: `True`, - * `reason_short`: a short token of the reason, see - :attr:`unassigned_model_ligands` for details and meaning. - * `reason_long`: a human-readable text of the reason, see - :attr:`unassigned_model_ligands` for details and meaning. - * `rmsd`: `None` - - :rtype: :class:`dict` - """ - if self._rmsd_details is None: - if self.rmsd_assignment: - self._assign_ligands_rmsd_only() - else: - self._assign_ligands_rmsd() - return self._rmsd_details - - @property - def lddt_pli(self): - """Get a dictionary of lDDT-PLI score values, keyed by model ligand - (chain name, :class:`~ost.mol.ResNum`). - - If the scoring object was instantiated with `unassigned=True`, some - scores may be `None`. - - :rtype: :class:`dict` - """ - if self._lddt_pli is None: - if self.rmsd_assignment: - self._assign_ligands_rmsd_only() - else: - self._assign_ligands_lddt_pli() - return self._lddt_pli - - @property - def lddt_pli_details(self): - """Get a dictionary of lDDT-PLI score details (dictionaries), keyed by - model ligand (chain name, :class:`~ost.mol.ResNum`). - - Each sub-dictionary contains the following information: - - * `lddt_pli`: the lDDT-PLI score value. - * `rmsd`: the RMSD score value corresponding to the lDDT-PLI - chain mapping and assignment. This may differ from the RMSD-based - assignment. Note that a different isomorphism than `lddt_pli` may - be used. - * `lddt_lp`: the lDDT score of the ligand pocket (lDDT-LP). - * `lddt_pli_n_contacts`: number of total contacts used in lDDT-PLI, - summed over all thresholds. Can be divided by 8 to obtain the number - of atomic contacts. - * `bs_ref_res`: a list of residues (:class:`~ost.mol.ResidueHandle`) - that define the binding site in the reference. - * `bs_ref_res_mapped`: a list of residues - (:class:`~ost.mol.ResidueHandle`) in the reference binding site - that could be mapped to the model. - * `bs_mdl_res_mapped`: a list of residues - (:class:`~ost.mol.ResidueHandle`) in the model that were mapped to - the reference binding site. The residues are in the same order as - `bs_ref_res_mapped`. - * `bb_rmsd`: the RMSD of the binding site backbone after superposition. - Note: not used for lDDT-PLI computation. - * `target_ligand`: residue handle of the target ligand. - * `model_ligand`: residue handle of the model ligand. - * `chain_mapping`: local chain mapping as a dictionary, with target - chain name as key and model chain name as value. - * `transform`: transformation to superpose the model onto the target - (for RMSD only). - * `substructure_match`: whether the score is the result of a partial - (substructure) match. A value of `True` indicates that the target - ligand covers only part of the model, while `False` indicates a - perfect match. - * `inconsistent_residues`: a list of tuples of mapped residues views - (:class:`~ost.mol.ResidueView`) with residue names that differ - between the reference and the model, respectively. - The list is empty if all residue names match, which is guaranteed - if `check_resnames=True`. - Note: more binding site mappings may be explored during scoring, - but only inconsistencies in the selected mapping are reported. - * `unassigned`: only if the scorer was instantiated with - `unassigned=True`: `False` - - If the scoring object was instantiated with `unassigned=True`, in - addition the unmapped ligands will be reported with a score of `None` - and the following information: - - * `unassigned`: `True`, - * `reason_short`: a short token of the reason, see - :attr:`unassigned_model_ligands` for details and meaning. - * `reason_long`: a human-readable text of the reason, see - :attr:`unassigned_model_ligands` for details and meaning. - * `lddt_pli`: `None` - - :rtype: :class:`dict` - """ - if self._lddt_pli_details is None: - if self.rmsd_assignment: - self._assign_ligands_rmsd_only() - else: - self._assign_ligands_lddt_pli() - return self._lddt_pli_details - - @property - def unassigned_target_ligands(self): - """Get a dictionary of target ligands not assigned to any model ligand, - keyed by target ligand (chain name, :class:`~ost.mol.ResNum`). - - The assignment for the lDDT-PLI score is used (and is controlled - by the `rmsd_assignment` argument). - - Each item contains a string from a controlled dictionary - about the reason for the absence of assignment. - A human-readable description can be obtained from the - :attr:`unassigned_target_ligand_descriptions` property. - - Currently, the following reasons are reported: - - * `no_ligand`: there was no ligand in the model. - * `disconnected`: the ligand graph was disconnected. - * `binding_site`: no residues were in proximity of the ligand. - * `model_representation`: no representation of the reference binding - site was found in the model. (I.e. the binding site was not modeled. - Remember: the binding site is defined in the target structure, - the position of the model ligand itself is ignored at this point.) - * `identity`: the ligand was not found in the model (by graph - isomorphism). Check your ligand connectivity, and enable the - `substructure_match` option if the target ligand is incomplete. - * `stoichiometry`: there was a possible assignment in the model, but - the model ligand was already assigned to a different target ligand. - This indicates different stoichiometries. - * `symmetries`: too many symmetries were found (by graph isomorphisms). - Increase `max_symmetries`. - - Some of these reasons can be overlapping, but a single reason will be - reported. - - :rtype: :class:`dict` - """ - if self._unassigned_target_ligand_short is None: - if self.rmsd_assignment: - self._assign_ligands_rmsd_only() - else: - self._assign_ligands_lddt_pli() - self._unassigned_target_ligand_short = {} - self._unassigned_target_ligand_descriptions = {} - for cname, res in self._unassigned_target_ligands.items(): - self._unassigned_target_ligand_short[cname] = {} - for resnum, val in res.items(): - self._unassigned_target_ligand_short[cname][resnum] = val[0] - self._unassigned_target_ligand_descriptions[val[0]] = val[1] - return self._unassigned_target_ligand_short - - @property - def unassigned_target_ligand_descriptions(self): - """Get a human-readable description of why target ligands were - unassigned, as a dictionary keyed by the controlled dictionary - from :attr:`unassigned_target_ligands`. - """ - if self._unassigned_target_ligand_descriptions is None: - _ = self.unassigned_target_ligands # assigned there - return self._unassigned_target_ligand_descriptions - - @property - def unassigned_model_ligands(self): - """Get a dictionary of model ligands not assigned to any target ligand, - keyed by model ligand (chain name, :class:`~ost.mol.ResNum`). - - The assignment for the lDDT-PLI score is used (and is controlled - by the `rmsd_assignment` argument). - - Each item contains a string from a controlled dictionary - about the reason for the absence of assignment. - A human-readable description can be obtained from the - :attr:`unassigned_model_ligand_descriptions` property. - Currently, the following reasons are reported: - - * `no_ligand`: there was no ligand in the target. - * `disconnected`: the ligand graph is disconnected. - * `binding_site`: a potential assignment was found in the target, but - there were no polymer residues in proximity of the ligand in the - target. - * `model_representation`: a potential assignment was found in the target, - but no representation of the binding site was found in the model. - (I.e. the binding site was not modeled. Remember: the binding site - is defined in the target structure, the position of the model ligand - itself is ignored at this point.) - * `identity`: the ligand was not found in the target (by graph - isomorphism). Check your ligand connectivity, and enable the - `substructure_match` option if the target ligand is incomplete. - * `stoichiometry`: there was a possible assignment in the target, but - the model target was already assigned to a different model ligand. - This indicates different stoichiometries. - * `symmetries`: too many symmetries were found (by graph isomorphisms). - Increase `max_symmetries`. - - Some of these reasons can be overlapping, but a single reason will be - reported. - - :rtype: :class:`dict` - """ - if self._unassigned_model_ligand_short is None: - if self.rmsd_assignment: - self._assign_ligands_rmsd_only() - else: - self._assign_ligands_lddt_pli() - self._unassigned_model_ligand_short = {} - self._unassigned_model_ligand_descriptions = {} - for cname, res in self._unassigned_model_ligands.items(): - self._unassigned_model_ligand_short[cname] = {} - for resnum, val in res.items(): - self._unassigned_model_ligand_short[cname][resnum] = val[0] - self._unassigned_model_ligand_descriptions[val[0]] = val[1] - return self._unassigned_model_ligand_short - - @property - def unassigned_model_ligand_descriptions(self): - """Get a human-readable description of why model ligands were - unassigned, as a dictionary keyed by the controlled dictionary - from :attr:`unassigned_model_ligands`. - """ - if self._unassigned_model_ligand_descriptions is None: - _ = self.unassigned_model_ligands # assigned there - return self._unassigned_model_ligand_descriptions - - - def _set_custom_mapping(self, mapping): - """ sets self.__model_mapping with a full blown MappingResult object - - :param mapping: mapping with trg chains as key and mdl ch as values - :type mapping: :class:`dict` - """ - chain_mapper = self.chain_mapper - chem_mapping, chem_group_alns, mdl = \ - chain_mapper.GetChemMapping(self.model) - - # now that we have a chem mapping, lets do consistency checks - # - check whether chain names are unique and available in structures - # - check whether the mapped chains actually map to the same chem groups - if len(mapping) != len(set(mapping.keys())): - raise RuntimeError(f"Expect unique trg chain names in mapping. Got " - f"{mapping.keys()}") - if len(mapping) != len(set(mapping.values())): - raise RuntimeError(f"Expect unique mdl chain names in mapping. Got " - f"{mapping.values()}") - - trg_chains = set([ch.GetName() for ch in chain_mapper.target.chains]) - mdl_chains = set([ch.GetName() for ch in mdl.chains]) - for k,v in mapping.items(): - if k not in trg_chains: - raise RuntimeError(f"Target chain \"{k}\" is not available " - f"in target processed for chain mapping " - f"({trg_chains})") - if v not in mdl_chains: - raise RuntimeError(f"Model chain \"{v}\" is not available " - f"in model processed for chain mapping " - f"({mdl_chains})") - - for trg_ch, mdl_ch in mapping.items(): - trg_group_idx = None - mdl_group_idx = None - for idx, group in enumerate(chain_mapper.chem_groups): - if trg_ch in group: - trg_group_idx = idx - break - for idx, group in enumerate(chem_mapping): - if mdl_ch in group: - mdl_group_idx = idx - break - if trg_group_idx is None or mdl_group_idx is None: - raise RuntimeError("Could not establish a valid chem grouping " - "of chain names provided in custom mapping.") - - if trg_group_idx != mdl_group_idx: - raise RuntimeError(f"Chem group mismatch in custom mapping: " - f"target chain \"{trg_ch}\" groups with the " - f"following chemically equivalent target " - f"chains: " - f"{chain_mapper.chem_groups[trg_group_idx]} " - f"but model chain \"{mdl_ch}\" maps to the " - f"following target chains: " - f"{chain_mapper.chem_groups[mdl_group_idx]}") - - pairs = set([(trg_ch, mdl_ch) for trg_ch, mdl_ch in mapping.items()]) - ref_mdl_alns = \ - chain_mapping._GetRefMdlAlns(chain_mapper.chem_groups, - chain_mapper.chem_group_alignments, - chem_mapping, - chem_group_alns, - pairs = pairs) - - # translate mapping format - final_mapping = list() - for ref_chains in chain_mapper.chem_groups: - mapped_mdl_chains = list() - for ref_ch in ref_chains: - if ref_ch in mapping: - mapped_mdl_chains.append(mapping[ref_ch]) - else: - mapped_mdl_chains.append(None) - final_mapping.append(mapped_mdl_chains) - - alns = dict() - for ref_group, mdl_group in zip(chain_mapper.chem_groups, - final_mapping): - for ref_ch, mdl_ch in zip(ref_group, mdl_group): - if ref_ch is not None and mdl_ch is not None: - aln = ref_mdl_alns[(ref_ch, mdl_ch)] - trg_view = chain_mapper.target.Select(f"cname={ref_ch}") - mdl_view = mdl.Select(f"cname={mdl_ch}") - aln.AttachView(0, trg_view) - aln.AttachView(1, mdl_view) - alns[(ref_ch, mdl_ch)] = aln - - self.__model_mapping = chain_mapping.MappingResult(chain_mapper.target, mdl, - chain_mapper.chem_groups, - chem_mapping, - final_mapping, alns) - - def _find_unassigned_model_ligand_reason(self, ligand, assignment="lddt_pli", check=True): - # Is this a model ligand? - try: - ligand_idx = self.model_ligands.index(ligand) - except ValueError: - # Raise with a better error message - raise ValueError("Ligand %s is not in self.model_ligands" % ligand) - - # Ensure we are unassigned - if check: - details = getattr(self, assignment + "_details") - if ligand.chain.name in details and ligand.number in details[ligand.chain.name]: - ligand_details = details[ligand.chain.name][ligand.number] - if not ("unassigned" in ligand_details and ligand_details["unassigned"]): - raise RuntimeError("Ligand %s is mapped to %s" % (ligand, ligand_details["target_ligand"])) - - # Were there any ligands in the target? - if len(self.target_ligands) == 0: - return ("no_ligand", "No ligand in the target") - - # Is the ligand disconnected? - graph = _ResidueToGraph(ligand) - if not networkx.is_connected(graph): - return ("disconnected", "Ligand graph is disconnected") - - # Do we have isomorphisms with the target? - for trg_lig_idx, assigned in enumerate(self._assignment_isomorphisms[:, ligand_idx]): - if np.isnan(assigned): - try: - _ComputeSymmetries( - self.model_ligands[ligand_idx], - self.target_ligands[trg_lig_idx], - substructure_match=self.substructure_match, - by_atom_index=True, - return_symmetries=False) - except (NoSymmetryError, DisconnectedGraphError): - assigned = 0. - except TooManySymmetriesError: - assigned = -1. - else: - assigned = 1. - self._assignment_isomorphisms[trg_lig_idx,ligand_idx] = assigned - if assigned == 1.: - # Could have been assigned - # So what's up with this target ligand? - assignment_matrix = getattr(self, assignment + "_matrix") - all_nan = np.all(np.isnan(assignment_matrix[:, ligand_idx])) - if all_nan: - # The assignment matrix is all nans so we have a problem - # with the binding site or the representation - trg_ligand = self.target_ligands[trg_lig_idx] - return self._unassigned_target_ligands_reason[trg_ligand] - else: - # Ligand was already assigned - return ("stoichiometry", - "Ligand was already assigned to an other " - "model ligand (different stoichiometry)") - elif assigned == -1: - # Symmetries / isomorphisms exceeded limit - return ("symmetries", - "Too many symmetries were found.") - - # Could not be assigned to any ligand - must be different - if self.substructure_match: - iso = "subgraph isomorphism" - else: - iso = "full graph isomorphism" - return ("identity", "Ligand was not found in the target (by %s)" % iso) - - def _find_unassigned_target_ligand_reason(self, ligand, assignment="lddt_pli", check=True): - # Is this a target ligand? - try: - ligand_idx = self.target_ligands.index(ligand) - except ValueError: - # Raise with a better error message - raise ValueError("Ligand %s is not in self.target_ligands" % ligand) - - # Ensure we are unassigned - if check: - details = getattr(self, assignment + "_details") - for cname, chain_ligands in details.items(): - for rnum, details in chain_ligands.items(): - if "unassigned" in details and details["unassigned"]: - continue - if details['target_ligand'] == ligand: - raise RuntimeError("Ligand %s is mapped to %s.%s" % ( - ligand, cname, rnum)) - - # Were there any ligands in the model? - if len(self.model_ligands) == 0: - return ("no_ligand", "No ligand in the model") - - # Is the ligand disconnected? - graph = _ResidueToGraph(ligand) - if not networkx.is_connected(graph): - return ("disconnected", "Ligand graph is disconnected") - - # Is it because there was no valid binding site or no representation? - if ligand in self._unassigned_target_ligands_reason: - return self._unassigned_target_ligands_reason[ligand] - # Or because no symmetry? - for model_lig_idx, assigned in enumerate( - self._assignment_isomorphisms[ligand_idx, :]): - if np.isnan(assigned): - try: - _ComputeSymmetries( - self.model_ligands[model_lig_idx], - self.target_ligands[ligand_idx], - substructure_match=self.substructure_match, - by_atom_index=True, - return_symmetries=False) - except (NoSymmetryError, DisconnectedGraphError): - assigned = 0. - except TooManySymmetriesError: - assigned = -1. - else: - assigned = 1. - self._assignment_isomorphisms[ligand_idx,model_lig_idx] = assigned - if assigned == 1: - # Could have been assigned but was assigned to a different ligand - return ("stoichiometry", - "Ligand was already assigned to an other " - "target ligand (different stoichiometry)") - elif assigned == -1: - # Symmetries / isomorphisms exceeded limit - return ("symmetries", - "Too many symmetries were found.") - - # Could not be assigned to any ligand - must be different - if self.substructure_match: - iso = "subgraph isomorphism" - else: - iso = "full graph isomorphism" - return ("identity", "Ligand was not found in the model (by %s)" % iso) - - -def _ResidueToGraph(residue, by_atom_index=False): - """Return a NetworkX graph representation of the residue. - - :param residue: the residue from which to derive the graph - :type residue: :class:`ost.mol.ResidueHandle` or - :class:`ost.mol.ResidueView` - :param by_atom_index: Set this parameter to True if you need the nodes to - be labeled by atom index (within the residue). - Otherwise, if False, the nodes will be labeled by - atom names. - :type by_atom_index: :class:`bool` - :rtype: :class:`~networkx.classes.graph.Graph` - - Nodes are labeled with the Atom's uppercase :attr:`~ost.mol.AtomHandle.element`. - """ - nxg = networkx.Graph() - - for atom in residue.atoms: - nxg.add_node(atom.name, element=atom.element.upper()) - - # This will list all edges twice - once for every atom of the pair. - # But as of NetworkX 3.0 adding the same edge twice has no effect, so we're good. - nxg.add_edges_from([( - b.first.name, - b.second.name) for a in residue.atoms for b in a.GetBondList()]) - - if by_atom_index: - nxg = networkx.relabel_nodes(nxg, - {a: b for a, b in zip( - [a.name for a in residue.atoms], - range(len(residue.atoms)))}, - True) - return nxg - - -def SCRMSD(model_ligand, target_ligand, transformation=geom.Mat4(), - substructure_match=False, max_symmetries=1e6): - """Calculate symmetry-corrected RMSD. - - Binding site superposition must be computed separately and passed as - `transformation`. - - :param model_ligand: The model ligand - :type model_ligand: :class:`ost.mol.ResidueHandle` or - :class:`ost.mol.ResidueView` - :param target_ligand: The target ligand - :type target_ligand: :class:`ost.mol.ResidueHandle` or - :class:`ost.mol.ResidueView` - :param transformation: Optional transformation to apply on each atom - position of model_ligand. - :type transformation: :class:`ost.geom.Mat4` - :param substructure_match: Set this to True to allow partial target - ligand. - :type substructure_match: :class:`bool` - :param max_symmetries: If more than that many isomorphisms exist, raise - a :class:`TooManySymmetriesError`. This can only be assessed by - generating at least that many isomorphisms and can take some time. - :type max_symmetries: :class:`int` - :rtype: :class:`float` - :raises: :class:`NoSymmetryError` when no symmetry can be found, - :class:`DisconnectedGraphError` when ligand graph is disconnected, - :class:`TooManySymmetriesError` when more than `max_symmetries` - isomorphisms are found. - """ - - symmetries = _ComputeSymmetries(model_ligand, target_ligand, - substructure_match=substructure_match, - by_atom_index=True, - max_symmetries=max_symmetries) - return _SCRMSD_symmetries(symmetries, model_ligand, target_ligand, - transformation) - - -def _SCRMSD_symmetries(symmetries, model_ligand, target_ligand, - transformation): - """Compute SCRMSD with pre-computed symmetries. Internal. """ - - best_rmsd = np.inf - for i, (trg_sym, mdl_sym) in enumerate(symmetries): - # Prepare Entities for RMSD - trg_lig_rmsd_ent = mol.CreateEntity() - trg_lig_rmsd_editor = trg_lig_rmsd_ent.EditXCS() - trg_lig_rmsd_chain = trg_lig_rmsd_editor.InsertChain("_") - trg_lig_rmsd_res = trg_lig_rmsd_editor.AppendResidue(trg_lig_rmsd_chain, "LIG") - - mdl_lig_rmsd_ent = mol.CreateEntity() - mdl_lig_rmsd_editor = mdl_lig_rmsd_ent.EditXCS() - mdl_lig_rmsd_chain = mdl_lig_rmsd_editor.InsertChain("_") - mdl_lig_rmsd_res = mdl_lig_rmsd_editor.AppendResidue(mdl_lig_rmsd_chain, "LIG") - - for mdl_anum, trg_anum in zip(mdl_sym, trg_sym): - # Rename model atoms according to symmetry - trg_atom = target_ligand.atoms[trg_anum] - mdl_atom = model_ligand.atoms[mdl_anum] - # Add atoms in the correct order to the RMSD entities - trg_lig_rmsd_editor.InsertAtom(trg_lig_rmsd_res, trg_atom.name, trg_atom.pos) - mdl_lig_rmsd_editor.InsertAtom(mdl_lig_rmsd_res, mdl_atom.name, mdl_atom.pos) - - trg_lig_rmsd_editor.UpdateICS() - mdl_lig_rmsd_editor.UpdateICS() - - rmsd = mol.alg.CalculateRMSD(mdl_lig_rmsd_ent.CreateFullView(), - trg_lig_rmsd_ent.CreateFullView(), - transformation) - if rmsd < best_rmsd: - best_rmsd = rmsd - - return best_rmsd - - -def _ComputeSymmetries(model_ligand, target_ligand, substructure_match=False, - by_atom_index=False, return_symmetries=True, - max_symmetries=1e6): - """Return a list of symmetries (isomorphisms) of the model onto the target - residues. - - :param model_ligand: The model ligand - :type model_ligand: :class:`ost.mol.ResidueHandle` or - :class:`ost.mol.ResidueView` - :param target_ligand: The target ligand - :type target_ligand: :class:`ost.mol.ResidueHandle` or - :class:`ost.mol.ResidueView` - :param substructure_match: Set this to True to allow partial ligands - in the reference. - :type substructure_match: :class:`bool` - :param by_atom_index: Set this parameter to True if you need the symmetries - to refer to atom index (within the residue). - Otherwise, if False, the symmetries refer to atom - names. - :type by_atom_index: :class:`bool` - :type return_symmetries: If Truthy, return the mappings, otherwise simply - return True if a mapping is found (and raise if - no mapping is found). This is useful to quickly - find out if a mapping exist without the expensive - step to find all the mappings. - :type return_symmetries: :class:`bool` - :param max_symmetries: If more than that many isomorphisms exist, raise - a :class:`TooManySymmetriesError`. This can only be assessed by - generating at least that many isomorphisms and can take some time. - :type max_symmetries: :class:`int` - :raises: :class:`NoSymmetryError` when no symmetry can be found; - :class:`TooManySymmetriesError` when more than `max_symmetries` - isomorphisms are found. - - """ - - # Get the Graphs of the ligands - model_graph = _ResidueToGraph(model_ligand, by_atom_index=by_atom_index) - target_graph = _ResidueToGraph(target_ligand, by_atom_index=by_atom_index) - - if not networkx.is_connected(model_graph): - raise DisconnectedGraphError("Disconnected graph for model ligand %s" % model_ligand) - if not networkx.is_connected(target_graph): - raise DisconnectedGraphError("Disconnected graph for target ligand %s" % target_ligand) - - # Note the argument order (model, target) which differs from spyrmsd. - # This is because a subgraph of model is isomorphic to target - but not the opposite - # as we only consider partial ligands in the reference. - # Make sure to generate the symmetries correctly in the end - gm = networkx.algorithms.isomorphism.GraphMatcher( - model_graph, target_graph, node_match=lambda x, y: - x["element"] == y["element"]) - if gm.is_isomorphic(): - if not return_symmetries: - return True - symmetries = [] - for i, isomorphism in enumerate(gm.isomorphisms_iter()): - if i >= max_symmetries: - raise TooManySymmetriesError( - "Too many symmetries between %s and %s" % ( - str(model_ligand), str(target_ligand))) - symmetries.append((list(isomorphism.values()), list(isomorphism.keys()))) - assert len(symmetries) > 0 - LogDebug("Found %s isomorphic mappings (symmetries)" % len(symmetries)) - elif gm.subgraph_is_isomorphic() and substructure_match: - if not return_symmetries: - return True - symmetries = [] - for i, isomorphism in enumerate(gm.subgraph_isomorphisms_iter()): - if i >= max_symmetries: - raise TooManySymmetriesError( - "Too many symmetries between %s and %s" % ( - str(model_ligand), str(target_ligand))) - symmetries.append((list(isomorphism.values()), list(isomorphism.keys()))) - assert len(symmetries) > 0 - # Assert that all the atoms in the target are part of the substructure - assert len(symmetries[0][0]) == len(target_ligand.atoms) - LogDebug("Found %s subgraph isomorphisms (symmetries)" % len(symmetries)) - elif gm.subgraph_is_isomorphic(): - LogDebug("Found subgraph isomorphisms (symmetries), but" - " ignoring because substructure_match=False") - raise NoSymmetryError("No symmetry between %s and %s" % ( - str(model_ligand), str(target_ligand))) - else: - LogDebug("Found no isomorphic mappings (symmetries)") - raise NoSymmetryError("No symmetry between %s and %s" % ( - str(model_ligand), str(target_ligand))) - - return symmetries - - -class NoSymmetryError(ValueError): - """Exception raised when no symmetry can be found. - """ - pass - - -class TooManySymmetriesError(ValueError): - """Exception raised when too many symmetries are found. - """ - pass - -class DisconnectedGraphError(Exception): - """Exception raised when the ligand graph is disconnected. - """ - pass - - -__all__ = ["LigandScorer", "SCRMSD", "NoSymmetryError", - "TooManySymmetriesError", "DisconnectedGraphError"] +from ost.mol.alg.ligand_scoring_base import * +from ost.mol.alg.ligand_scoring_lddtpli import * +from ost.mol.alg.ligand_scoring_scrmsd import * diff --git a/modules/mol/alg/pymod/ligand_scoring_base.py b/modules/mol/alg/pymod/ligand_scoring_base.py new file mode 100644 index 0000000000000000000000000000000000000000..7a38e4d3baf41fd2a14e9ab8f28b8c04661c6bbd --- /dev/null +++ b/modules/mol/alg/pymod/ligand_scoring_base.py @@ -0,0 +1,1219 @@ +import numpy as np +import networkx + +from ost import mol +from ost import LogWarning, LogScript, LogVerbose, LogDebug +from ost.mol.alg import chain_mapping + +class LigandScorer: + """ Scorer to compute various small molecule ligand (non polymer) scores. + + .. note :: + Extra requirements: + + - Python modules `numpy` and `networkx` must be available + (e.g. use ``pip install numpy networkx``) + + :class:`LigandScorer` is an abstract base class dealing with all the setup, + data storage, enumerating ligand symmetries and target/model ligand + matching/assignment. But actual score computation is delegated to child + classes. + + At the moment, two such classes are available: + + * :class:`ost.mol.alg.ligand_scoring_lddtpli.LDDTPLIScorer` + that assesses the conservation of protein-ligand + contacts + * :class:`ost.mol.alg.ligand_scoring_scrmsd.SCRMSDScorer` + that computes a binding-site superposed, symmetry-corrected RMSD. + + All versus all scores are available through the lazily computed + :attr:`score_matrix`. However, many things can go wrong... be it even + something as simple as two ligands not matching. Error states therefore + encode scoring issues. An Issue for a particular ligand is indicated by a + non-zero state in :attr:`model_ligand_states`/:attr:`target_ligand_states`. + This invalidates pairwise scores of such a ligand with all other ligands. + This and other issues in pairwise score computation are reported in + :attr:`state_matrix` which has the same size as :attr:`score_matrix`. + Only if the respective location is 0, a valid pairwise score can be + expected. The states and their meaning can be explored with code:: + + for state_code, (short_desc, desc) in scorer_obj.state_decoding.items(): + print(state_code) + print(short_desc) + print(desc) + + A common use case is to derive a one-to-one mapping between ligands in + the model and the target for which :class:`LigandScorer` provides an + automated assignment procedure. + By default, only exact matches between target and model ligands are + considered. This is a problem when the target only contains a subset + of the expected atoms (for instance if atoms are missing in an + experimental structure, which often happens in the PDB). With + `substructure_match=True`, complete model ligands can be scored against + partial target ligands. One problem with this approach is that it is + very easy to find good matches to small, irrelevant ligands like EDO, CO2 + or GOL. The assignment algorithm therefore considers the coverage, + expressed as the fraction of atoms of the model ligand atoms covered in the + target. Higher coverage matches are prioritized, but a match with a better + score will be preferred if it falls within a window of `coverage_delta` + (by default 0.2) of a worse-scoring match. As a result, for instance, + with a delta of 0.2, a low-score match with coverage 0.96 would be + preferred over a high-score match with coverage 0.70. + + Assumptions: + + :class:`LigandScorer` generally assumes that the + :attr:`~ost.mol.ResidueHandle.is_ligand` property is properly set on all + the ligand atoms, and only ligand atoms. This is typically the case for + entities loaded from mmCIF (tested with mmCIF files from the PDB and + SWISS-MODEL). Legacy PDB files must contain `HET` headers (which is usually + the case for files downloaded from the PDB but not elsewhere). + + The class doesn't perform any cleanup of the provided structures. + It is up to the caller to ensure that the data is clean and suitable for + scoring. :ref:`Molck <molck>` should be used with extra + care, as many of the options (such as `rm_non_std` or `map_nonstd_res`) can + cause ligands to be removed from the structure. If cleanup with Molck is + needed, ligands should be kept aside and passed separately. Non-ligand + residues should be valid compounds with atom names following the naming + conventions of the component dictionary. Non-standard residues are + acceptable, and if the model contains a standard residue at that position, + only atoms with matching names will be considered. + + Unlike most of OpenStructure, this class does not assume that the ligands + (either in the model or the target) are part of the PDB component + dictionary. They may have arbitrary residue names. Residue names do not + have to match between the model and the target. Matching is based on + the calculation of isomorphisms which depend on the atom element name and + atom connectivity (bond order is ignored). + It is up to the caller to ensure that the connectivity of atoms is properly + set before passing any ligands to this class. Ligands with improper + connectivity will lead to bogus results. + + Note, however, that atom names should be unique within a residue (ie two + distinct atoms cannot have the same atom name). + + This only applies to the ligand. The rest of the model and target + structures (protein, nucleic acids) must still follow the usual rules and + contain only residues from the compound library. + + Although it isn't a requirement, hydrogen atoms should be removed from the + structures. Here is an example code snippet that will perform a reasonable + cleanup. Keep in mind that this is most likely not going to work as + expected with entities loaded from PDB files, as the `is_ligand` flag is + probably not set properly. + + Here is an example of how to use setup a scorer code:: + + from ost.mol.alg.ligand_scoring_scrmsd import SCRMSDScorer + from ost.mol.alg import Molck, MolckSettings + + # Load data + # Structure model in PDB format, containing the receptor only + model = io.LoadPDB("path_to_model.pdb") + # Ligand model as SDF file + model_ligand = io.LoadEntity("path_to_ligand.sdf", format="sdf") + # Target loaded from mmCIF, containing the ligand + target = io.LoadMMCIF("path_to_target.cif") + + # Cleanup a copy of the structures + cleaned_model = model.Copy() + cleaned_target = target.Copy() + molck_settings = MolckSettings(rm_unk_atoms=True, + rm_non_std=False, + rm_hyd_atoms=True, + rm_oxt_atoms=False, + rm_zero_occ_atoms=False, + colored=False, + map_nonstd_res=False, + assign_elem=True) + Molck(cleaned_model, conop.GetDefaultLib(), molck_settings) + Molck(cleaned_target, conop.GetDefaultLib(), molck_settings) + + # Setup scorer object and compute lDDT-PLI + model_ligands = [model_ligand.Select("ele != H")] + sc = SCRMSDScorer(cleaned_model, cleaned_target, model_ligands) + + # Perform assignment and read respective scores + for lig_pair in sc.assignment: + trg_lig = sc.target_ligands[lig_pair[0]] + mdl_lig = sc.model_ligands[lig_pair[1]] + score = sc.score_matrix[lig_pair[0], lig_pair[1]] + print(f"Score for {trg_lig} and {mdl_lig}: {score}") + + :param model: Model structure - a deep copy is available as :attr:`model`. + No additional processing (ie. Molck), checks, + stereochemistry checks or sanitization is performed on the + input. Hydrogen atoms are kept. + :type model: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` + :param target: Target structure - a deep copy is available as + :attr:`target`. No additional processing (ie. Molck), checks + or sanitization is performed on the input. Hydrogen atoms are + kept. + :type target: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` + :param model_ligands: Model ligands, as a list of + :class:`~ost.mol.ResidueHandle` belonging to the model + entity. Can be instantiated with either a :class:list + of :class:`~ost.mol.ResidueHandle`/ + :class:`ost.mol.ResidueView` or of + :class:`ost.mol.EntityHandle`/ + :class:`ost.mol.EntityView`. + If `None`, ligands will be extracted based on the + :attr:`~ost.mol.ResidueHandle.is_ligand` flag (this is + normally set properly in entities loaded from mmCIF). + :type model_ligands: :class:`list` + :param target_ligands: Target ligands, as a list of + :class:`~ost.mol.ResidueHandle` belonging to the + target entity. Can be instantiated either a + :class:list of :class:`~ost.mol.ResidueHandle`/ + :class:`ost.mol.ResidueView` or of + :class:`ost.mol.EntityHandle`/ + :class:`ost.mol.EntityView` containing a single + residue each. If `None`, ligands will be extracted + based on the :attr:`~ost.mol.ResidueHandle.is_ligand` + flag (this is normally set properly in entities + loaded from mmCIF). + :type target_ligands: :class:`list` + :param resnum_alignments: Whether alignments between chemically equivalent + chains in *model* and *target* can be computed + based on residue numbers. This can be assumed in + benchmarking setups such as CAMEO/CASP. + :type resnum_alignments: :class:`bool` + :param rename_ligand_chain: If a residue with the same chain name and + residue number than an explicitly passed model + or target ligand exits in the structure, + and `rename_ligand_chain` is False, a + RuntimeError will be raised. If + `rename_ligand_chain` is True, the ligand will + be moved to a new chain instead, and the move + will be logged to the console with SCRIPT + level. + :type rename_ligand_chain: :class:`bool` + :param substructure_match: Set this to True to allow incomplete (i.e. + partially resolved) target ligands. + :type substructure_match: :class:`bool` + :param coverage_delta: the coverage delta for partial ligand assignment. + :type coverage_delta: :class:`float` + :param max_symmetries: If more than that many isomorphisms exist for + a target-ligand pair, it will be ignored and reported + as unassigned. + :type max_symmetries: :class:`int` + """ + + def __init__(self, model, target, model_ligands=None, target_ligands=None, + resnum_alignments=False, rename_ligand_chain=False, + substructure_match=False, coverage_delta=0.2, + max_symmetries=1e5): + + if isinstance(model, mol.EntityView): + self.model = mol.CreateEntityFromView(model, False) + elif isinstance(model, mol.EntityHandle): + self.model = model.Copy() + else: + raise RuntimeError("model must be of type EntityView/EntityHandle") + + if isinstance(target, mol.EntityView): + self.target = mol.CreateEntityFromView(target, False) + elif isinstance(target, mol.EntityHandle): + self.target = target.Copy() + else: + raise RuntimeError("target must be of type EntityView/EntityHandle") + + # Extract ligands from target + if target_ligands is None: + self.target_ligands = self._extract_ligands(self.target) + else: + self.target_ligands = self._prepare_ligands(self.target, target, + target_ligands, + rename_ligand_chain) + if len(self.target_ligands) == 0: + LogWarning("No ligands in the target") + + # Extract ligands from model + if model_ligands is None: + self.model_ligands = self._extract_ligands(self.model) + else: + self.model_ligands = self._prepare_ligands(self.model, model, + model_ligands, + rename_ligand_chain) + if len(self.model_ligands) == 0: + LogWarning("No ligands in the model") + if len(self.target_ligands) == 0: + raise ValueError("No ligand in the model and in the target") + + self.resnum_alignments = resnum_alignments + self.rename_ligand_chain = rename_ligand_chain + self.substructure_match = substructure_match + self.coverage_delta = coverage_delta + self.max_symmetries = max_symmetries + + # lazily computed attributes + self.__chain_mapper = None + + # keep track of states + # simple integers instead of enums - encoding available in + # self.state_decoding + self._state_matrix = None + self._model_ligand_states = None + self._target_ligand_states = None + + # score matrices + self._score_matrix = None + self._coverage_matrix = None + self._aux_matrix = None + + # assignment and derived data + self._assignment = None + self._score_dict = None + self._aux_dict = None + + # human readable description of states - child class must extend with + # with child class specific states + # each state code comes with a tuple of two elements: + # 1) short description 2) human readable description + # The actual states are set in _compute_scores in :class:`LigandScorer` + # or _compute_score of the child class. + if self.substructure_match: + iso = "subgraph isomorphism" + else: + iso = "full graph isomorphism" + + self.state_decoding = \ + {0: ("OK", "OK"), + 1: ("identity", f"Ligands could not be matched (by {iso})"), + 2: ("symmetries", "Too many symmetries between ligand atoms were " + "found - increasing max_symmetries might help"), + 3: ("no_iso", "No fully isomorphic match could be found - enabling " + "substructure_match might allow a match"), + 4: ("disconnected", "Ligand graph is disconnected"), + 5: ("stoichiometry", "Ligand was already assigned to another ligand " + "(different stoichiometry)"), + 6: ("single_ligand_issue", "Cannot compute valid pairwise score as " + "either model or target ligand have non-zero state."), + 9: ("unknown", "An unknown error occured in LigandScorer")} + + @property + def state_matrix(self): + """ Encodes states of ligand pairs + + Ligand pairs can be matched and a valid score can be expected if + respective location in this matrix is 0. + Target ligands are in rows, model ligands in columns. States are encoded + as integers <= 9. Larger numbers encode errors for child classes. + Use something like ``self.state_decoding[3]`` to get a decscription. + + :rtype: :class:`~numpy.ndarray` + """ + if self._state_matrix is None: + self._compute_scores() + return self._state_matrix + + @property + def model_ligand_states(self): + """ Encodes states of model ligands + + Non-zero state in any of the model ligands invalidates the full + respective column in :attr:`~state_matrix`. + + :rtype: :class:`~numpy.ndarray` + """ + if self._model_ligand_states is None: + self._compute_scores() + return self._model_ligand_states + + @property + def target_ligand_states(self): + """ Encodes states of target ligands + + Non-zero state in any of the target ligands invalidates the full + respective row in :attr:`~state_matrix`. + + :rtype: :class:`~numpy.ndarray` + """ + if self._target_ligand_states is None: + self._compute_scores() + return self._target_ligand_states + + @property + def score_matrix(self): + """ Get the matrix of scores. + + Target ligands are in rows, model ligands in columns. + + NaN values indicate that no value could be computed (i.e. different + ligands). In other words: values are only valid if the respective + location in :attr:`~state_matrix` is 0. + + :rtype: :class:`~numpy.ndarray` + """ + if self._score_matrix is None: + self._compute_scores() + return self._score_matrix + + @property + def coverage_matrix(self): + """ Get the matrix of model ligand atom coverage in the target. + + Target ligands are in rows, model ligands in columns. + + NaN values indicate that no value could be computed (i.e. different + ligands). In other words: values are only valid if the respective + location in :attr:`~state_matrix` is 0. If `substructure_match=False`, + only full match isomorphisms are considered, and therefore only values + of 1.0 can be observed. + + :rtype: :class:`~numpy.ndarray` + """ + if self._coverage_matrix is None: + self._compute_scores() + return self._coverage_matrix + + @property + def aux_matrix(self): + """ Get the matrix of scorer specific auxiliary data. + + Target ligands are in rows, model ligands in columns. + + Auxiliary data consists of arbitrary data dicts which allow a child + class to provide additional information for a scored ligand pair. + empty dictionaries indicate that the child class simply didn't return + anything or that no value could be computed (e.g. different ligands). + In other words: values are only valid if respective location in the + :attr:`~state_matrix` is 0. + + :rtype: :class:`~numpy.ndarray` + """ + if self._aux_matrix is None: + self._compute_scores() + return self._aux_matrix + + @property + def assignment(self): + """ Ligand assignment based on computed scores + + Implements a greedy algorithm to assign target and model ligands + with each other. Starts from each valid ligand pair as indicated + by a state of 0 in :attr:`state_matrix`. Each iteration first selects + high coverage pairs. Given max_coverage defined as the highest + coverage observed in the available pairs, all pairs with coverage + in [max_coverage-*coverage_delta*, max_coverage] are selected. + The best scoring pair among those is added to the assignment + and the whole process is repeated until there are no ligands to + assign anymore. + + :rtype: :class:`list` of :class:`tuple` (trg_lig_idx, mdl_lig_idx) + """ + if self._assignment is None: + self._assignment = list() + # Build working array that contains tuples for all mdl/trg ligand + # pairs with valid score as indicated by a state of 0: + # (score, coverage, trg_ligand_idx, mdl_ligand_idx) + tmp = list() + for trg_idx in range(self.score_matrix.shape[0]): + for mdl_idx in range(self.score_matrix.shape[1]): + if self.state_matrix[trg_idx, mdl_idx] == 0: + tmp.append((self.score_matrix[trg_idx, mdl_idx], + self.coverage_matrix[trg_idx, mdl_idx], + trg_idx, mdl_idx)) + + # sort by score, such that best scoring item is in front + if self._score_dir() == '+': + tmp.sort(reverse=True) + elif self._score_dir() == '-': + tmp.sort() + else: + raise RuntimeError("LigandScorer._score_dir must return one in " + "['+', '-']") + + while len(tmp) > 0: + # select high coverage ligand pairs in working array + coverage_thresh = max([x[1] for x in tmp]) - self.coverage_delta + top_coverage = [x for x in tmp if x[1] >= coverage_thresh] + + # working array is sorted by score => just pick first one + a = top_coverage[0][2] # selected trg_ligand_idx + b = top_coverage[0][3] # selected mdl_ligand_idx + self._assignment.append((a, b)) + + # kick out remaining pairs involving these ligands + tmp = [x for x in tmp if (x[2] != a and x[3] != b)] + + return self._assignment + + @property + def score(self): + """ Get a dictionary of score values, keyed by model ligand + + Extract score with something like: + ``scorer.score[lig.GetChain().GetName()][lig.GetNumber()]``. + The returned scores are based on :attr:`~assignment`. + + :rtype: :class:`dict` + """ + if self._score_dict is None: + self._score_dict = dict() + for (trg_lig_idx, mdl_lig_idx) in self.assignment: + mdl_lig = self.model_ligands[mdl_lig_idx] + cname = mdl_lig.GetChain().GetName() + rnum = mdl_lig.GetNumber() + if cname not in self._score_dict: + self._score_dict[cname] = dict() + score = self.score_matrix[trg_lig_idx, mdl_lig_idx] + self._score_dict[cname][rnum] = score + return self._score_dict + + @property + def aux(self): + """ Get a dictionary of score details, keyed by model ligand + + Extract dict with something like: + ``scorer.score[lig.GetChain().GetName()][lig.GetNumber()]``. + The returned info dicts are based on :attr:`~assignment`. The content is + documented in the respective child class. + + :rtype: :class:`dict` + """ + if self._aux_dict is None: + self._aux_dict = dict() + for (trg_lig_idx, mdl_lig_idx) in self.assignment: + mdl_lig = self.model_ligands[mdl_lig_idx] + cname = mdl_lig.GetChain().GetName() + rnum = mdl_lig.GetNumber() + if cname not in self._aux_dict: + self._aux_dict[cname] = dict() + d = self.aux_matrix[trg_lig_idx, mdl_lig_idx] + self._aux_dict[cname][rnum] = d + return self._aux_dict + + @property + def unassigned_target_ligands(self): + """ Get indices of target ligands which are not assigned + + :rtype: :class:`list` of :class:`int` + """ + # compute on-the-fly, no need for caching + assigned = set([x[0] for x in self.assignment]) + return [x for x in range(len(self.target_ligands)) if x not in assigned] + + @property + def unassigned_model_ligands(self): + """ Get indices of model ligands which are not assigned + + :rtype: :class:`list` of :class:`int` + """ + # compute on-the-fly, no need for caching + assigned = set([x[1] for x in self.assignment]) + return [x for x in range(len(self.model_ligands)) if x not in assigned] + + def get_target_ligand_state_report(self, trg_lig_idx): + """ Get summary of states observed with respect to all model ligands + + Mainly for debug purposes + + :param trg_lig_idx: Index of target ligand for which report should be + generated + :type trg_lig_idx: :class:`int` + """ + return self._get_report(self.target_ligand_states[trg_lig_idx], + self.state_matrix[trg_lig_idx,:]) + + def get_model_ligand_state_report(self, mdl_lig_idx): + """ Get summary of states observed with respect to all target ligands + + Mainly for debug purposes + + :param mdl_lig_idx: Index of model ligand for which report should be + generated + :type mdl_lig_idx: :class:`int` + """ + return self._get_report(self.model_ligand_states[mdl_lig_idx], + self.state_matrix[:, mdl_lig_idx]) + + def _get_report(self, ligand_state, pair_states): + """ Helper + """ + pair_report = list() + for s in np.unique(pair_states): + desc = self.state_decoding[s] + indices = np.flatnonzero(pair_states == s).tolist() + pair_report.append({"state": s, + "short desc": desc[0], + "desc": desc[1], + "indices": indices}) + + desc = self.state_decoding[ligand_state] + ligand_report = {"state": ligand_state, + "short desc": desc[0], + "desc": desc[1]} + + return (ligand_report, pair_report) + + def guess_target_ligand_unassigned_reason(self, trg_lig_idx): + """ Makes an educated guess why target ligand is not assigned + + This either returns actual error states or custom states that are + derived from them. + + :param trg_lig_idx: Index of target ligand + :type trg_lig_idx: :class:`int` + :returns: :class:`tuple` with two elements: 1) keyword 2) human readable + sentence describing the issue, (\"unknown\",\"unknown\") if + nothing obvious can be found. + :raises: :class:`RuntimeError` if specified target ligand is assigned + """ + if trg_lig_idx not in self.unassigned_target_ligands: + raise RuntimeError("Specified target ligand is not unassigned") + + # hardcoded tuple if there is simply nothing we can assign it to + if len(self.model_ligands) == 0: + return ("no_ligand", "No ligand in the model") + + # if something with the ligand itself is wrong, we can be pretty sure + # thats why the ligand is unassigned + if self.target_ligand_states[trg_lig_idx] != 0: + return self.state_decoding[self.target_ligand_states[trg_lig_idx]] + + # The next best guess comes from looking at pair states + tmp = np.unique(self.state_matrix[trg_lig_idx,:]) + + # In case of any 0, it could have been assigned so it's probably + # just not selected due to different stoichiometry - this is no + # defined state, we just return a hardcoded tuple in this case + if 0 in tmp: + return ("stoichiometry", + "Ligand was already assigned to an other " + "model ligand (different stoichiometry)") + + # maybe its a symmetry issue? + if 2 in tmp: + return self.state_decoding[2] + + # if the state is 6 (single_ligand_issue), there is an issue with its + # target counterpart. + if 6 in tmp: + mdl_idx = np.where(self.state_matrix[trg_lig_idx,:]==6)[0] + # we're reporting everything except disconnected error... + # don't ask... + for i in mdl_idx: + if self.model_ligand_states[i] == 0: + raise RuntimeError("This should never happen") + if self.model_ligand_states[i] != 4: + return self.state_decoding[self.model_ligand_states[i]] + + # get rid of remaining single ligand issues (only disconnected error) + if 6 in tmp and len(tmp) > 1: + tmp = tmp[tmp!=6] + + # prefer everything over identity state + if 1 in tmp and len(tmp) > 1: + tmp = tmp[tmp!=1] + + # just return whatever is left + return self.state_decoding[tmp[0]] + + + def guess_model_ligand_unassigned_reason(self, mdl_lig_idx): + """ Makes an educated guess why model ligand is not assigned + + This either returns actual error states or custom states that are + derived from them. + + :param mdl_lig_idx: Index of model ligand + :type mdl_lig_idx: :class:`int` + :returns: :class:`tuple` with two elements: 1) keyword 2) human readable + sentence describing the issue, (\"unknown\",\"unknown\") if + nothing obvious can be found. + :raises: :class:`RuntimeError` if specified model ligand is assigned + """ + if mdl_lig_idx not in self.unassigned_model_ligands: + raise RuntimeError("Specified model ligand is not unassigned") + + # hardcoded tuple if there is simply nothing we can assign it to + if len(self.target_ligands) == 0: + return ("no_ligand", "No ligand in the target") + + # if something with the ligand itself is wrong, we can be pretty sure + # thats why the ligand is unassigned + if self.model_ligand_states[mdl_lig_idx] != 0: + return self.state_decoding[self.model_ligand_states[mdl_lig_idx]] + + # The next best guess comes from looking at pair states + tmp = np.unique(self.state_matrix[:,mdl_lig_idx]) + + # In case of any 0, it could have been assigned so it's probably + # just not selected due to different stoichiometry - this is no + # defined state, we just return a hardcoded tuple in this case + if 0 in tmp: + return ("stoichiometry", + "Ligand was already assigned to an other " + "model ligand (different stoichiometry)") + + # maybe its a symmetry issue? + if 2 in tmp: + return self.state_decoding[2] + + # if the state is 6 (single_ligand_issue), there is an issue with its + # target counterpart. + if 6 in tmp: + trg_idx = np.where(self.state_matrix[:,mdl_lig_idx]==6)[0] + # we're reporting everything except disconnected error... + # don't ask... + for i in trg_idx: + if self.target_ligand_states[i] == 0: + raise RuntimeError("This should never happen") + if self.target_ligand_states[i] != 4: + return self.state_decoding[self.target_ligand_states[i]] + + # get rid of remaining single ligand issues (only disconnected error) + if 6 in tmp and len(tmp) > 1: + tmp = tmp[tmp!=6] + + # prefer everything over identity state + if 1 in tmp and len(tmp) > 1: + tmp = tmp[tmp!=1] + + # just return whatever is left + return self.state_decoding[tmp[0]] + + @property + def unassigned_model_ligands_reasons(self): + return_dict = dict() + for i in self.unassigned_model_ligands: + lig = self.model_ligands[i] + cname = lig.GetChain().GetName() + rnum = lig.GetNumber() + if cname not in return_dict: + return_dict[cname] = dict() + return_dict[cname][rnum] = \ + self.guess_model_ligand_unassigned_reason(i)[0] + return return_dict + + @property + def unassigned_target_ligands_reasons(self): + return_dict = dict() + for i in self.unassigned_target_ligands: + lig = self.target_ligands[i] + cname = lig.GetChain().GetName() + rnum = lig.GetNumber() + if cname not in return_dict: + return_dict[cname] = dict() + return_dict[cname][rnum] = \ + self.guess_target_ligand_unassigned_reason(i)[0] + return return_dict + + @property + def _chain_mapper(self): + """ Chain mapper object for the given :attr:`target`. + + Can be used by child classes if needed, constructed with + *resnum_alignments* flag + + :type: :class:`ost.mol.alg.chain_mapping.ChainMapper` + """ + if self.__chain_mapper is None: + self.__chain_mapper = \ + chain_mapping.ChainMapper(self.target, + n_max_naive=1e9, + resnum_alignments=self.resnum_alignments) + return self.__chain_mapper + + @staticmethod + def _extract_ligands(entity): + """Extract ligands from entity. Return a list of residues. + + Assumes that ligands have the :attr:`~ost.mol.ResidueHandle.is_ligand` + flag set. This is typically the case for entities loaded from mmCIF + (tested with mmCIF files from the PDB and SWISS-MODEL). + Legacy PDB files must contain `HET` headers (which is usually the + case for files downloaded from the PDB but not elsewhere). + + This function performs basic checks to ensure that the residues in this + chain are not forming polymer bonds (ie peptide/nucleotide ligands) and + will raise a RuntimeError if this assumption is broken. + + :param entity: the entity to extract ligands from + :type entity: :class:`~ost.mol.EntityHandle` + :rtype: :class:`list` of :class:`~ost.mol.ResidueHandle` + + """ + extracted_ligands = [] + for residue in entity.residues: + if residue.is_ligand: + if mol.InSequence(residue, residue.next): + raise RuntimeError("Residue %s connected in polymer sequen" + "ce %s" % (residue.qualified_name)) + extracted_ligands.append(residue) + LogVerbose("Detected residue %s as ligand" % residue) + return extracted_ligands + + @staticmethod + def _prepare_ligands(new_entity, old_entity, ligands, rename_chain): + """Prepare the ligands given into a list of ResidueHandles which are + part of the copied entity, suitable for the model_ligands and + target_ligands properties. + + This function takes a list of ligands as (Entity|Residue)(Handle|View). + Entities can contain multiple ligands, which will be considered as + separate ligands. + + Ligands which are part of the entity are simply fetched in the new + copied entity. Otherwise, they are copied over to the copied entity. + """ + extracted_ligands = [] + + next_chain_num = 1 + new_editor = None + + def _copy_residue(residue, rename_chain): + """ Copy the residue into the new chain. + Return the new residue handle.""" + nonlocal next_chain_num, new_editor + + # Instantiate the editor + if new_editor is None: + new_editor = new_entity.EditXCS() + + new_chain = new_entity.FindChain(residue.chain.name) + if not new_chain.IsValid(): + new_chain = new_editor.InsertChain(residue.chain.name) + new_editor.SetChainType(new_chain, + mol.ChainType.CHAINTYPE_NON_POLY) + else: + # Does a residue with the same name already exist? + already_exists = new_chain.FindResidue(residue.number).IsValid() + if already_exists: + if rename_chain: + chain_ext = 2 # Extend the chain name by this + while True: + new_chain_name = \ + residue.chain.name + "_" + str(chain_ext) + new_chain = new_entity.FindChain(new_chain_name) + if new_chain.IsValid(): + chain_ext += 1 + continue + else: + new_chain = \ + new_editor.InsertChain(new_chain_name) + break + LogScript("Moved ligand residue %s to new chain %s" % ( + residue.qualified_name, new_chain.name)) + else: + msg = \ + "A residue number %s already exists in chain %s" % ( + residue.number, residue.chain.name) + raise RuntimeError(msg) + + # Add the residue with its original residue number + new_res = new_editor.AppendResidue(new_chain, residue.name, + residue.number) + # Add atoms + for old_atom in residue.atoms: + new_editor.InsertAtom(new_res, old_atom.name, old_atom.pos, + element=old_atom.element, occupancy=old_atom.occupancy, + b_factor=old_atom.b_factor, is_hetatm=old_atom.is_hetatom) + # Add bonds + for old_atom in residue.atoms: + for old_bond in old_atom.bonds: + new_first = new_res.FindAtom(old_bond.first.name) + new_second = new_res.FindAtom(old_bond.second.name) + new_editor.Connect(new_first, new_second) + return new_res + + def _process_ligand_residue(res, rename_chain): + """Copy or fetch the residue. Return the residue handle.""" + new_res = None + if res.entity.handle == old_entity.handle: + # Residue is part of the old_entity handle. + # However, it may not be in the copied one, for instance it may + # have been a view We try to grab it first, otherwise we copy it + new_res = new_entity.FindResidue(res.chain.name, res.number) + if new_res and new_res.valid: + qname = res.handle.qualified_name + LogVerbose("Ligand residue %s already in entity" % qname) + else: + # Residue is not part of the entity, need to copy it first + new_res = _copy_residue(res, rename_chain) + qname = res.handle.qualified_name + LogVerbose("Copied ligand residue %s" % qname) + new_res.SetIsLigand(True) + return new_res + + for ligand in ligands: + is_eh = isinstance(ligand, mol.EntityHandle) + is_ev = isinstance(ligand, mol.EntityView) + is_rh = isinstance(ligand, mol.ResidueHandle) + is_rv = isinstance(ligand, mol.ResidueView) + if is_eh or is_ev: + for residue in ligand.residues: + new_residue = _process_ligand_residue(residue, rename_chain) + extracted_ligands.append(new_residue) + elif is_rh or is_rv: + new_residue = _process_ligand_residue(ligand, rename_chain) + extracted_ligands.append(new_residue) + else: + raise RuntimeError("Ligands should be given as Entity or " + "Residue") + + if new_editor is not None: + new_editor.UpdateICS() + return extracted_ligands + + def _compute_scores(self): + """ + Compute score for every possible target-model ligand pair and store the + result in internal matrices. + """ + ############################## + # Create the result matrices # + ############################## + shape = (len(self.target_ligands), len(self.model_ligands)) + self._score_matrix = np.full(shape, np.nan, dtype=np.float32) + self._coverage_matrix = np.full(shape, np.nan, dtype=np.float32) + self._state_matrix = np.full(shape, 0, dtype=np.int32) + self._model_ligand_states = np.zeros(len(self.model_ligands)) + self._target_ligand_states = np.zeros(len(self.target_ligands)) + self._aux_matrix = np.empty(shape, dtype=dict) + + # precompute ligand graphs + target_graphs = \ + [_ResidueToGraph(l, by_atom_index=True) for l in self.target_ligands] + model_graphs = \ + [_ResidueToGraph(l, by_atom_index=True) for l in self.model_ligands] + + for g_idx, g in enumerate(target_graphs): + if not networkx.is_connected(g): + self._target_ligand_states[g_idx] = 4 + self._state_matrix[g_idx,:] = 6 + msg = "Disconnected graph observed for target ligand " + msg += str(self.target_ligands[g_idx]) + LogVerbose(msg) + + for g_idx, g in enumerate(model_graphs): + if not networkx.is_connected(g): + self._model_ligand_states[g_idx] = 4 + self._state_matrix[:,g_idx] = 6 + msg = "Disconnected graph observed for model ligand " + msg += str(self.model_ligands[g_idx]) + LogVerbose(msg) + + + for target_id, target_ligand in enumerate(self.target_ligands): + LogVerbose("Analyzing target ligand %s" % target_ligand) + + if self._target_ligand_states[target_id] == 4: + # Disconnected graph - already updated states and reported + # to LogVerbose + continue + + for model_id, model_ligand in enumerate(self.model_ligands): + LogVerbose("Compare to model ligand %s" % model_ligand) + + ######################################################### + # Compute symmetries for given target/model ligand pair # + ######################################################### + + if self._model_ligand_states[model_id] == 4: + # Disconnected graph - already updated states and reported + # to LogVerbose + continue + + try: + symmetries = ComputeSymmetries( + model_ligand, target_ligand, + substructure_match=self.substructure_match, + by_atom_index=True, + max_symmetries=self.max_symmetries, + model_graph = model_graphs[model_id], + target_graph = target_graphs[target_id]) + LogVerbose("Ligands %s and %s symmetry match" % ( + str(model_ligand), str(target_ligand))) + except NoSymmetryError: + # Ligands are different - skip + LogVerbose("No symmetry between %s and %s" % ( + str(model_ligand), str(target_ligand))) + self._state_matrix[target_id, model_id] = 1 + continue + except TooManySymmetriesError: + # Ligands are too symmetrical - skip + LogVerbose("Too many symmetries between %s and %s" % ( + str(model_ligand), str(target_ligand))) + self._state_matrix[target_id, model_id] = 2 + continue + except NoIsomorphicSymmetryError: + # Ligands are different - skip + LogVerbose("No isomorphic symmetry between %s and %s" % ( + str(model_ligand), str(target_ligand))) + self._state_matrix[target_id, model_id] = 3 + continue + except DisconnectedGraphError: + # this should never happen as we guard against + # DisconnectedGraphError when precomputing the graph + LogVerbose("Disconnected graph observed for %s and %s" % ( + str(model_ligand), str(target_ligand))) + # just set both ligand states to 4 + self._model_ligand_states[model_id] = 4 + self._model_ligand_states[target_id] = 4 + self._state_matrix[target_id, model_id] = 6 + continue + + ##################################################### + # Compute score by calling the child class _compute # + ##################################################### + score, pair_state, target_ligand_state, model_ligand_state, aux\ + = self._compute(symmetries, target_ligand, model_ligand) + + ############ + # Finalize # + ############ + + # Ensure that returned states are associated with a + # description. This is a requirement when subclassing + # LigandScorer => state_decoding dict from base class must + # be modified in subclass constructor + if pair_state not in self.state_decoding or \ + target_ligand_state not in self.state_decoding or \ + model_ligand_state not in self.state_decoding: + raise RuntimeError(f"Subclass returned state " + f"\"{state}\" for which no " + f"description is available. Point " + f"the developer of the used scorer " + f"to this error message.") + + # if any of the ligand states is non-zero, this must be marked + # by the scorer subclass by specifying a specific pair state + if target_ligand_state != 0 and pair_state != 6: + raise RuntimeError("Observed non-zero target-ligand " + "state which must trigger certain " + "pair state. Point the developer of " + "the used scorer to this error message") + + if model_ligand_state != 0 and pair_state != 6: + raise RuntimeError("Observed non-zero model-ligand " + "state which must trigger certain " + "pair state. Point the developer of " + "the used scorer to this error message") + + self._state_matrix[target_id, model_id] = pair_state + self._target_ligand_states[target_id] = target_ligand_state + self._model_ligand_states[model_id] = model_ligand_state + if pair_state == 0: + if score is None or np.isnan(score): + raise RuntimeError("LigandScorer returned invalid " + "score despite 0 error state") + # it's a valid score! + self._score_matrix[target_id, model_id] = score + cvg = len(symmetries[0][0]) / len(model_ligand.atoms) + self._coverage_matrix[target_id, model_id] = cvg + self._aux_matrix[target_id, model_id] = aux + + def _compute(self, symmetries, target_ligand, model_ligand): + """ Compute score for specified ligand pair - defined by child class + + Raises :class:`NotImplementedError` if not implemented by child class. + + :param symmetries: Defines symmetries between *target_ligand* and + *model_ligand*. Return value of + :func:`ComputeSymmetries` + :type symmetries: :class:`list` of :class:`tuple` with two elements + each: 1) :class:`list` of atom indices in + *target_ligand* 2) :class:`list` of respective atom + indices in *model_ligand* + :param target_ligand: The target ligand + :type target_ligand: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + :param model_ligand: The model ligand + :type model_ligand: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + + :returns: A :class:`tuple` with three elements: 1) a score + (:class:`float`) 2) state (:class:`int`). + 3) auxiliary data for this ligand pair (:class:`dict`). + If state is 0, the score and auxiliary data will be + added to :attr:`~score_matrix` and :attr:`~aux_matrix` as well + as the respective value in :attr:`~coverage_matrix`. + Returned score must be valid in this case (not None/NaN). + Child specific non-zero states must be >= 10. + """ + raise NotImplementedError("_compute must be implemented by child " + "class") + + def _score_dir(self): + """ Return direction of score - defined by child class + + Relevant for ligand assignment. Must return a string in ['+', '-']. + '+' for ascending scores, i.e. higher is better (lddt etc.) + '-' for descending scores, i.e. lower is better (rmsd etc.) + """ + raise NotImplementedError("_score_dir must be implemented by child " + "class") + + +def _ResidueToGraph(residue, by_atom_index=False): + """Return a NetworkX graph representation of the residue. + + :param residue: the residue from which to derive the graph + :type residue: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + :param by_atom_index: Set this parameter to True if you need the nodes to + be labeled by atom index (within the residue). + Otherwise, if False, the nodes will be labeled by + atom names. + :type by_atom_index: :class:`bool` + :rtype: :class:`~networkx.classes.graph.Graph` + + Nodes are labeled with the Atom's uppercase + :attr:`~ost.mol.AtomHandle.element`. + """ + nxg = networkx.Graph() + + for atom in residue.atoms: + nxg.add_node(atom.name, element=atom.element.upper()) + + # This will list all edges twice - once for every atom of the pair. + # But as of NetworkX 3.0 adding the same edge twice has no effect, + # so we're good. + nxg.add_edges_from([( + b.first.name, + b.second.name) for a in residue.atoms for b in a.GetBondList()]) + + if by_atom_index: + nxg = networkx.relabel_nodes(nxg, + {a: b for a, b in zip( + [a.name for a in residue.atoms], + range(len(residue.atoms)))}, + True) + return nxg + +def ComputeSymmetries(model_ligand, target_ligand, substructure_match=False, + by_atom_index=False, return_symmetries=True, + max_symmetries=1e6, model_graph = None, + target_graph = None): + """Return a list of symmetries (isomorphisms) of the model onto the target + residues. + + :param model_ligand: The model ligand + :type model_ligand: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + :param target_ligand: The target ligand + :type target_ligand: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + :param substructure_match: Set this to True to allow partial ligands + in the reference. + :type substructure_match: :class:`bool` + :param by_atom_index: Set this parameter to True if you need the symmetries + to refer to atom index (within the residue). + Otherwise, if False, the symmetries refer to atom + names. + :type by_atom_index: :class:`bool` + :type return_symmetries: If Truthy, return the mappings, otherwise simply + return True if a mapping is found (and raise if + no mapping is found). This is useful to quickly + find out if a mapping exist without the expensive + step to find all the mappings. + :type return_symmetries: :class:`bool` + :param max_symmetries: If more than that many isomorphisms exist, raise + a :class:`TooManySymmetriesError`. This can only be assessed by + generating at least that many isomorphisms and can take some time. + :type max_symmetries: :class:`int` + :raises: :class:`NoSymmetryError` when no symmetry can be found; + :class:`NoIsomorphicSymmetryError` in case of isomorphic + subgraph but *substructure_match* is False; + :class:`TooManySymmetriesError` when more than `max_symmetries` + isomorphisms are found; :class:`DisconnectedGraphError` if + graph for *model_ligand*/*target_ligand* is disconnected. + """ + + # Get the Graphs of the ligands + if model_graph is None: + model_graph = _ResidueToGraph(model_ligand, + by_atom_index=by_atom_index) + + if not networkx.is_connected(model_graph): + msg = "Disconnected graph for model ligand %s" % model_ligand + raise DisconnectedGraphError(msg) + + + if target_graph is None: + target_graph = _ResidueToGraph(target_ligand, + by_atom_index=by_atom_index) + + if not networkx.is_connected(target_graph): + msg = "Disconnected graph for target ligand %s" % target_ligand + raise DisconnectedGraphError(msg) + + # Note the argument order (model, target) which differs from spyrmsd. + # This is because a subgraph of model is isomorphic to target - but not the + # opposite as we only consider partial ligands in the reference. + # Make sure to generate the symmetries correctly in the end + gm = networkx.algorithms.isomorphism.GraphMatcher( + model_graph, target_graph, node_match=lambda x, y: + x["element"] == y["element"]) + if gm.is_isomorphic(): + if not return_symmetries: + return True + symmetries = [] + for i, isomorphism in enumerate(gm.isomorphisms_iter()): + if i >= max_symmetries: + raise TooManySymmetriesError( + "Too many symmetries between %s and %s" % ( + str(model_ligand), str(target_ligand))) + symmetries.append((list(isomorphism.values()), + list(isomorphism.keys()))) + assert len(symmetries) > 0 + LogDebug("Found %s isomorphic mappings (symmetries)" % len(symmetries)) + elif gm.subgraph_is_isomorphic() and substructure_match: + if not return_symmetries: + return True + symmetries = [] + for i, isomorphism in enumerate(gm.subgraph_isomorphisms_iter()): + if i >= max_symmetries: + raise TooManySymmetriesError( + "Too many symmetries between %s and %s" % ( + str(model_ligand), str(target_ligand))) + symmetries.append((list(isomorphism.values()), + list(isomorphism.keys()))) + assert len(symmetries) > 0 + # Assert that all the atoms in the target are part of the substructure + assert len(symmetries[0][0]) == len(target_ligand.atoms) + n_sym = len(symmetries) + LogDebug("Found %s subgraph isomorphisms (symmetries)" % n_sym) + elif gm.subgraph_is_isomorphic(): + LogDebug("Found subgraph isomorphisms (symmetries), but" + " ignoring because substructure_match=False") + raise NoIsomorphicSymmetryError("No symmetry between %s and %s" % ( + str(model_ligand), str(target_ligand))) + else: + LogDebug("Found no isomorphic mappings (symmetries)") + raise NoSymmetryError("No symmetry between %s and %s" % ( + str(model_ligand), str(target_ligand))) + + return symmetries + +class NoSymmetryError(ValueError): + """ Exception raised when no symmetry can be found. + """ + pass + +class NoIsomorphicSymmetryError(ValueError): + """ Exception raised when no isomorphic symmetry can be found + + There would be isomorphic subgraphs for which symmetries can + be found, but substructure_match is disabled + """ + pass + +class TooManySymmetriesError(ValueError): + """ Exception raised when too many symmetries are found. + """ + pass + +class DisconnectedGraphError(Exception): + """ Exception raised when the ligand graph is disconnected. + """ + pass + +# specify public interface +__all__ = ('LigandScorer', 'ComputeSymmetries', 'NoSymmetryError', + 'NoIsomorphicSymmetryError', 'TooManySymmetriesError', + 'DisconnectedGraphError') diff --git a/modules/mol/alg/pymod/ligand_scoring_lddtpli.py b/modules/mol/alg/pymod/ligand_scoring_lddtpli.py new file mode 100644 index 0000000000000000000000000000000000000000..5710e3efd07d91da727424a59f050e4f39c18ba9 --- /dev/null +++ b/modules/mol/alg/pymod/ligand_scoring_lddtpli.py @@ -0,0 +1,945 @@ +import numpy as np + +from ost import LogWarning +from ost import geom +from ost import mol +from ost import seq + +from ost.mol.alg import lddt +from ost.mol.alg import chain_mapping +from ost.mol.alg import ligand_scoring_base + +class LDDTPLIScorer(ligand_scoring_base.LigandScorer): + """ :class:`LigandScorer` implementing lDDT-PLI. + + lDDT-PLI is an lDDT score considering contacts between ligand and + receptor. Where receptor consists of protein and nucleic acid chains that + pass the criteria for :class:`chain mapping <ost.mol.alg.chain_mapping>`. + This means ignoring other ligands, waters, short polymers as well as any + incorrectly connected chains that may be in proximity. + + :class:`LDDTPLIScorer` computes a score for a specific pair of target/model + ligands. Given a target/model ligand pair, all possible mappings of + model chains onto their chemically equivalent target chains are enumerated. + For each of these enumerations, all possible symmetries, i.e. atom-atom + assignments of the ligand as given by :class:`LigandScorer`, are evaluated + and an lDDT-PLI score is computed. The best possible lDDT-PLI score is + returned. + + By default, classic lDDT is computed. That means, contacts within + *lddt_pli_radius* are identified in the target and checked if they're + conserved in the model. Added contacts are not penalized. That means if + the ligand is nicely placed in the correct pocket, but that pocket now + suddenly interacts with MORE residues in the model, you still get a high + score. You can penalize for these added contacts with the + *add_mdl_contacts* flag. This additionally considers contacts within + *lddt_pli_radius* in the model but only if the involved atoms can + be mapped to the target. This is a requirement to 1) extract the respective + reference distance from the target 2) avoid usage of contacts for which + we have no experimental evidence. One special case are + contacts from chains that are NOT mapped to the target binding site. It is + very well possible that we have experimental evidence for this chain though + its just too far away from the target binding site. + We therefore try to map these contacts to the chain in the target with + equivalent sequence that is closest to the target binding site. If the + respective atoms can be mapped there, the contact is considered not + fulfilled and added as penalty. + + Populates :attr:`LigandScorer.aux_data` with following :class:`dict` keys: + + * lddt_pli: The score + * lddt_pli_n_contacts: Number of contacts considered in lDDT computation + * target_ligand: The actual target ligand for which the score was computed + * model_ligand: The actual model ligand for which the score was computed + * bs_ref_res: :class:`set` of residues with potentially non-zero + contribution to score. That is every residue with at least one + atom within *lddt_pli_radius* + max(*lddt_pli_thresholds*) of + the ligand. + * bs_mdl_res: Same for model + + :param model: Passed to parent constructor - see :class:`LigandScorer`. + :type model: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` + :param target: Passed to parent constructor - see :class:`LigandScorer`. + :type target: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` + :param model_ligands: Passed to parent constructor - see + :class:`LigandScorer`. + :type model_ligands: :class:`list` + :param target_ligands: Passed to parent constructor - see + :class:`LigandScorer`. + :type target_ligands: :class:`list` + :param resnum_alignments: Passed to parent constructor - see + :class:`LigandScorer`. + :type resnum_alignments: :class:`bool` + :param rename_ligand_chain: Passed to parent constructor - see + :class:`LigandScorer`. + :type rename_ligand_chain: :class:`bool` + :param substructure_match: Passed to parent constructor - see + :class:`LigandScorer`. + :type substructure_match: :class:`bool` + :param coverage_delta: Passed to parent constructor - see + :class:`LigandScorer`. + :type coverage_delta: :class:`float` + :param max_symmetries: Passed to parent constructor - see + :class:`LigandScorer`. + :type max_symmetries: :class:`int` + :param lddt_pli_radius: lDDT inclusion radius for lDDT-PLI. + :type lddt_pli_radius: :class:`float` + :param add_mdl_contacts: Whether to add mdl contacts. + :type add_mdl_contacts: :class:`bool` + :param lddt_pli_thresholds: Distance difference thresholds for lDDT. + :type lddt_pli_thresholds: :class:`list` of :class:`float` + :param lddt_pli_binding_site_radius: Pro param - dont use. Providing a value + Restores behaviour from previous + implementation that first extracted a + binding site with strict distance + threshold and computed lDDT-PLI only on + those target residues whereas the + current implementation includes every + atom within *lddt_pli_radius*. + :type lddt_pli_binding_site_radius: :class:`float` + """ + + def __init__(self, model, target, model_ligands=None, target_ligands=None, + resnum_alignments=False, rename_ligand_chain=False, + substructure_match=False, coverage_delta=0.2, + max_symmetries=1e5, lddt_pli_radius=6.0, + add_mdl_contacts=False, + lddt_pli_thresholds = [0.5, 1.0, 2.0, 4.0], + lddt_pli_binding_site_radius=None): + + super().__init__(model, target, model_ligands = model_ligands, + target_ligands = target_ligands, + resnum_alignments = resnum_alignments, + rename_ligand_chain = rename_ligand_chain, + substructure_match = substructure_match, + coverage_delta = coverage_delta, + max_symmetries = max_symmetries) + + self.lddt_pli_radius = lddt_pli_radius + self.add_mdl_contacts = add_mdl_contacts + self.lddt_pli_thresholds = lddt_pli_thresholds + self.lddt_pli_binding_site_radius = lddt_pli_binding_site_radius + + # lazily precomputed variables to speedup lddt-pli computation + self._lddt_pli_target_data = dict() + self._lddt_pli_model_data = dict() + self.__mappable_atoms = None + self.__chem_mapping = None + self.__chem_group_alns = None + self.__ref_mdl_alns = None + self.__chain_mapping_mdl = None + + # update state decoding from parent with subclass specific stuff + self.state_decoding[10] = ("no_contact", + "There were no lDDT contacts between the " + "binding site and the ligand, and lDDT-PLI " + "is undefined.") + self.state_decoding[20] = ("unknown", + "Unknown error occured in LDDTPLIScorer") + + def _compute(self, symmetries, target_ligand, model_ligand): + """ Implements interface from parent + """ + if self.add_mdl_contacts: + result = self._compute_lddt_pli_add_mdl_contacts(symmetries, + target_ligand, + model_ligand) + else: + result = self._compute_lddt_pli_classic(symmetries, + target_ligand, + model_ligand) + + pair_state = 0 + score = result["lddt_pli"] + + if score is None or np.isnan(score): + if result["lddt_pli_n_contacts"] == 0: + # it's a space ship! + pair_state = 10 + else: + # unknwon error state + pair_state = 20 + + # the ligands get a zero-state... + target_ligand_state = 0 + model_ligand_state = 0 + + return (score, pair_state, target_ligand_state, model_ligand_state, + result) + + def _score_dir(self): + """ Implements interface from parent + """ + return '+' + + def _compute_lddt_pli_add_mdl_contacts(self, symmetries, target_ligand, + model_ligand): + + ############################### + # Get stuff from model/target # + ############################### + + trg_residues, trg_bs, trg_chains, trg_ligand_chain, \ + trg_ligand_res, scorer, chem_groups = \ + self._lddt_pli_get_trg_data(target_ligand) + + trg_bs_center = trg_bs.geometric_center + + # Copy to make sure that we don't change anything on underlying + # references + # This is not strictly necessary in the current implementation but + # hey, maybe it avoids hard to debug errors when someone changes things + ref_indices = [a.copy() for a in scorer.ref_indices_ic] + ref_distances = [a.copy() for a in scorer.ref_distances_ic] + + # distance hacking... remove any interchain distance except the ones + # with the ligand + ligand_start_idx = scorer.chain_start_indices[-1] + for at_idx in range(ligand_start_idx): + mask = ref_indices[at_idx] >= ligand_start_idx + ref_indices[at_idx] = ref_indices[at_idx][mask] + ref_distances[at_idx] = ref_distances[at_idx][mask] + + mdl_residues, mdl_bs, mdl_chains, mdl_ligand_chain, mdl_ligand_res, \ + chem_mapping = self._lddt_pli_get_mdl_data(model_ligand) + + #################### + # Setup alignments # + #################### + + # ref_mdl_alns refers to full chain mapper trg and mdl structures + # => need to adapt mdl sequence that only contain residues in contact + # with ligand + cut_ref_mdl_alns = self._lddt_pli_cut_ref_mdl_alns(chem_groups, + chem_mapping, + mdl_bs, trg_bs) + + ######################################## + # Setup cache for added model contacts # + ######################################## + + # get each chain mapping that we ever observe in scoring + chain_mappings = list(chain_mapping._ChainMappings(chem_groups, + chem_mapping)) + + # for each mdl ligand atom, we collect all trg ligand atoms that are + # ever mapped onto it given *symmetries* + ligand_atom_mappings = [set() for a in mdl_ligand_res.atoms] + for (trg_sym, mdl_sym) in symmetries: + for trg_i, mdl_i in zip(trg_sym, mdl_sym): + ligand_atom_mappings[mdl_i].add(trg_i) + + mdl_ligand_pos = np.zeros((mdl_ligand_res.GetAtomCount(), 3)) + for a_idx, a in enumerate(mdl_ligand_res.atoms): + p = a.GetPos() + mdl_ligand_pos[a_idx, 0] = p[0] + mdl_ligand_pos[a_idx, 1] = p[1] + mdl_ligand_pos[a_idx, 2] = p[2] + + trg_ligand_pos = np.zeros((trg_ligand_res.GetAtomCount(), 3)) + for a_idx, a in enumerate(trg_ligand_res.atoms): + p = a.GetPos() + trg_ligand_pos[a_idx, 0] = p[0] + trg_ligand_pos[a_idx, 1] = p[1] + trg_ligand_pos[a_idx, 2] = p[2] + + mdl_lig_hashes = [a.hash_code for a in mdl_ligand_res.atoms] + + symmetric_atoms = np.asarray(sorted(list(scorer.symmetric_atoms)), + dtype=np.int64) + + # two caches to cache things for each chain mapping => lists + # of len(chain_mappings) + # + # In principle we're caching for each trg/mdl ligand atom pair all + # information to update ref_indices/ref_distances and resolving the + # symmetries of the binding site. + # in detail: each list entry in *scoring_cache* is a dict with + # key: (mdl_lig_at_idx, trg_lig_at_idx) + # value: tuple with 4 elements - 1: indices of atoms representing added + # contacts relative to overall inexing scheme in scorer 2: the + # respective distances 3: the same but only containing indices towards + # atoms of the binding site that are considered symmetric 4: the + # respective indices. + # each list entry in *penalty_cache* is a list of len N mdl lig atoms. + # For each mdl lig at it contains a penalty for this mdl lig at. That + # means the number of contacts in the mdl binding site that can + # directly be mapped to the target given the local chain mapping but + # are not present in the target binding site, i.e. interacting atoms are + # too far away. + scoring_cache = list() + penalty_cache = list() + + for mapping in chain_mappings: + + # flat mapping with mdl chain names as key + flat_mapping = dict() + for trg_chem_group, mdl_chem_group in zip(chem_groups, mapping): + for a,b in zip(trg_chem_group, mdl_chem_group): + if a is not None and b is not None: + flat_mapping[b] = a + + # for each mdl bs atom (as atom hash), the trg bs atoms (as index in + # scorer) + bs_atom_mapping = dict() + for mdl_cname, ref_cname in flat_mapping.items(): + aln = cut_ref_mdl_alns[(ref_cname, mdl_cname)] + ref_ch = trg_bs.Select(f"cname={mol.QueryQuoteName(ref_cname)}") + mdl_ch = mdl_bs.Select(f"cname={mol.QueryQuoteName(mdl_cname)}") + aln.AttachView(0, ref_ch) + aln.AttachView(1, mdl_ch) + for col in aln: + ref_r = col.GetResidue(0) + mdl_r = col.GetResidue(1) + if ref_r.IsValid() and mdl_r.IsValid(): + for mdl_a in mdl_r.atoms: + ref_a = ref_r.FindAtom(mdl_a.GetName()) + if ref_a.IsValid(): + ref_h = ref_a.handle.hash_code + if ref_h in scorer.atom_indices: + mdl_h = mdl_a.handle.hash_code + bs_atom_mapping[mdl_h] = \ + scorer.atom_indices[ref_h] + + cache = dict() + n_penalties = list() + + for mdl_a_idx, mdl_a in enumerate(mdl_ligand_res.atoms): + n_penalty = 0 + trg_bs_indices = list() + close_a = mdl_bs.FindWithin(mdl_a.GetPos(), + self.lddt_pli_radius) + for a in close_a: + mdl_a_hash_code = a.hash_code + if mdl_a_hash_code in bs_atom_mapping: + trg_bs_indices.append(bs_atom_mapping[mdl_a_hash_code]) + elif mdl_a_hash_code not in mdl_lig_hashes: + if a.GetChain().GetName() in flat_mapping: + # Its in a mapped chain + at_key = (a.GetResidue().GetNumber(), a.name) + cname = a.GetChain().name + cname_key = (flat_mapping[cname], cname) + if at_key in self._mappable_atoms[cname_key]: + # Its a contact in the model but not part of + # trg_bs. It can still be mapped using the + # global mdl_ch/ref_ch alignment + # d in ref > self.lddt_pli_radius + max_thresh + # => guaranteed to be non-fulfilled contact + n_penalty += 1 + + n_penalties.append(n_penalty) + + trg_bs_indices = np.asarray(sorted(trg_bs_indices)) + + for trg_a_idx in ligand_atom_mappings[mdl_a_idx]: + # mask selects entries in trg_bs_indices that are not yet + # part of classic lDDT ref_indices for atom at trg_a_idx + # => added mdl contacts + mask = np.isin(trg_bs_indices, + ref_indices[ligand_start_idx + trg_a_idx], + assume_unique=True, invert=True) + added_indices = np.asarray([], dtype=np.int64) + added_distances = np.asarray([], dtype=np.float64) + if np.sum(mask) > 0: + # compute ref distances on reference positions + added_indices = trg_bs_indices[mask] + tmp = scorer.positions.take(added_indices, axis=0) + np.subtract(tmp, trg_ligand_pos[trg_a_idx][None, :], + out=tmp) + np.square(tmp, out=tmp) + tmp = tmp.sum(axis=1) + np.sqrt(tmp, out=tmp) + added_distances = tmp + + # extract the distances towards bs atoms that are symmetric + sym_mask = np.isin(added_indices, symmetric_atoms, + assume_unique=True) + + cache[(mdl_a_idx, trg_a_idx)] = (added_indices, + added_distances, + added_indices[sym_mask], + added_distances[sym_mask]) + + scoring_cache.append(cache) + penalty_cache.append(n_penalties) + + # cache for model contacts towards non mapped trg chains - this is + # relevant for self._lddt_pli_unmapped_chain_penalty + # key: tuple in form (trg_ch, mdl_ch) + # value: yet another dict with + # key: ligand_atom_hash + # value: n contacts towards respective trg chain that can be mapped + non_mapped_cache = dict() + + ############################################################### + # compute lDDT for all possible chain mappings and symmetries # + ############################################################### + + best_score = -1.0 + best_result = {"lddt_pli": None, + "lddt_pli_n_contacts": 0} + + # dummy alignment for ligand chains which is needed as input later on + ligand_aln = seq.CreateAlignment() + trg_s = seq.CreateSequence(trg_ligand_chain.name, + trg_ligand_res.GetOneLetterCode()) + mdl_s = seq.CreateSequence(mdl_ligand_chain.name, + mdl_ligand_res.GetOneLetterCode()) + ligand_aln.AddSequence(trg_s) + ligand_aln.AddSequence(mdl_s) + ligand_at_indices = list(range(ligand_start_idx, scorer.n_atoms)) + + sym_idx_collector = [None] * scorer.n_atoms + sym_dist_collector = [None] * scorer.n_atoms + + for mapping, s_cache, p_cache in zip(chain_mappings, scoring_cache, + penalty_cache): + + lddt_chain_mapping = dict() + lddt_alns = dict() + for ref_chem_group, mdl_chem_group in zip(chem_groups, mapping): + for ref_ch, mdl_ch in zip(ref_chem_group, mdl_chem_group): + # some mdl chains can be None + if mdl_ch is not None: + lddt_chain_mapping[mdl_ch] = ref_ch + lddt_alns[mdl_ch] = cut_ref_mdl_alns[(ref_ch, mdl_ch)] + + # add ligand to lddt_chain_mapping/lddt_alns + lddt_chain_mapping[mdl_ligand_chain.name] = trg_ligand_chain.name + lddt_alns[mdl_ligand_chain.name] = ligand_aln + + # already process model, positions will be manually hacked for each + # symmetry - small overhead for variables that are thrown away here + pos, _, _, _, _, _, lddt_symmetries = \ + scorer._ProcessModel(mdl_bs, lddt_chain_mapping, + residue_mapping = lddt_alns, + thresholds = self.lddt_pli_thresholds, + check_resnames = False) + + # estimate a penalty for unsatisfied model contacts from chains + # that are not in the local trg binding site, but can be mapped in + # the target. + # We're using the trg chain with the closest geometric center to + # the trg binding site that can be mapped to the mdl chain + # according the chem mapping. An alternative would be to search for + # the target chain with the minimal number of additional contacts. + # There is not good solution for this problem... + unmapped_chains = list() + already_mapped = set() + for mdl_ch in mdl_chains: + if mdl_ch not in lddt_chain_mapping: + # check which chain in trg is closest + chem_grp_idx = None + for i, m in enumerate(self._chem_mapping): + if mdl_ch in m: + chem_grp_idx = i + break + if chem_grp_idx is None: + raise RuntimeError("This should never happen... " + "ask Gabriel...") + closest_ch = None + closest_dist = None + for trg_ch in self._chain_mapper.chem_groups[chem_grp_idx]: + if trg_ch not in lddt_chain_mapping.values(): + if trg_ch not in already_mapped: + ch = self._chain_mapper.target.FindChain(trg_ch) + c = ch.geometric_center + d = geom.Distance(trg_bs_center, c) + if closest_dist is None or d < closest_dist: + closest_dist = d + closest_ch = trg_ch + if closest_ch is not None: + unmapped_chains.append((closest_ch, mdl_ch)) + already_mapped.add(closest_ch) + + for (trg_sym, mdl_sym) in symmetries: + + # update positions + for mdl_i, trg_i in zip(mdl_sym, trg_sym): + pos[ligand_start_idx + trg_i, :] = mdl_ligand_pos[mdl_i, :] + + # start new ref_indices/ref_distances from original values + funky_ref_indices = [np.copy(a) for a in ref_indices] + funky_ref_distances = [np.copy(a) for a in ref_distances] + + # The only distances from the binding site towards the ligand + # we care about are the ones from the symmetric atoms to + # correctly compute scorer._ResolveSymmetries. + # We collect them while updating distances from added mdl + # contacts + for idx in symmetric_atoms: + sym_idx_collector[idx] = list() + sym_dist_collector[idx] = list() + + # add data from added mdl contacts cache + added_penalty = 0 + for mdl_i, trg_i in zip(mdl_sym, trg_sym): + added_penalty += p_cache[mdl_i] + cache = s_cache[mdl_i, trg_i] + full_trg_i = ligand_start_idx + trg_i + funky_ref_indices[full_trg_i] = \ + np.append(funky_ref_indices[full_trg_i], cache[0]) + funky_ref_distances[full_trg_i] = \ + np.append(funky_ref_distances[full_trg_i], cache[1]) + for idx, d in zip(cache[2], cache[3]): + sym_idx_collector[idx].append(full_trg_i) + sym_dist_collector[idx].append(d) + + for idx in symmetric_atoms: + funky_ref_indices[idx] = \ + np.append(funky_ref_indices[idx], + np.asarray(sym_idx_collector[idx], + dtype=np.int64)) + funky_ref_distances[idx] = \ + np.append(funky_ref_distances[idx], + np.asarray(sym_dist_collector[idx], + dtype=np.float64)) + + # we can pass funky_ref_indices/funky_ref_distances as + # sym_ref_indices/sym_ref_distances in + # scorer._ResolveSymmetries as we only have distances of the bs + # to the ligand and ligand atoms are "non-symmetric" + scorer._ResolveSymmetries(pos, self.lddt_pli_thresholds, + lddt_symmetries, + funky_ref_indices, + funky_ref_distances) + + N = sum([len(funky_ref_indices[i]) for i in ligand_at_indices]) + N += added_penalty + + # collect number of expected contacts which can be mapped + if len(unmapped_chains) > 0: + N += self._lddt_pli_unmapped_chain_penalty(unmapped_chains, + non_mapped_cache, + mdl_bs, + mdl_ligand_res, + mdl_sym) + + conserved = np.sum(scorer._EvalAtoms(pos, ligand_at_indices, + self.lddt_pli_thresholds, + funky_ref_indices, + funky_ref_distances), + axis=0) + score = None + if N > 0: + score = np.mean(conserved/N) + + if score is not None and score > best_score: + best_score = score + best_result = {"lddt_pli": score, + "lddt_pli_n_contacts": N} + + # fill misc info to result object + best_result["target_ligand"] = target_ligand + best_result["model_ligand"] = model_ligand + best_result["bs_ref_res"] = trg_residues + best_result["bs_mdl_res"] = mdl_residues + + return best_result + + + def _compute_lddt_pli_classic(self, symmetries, target_ligand, + model_ligand): + + ############################### + # Get stuff from model/target # + ############################### + + max_r = None + if self.lddt_pli_binding_site_radius: + max_r = self.lddt_pli_binding_site_radius + + trg_residues, trg_bs, trg_chains, trg_ligand_chain, \ + trg_ligand_res, scorer, chem_groups = \ + self._lddt_pli_get_trg_data(target_ligand, max_r = max_r) + + # Copy to make sure that we don't change anything on underlying + # references + # This is not strictly necessary in the current implementation but + # hey, maybe it avoids hard to debug errors when someone changes things + ref_indices = [a.copy() for a in scorer.ref_indices_ic] + ref_distances = [a.copy() for a in scorer.ref_distances_ic] + + # no matter what mapping/symmetries, the number of expected + # contacts stays the same + ligand_start_idx = scorer.chain_start_indices[-1] + ligand_at_indices = list(range(ligand_start_idx, scorer.n_atoms)) + n_exp = sum([len(ref_indices[i]) for i in ligand_at_indices]) + + mdl_residues, mdl_bs, mdl_chains, mdl_ligand_chain, mdl_ligand_res, \ + chem_mapping = self._lddt_pli_get_mdl_data(model_ligand) + + if n_exp == 0: + # no contacts... nothing to compute... + return {"lddt_pli": None, + "lddt_pli_n_contacts": 0, + "target_ligand": target_ligand, + "model_ligand": model_ligand, + "bs_ref_res": trg_residues, + "bs_mdl_res": mdl_residues} + + # Distance hacking... remove any interchain distance except the ones + # with the ligand + for at_idx in range(ligand_start_idx): + mask = ref_indices[at_idx] >= ligand_start_idx + ref_indices[at_idx] = ref_indices[at_idx][mask] + ref_distances[at_idx] = ref_distances[at_idx][mask] + + #################### + # Setup alignments # + #################### + + # ref_mdl_alns refers to full chain mapper trg and mdl structures + # => need to adapt mdl sequence that only contain residues in contact + # with ligand + cut_ref_mdl_alns = self._lddt_pli_cut_ref_mdl_alns(chem_groups, + chem_mapping, + mdl_bs, trg_bs) + + ############################################################### + # compute lDDT for all possible chain mappings and symmetries # + ############################################################### + + best_score = -1.0 + + # dummy alignment for ligand chains which is needed as input later on + l_aln = seq.CreateAlignment() + l_aln.AddSequence(seq.CreateSequence(trg_ligand_chain.name, + trg_ligand_res.GetOneLetterCode())) + l_aln.AddSequence(seq.CreateSequence(mdl_ligand_chain.name, + mdl_ligand_res.GetOneLetterCode())) + + mdl_ligand_pos = np.zeros((model_ligand.GetAtomCount(), 3)) + for a_idx, a in enumerate(model_ligand.atoms): + p = a.GetPos() + mdl_ligand_pos[a_idx, 0] = p[0] + mdl_ligand_pos[a_idx, 1] = p[1] + mdl_ligand_pos[a_idx, 2] = p[2] + + for mapping in chain_mapping._ChainMappings(chem_groups, chem_mapping): + + lddt_chain_mapping = dict() + lddt_alns = dict() + for ref_chem_group, mdl_chem_group in zip(chem_groups, mapping): + for ref_ch, mdl_ch in zip(ref_chem_group, mdl_chem_group): + # some mdl chains can be None + if mdl_ch is not None: + lddt_chain_mapping[mdl_ch] = ref_ch + lddt_alns[mdl_ch] = cut_ref_mdl_alns[(ref_ch, mdl_ch)] + + # add ligand to lddt_chain_mapping/lddt_alns + lddt_chain_mapping[mdl_ligand_chain.name] = trg_ligand_chain.name + lddt_alns[mdl_ligand_chain.name] = l_aln + + # already process model, positions will be manually hacked for each + # symmetry - small overhead for variables that are thrown away here + pos, _, _, _, _, _, lddt_symmetries = \ + scorer._ProcessModel(mdl_bs, lddt_chain_mapping, + residue_mapping = lddt_alns, + thresholds = self.lddt_pli_thresholds, + check_resnames = False) + + for (trg_sym, mdl_sym) in symmetries: + for mdl_i, trg_i in zip(mdl_sym, trg_sym): + pos[ligand_start_idx + trg_i, :] = mdl_ligand_pos[mdl_i, :] + # we can pass ref_indices/ref_distances as + # sym_ref_indices/sym_ref_distances in + # scorer._ResolveSymmetries as we only have distances of the bs + # to the ligand and ligand atoms are "non-symmetric" + scorer._ResolveSymmetries(pos, self.lddt_pli_thresholds, + lddt_symmetries, + ref_indices, + ref_distances) + # compute number of conserved distances for ligand atoms + conserved = np.sum(scorer._EvalAtoms(pos, ligand_at_indices, + self.lddt_pli_thresholds, + ref_indices, + ref_distances), axis=0) + score = np.mean(conserved/n_exp) + + if score > best_score: + best_score = score + + # fill misc info to result object + best_result = {"lddt_pli": best_score, + "lddt_pli_n_contacts": n_exp, + "target_ligand": target_ligand, + "model_ligand": model_ligand, + "bs_ref_res": trg_residues, + "bs_mdl_res": mdl_residues} + + return best_result + + def _lddt_pli_unmapped_chain_penalty(self, unmapped_chains, + non_mapped_cache, + mdl_bs, + mdl_ligand_res, + mdl_sym): + + n_exp = 0 + for ch_tuple in unmapped_chains: + if ch_tuple not in non_mapped_cache: + # for each ligand atom, we count the number of mappable atoms + # within lddt_pli_radius + counts = dict() + # the select statement also excludes the ligand in mdl_bs + # as it resides in a separate chain + mdl_cname = ch_tuple[1] + query = "cname=" + mol.QueryQuoteName(mdl_cname) + mdl_bs_ch = mdl_bs.Select(query) + for a in mdl_ligand_res.atoms: + close_atoms = \ + mdl_bs_ch.FindWithin(a.GetPos(), self.lddt_pli_radius) + N = 0 + for close_a in close_atoms: + at_key = (close_a.GetResidue().GetNumber(), + close_a.GetName()) + if at_key in self._mappable_atoms[ch_tuple]: + N += 1 + counts[a.hash_code] = N + + # fill cache + non_mapped_cache[ch_tuple] = counts + + # add number of mdl contacts which can be mapped to target + # as non-fulfilled contacts + counts = non_mapped_cache[ch_tuple] + lig_hash_codes = [a.hash_code for a in mdl_ligand_res.atoms] + for i in mdl_sym: + n_exp += counts[lig_hash_codes[i]] + + return n_exp + + + def _lddt_pli_get_mdl_data(self, model_ligand): + if model_ligand not in self._lddt_pli_model_data: + + mdl = self._chain_mapping_mdl + + mdl_residues = set() + for at in model_ligand.atoms: + close_atoms = mdl.FindWithin(at.GetPos(), self.lddt_pli_radius) + for close_at in close_atoms: + mdl_residues.add(close_at.GetResidue()) + + max_r = self.lddt_pli_radius + max(self.lddt_pli_thresholds) + for r in mdl.residues: + r.SetIntProp("bs", 0) + for at in model_ligand.atoms: + close_atoms = mdl.FindWithin(at.GetPos(), max_r) + for close_at in close_atoms: + close_at.GetResidue().SetIntProp("bs", 1) + + mdl_bs = mol.CreateEntityFromView(mdl.Select("grbs:0=1"), True) + mdl_chains = set([ch.name for ch in mdl_bs.chains]) + + mdl_editor = mdl_bs.EditXCS(mol.BUFFERED_EDIT) + mdl_ligand_chain = None + for cname in ["hugo_the_cat_terminator", "ida_the_cheese_monster"]: + try: + # I'm pretty sure, one of these chain names is not there... + mdl_ligand_chain = mdl_editor.InsertChain(cname) + break + except: + pass + if mdl_ligand_chain is None: + raise RuntimeError("Fuck this, I'm out...") + mdl_ligand_res = mdl_editor.AppendResidue(mdl_ligand_chain, + model_ligand, + deep=True) + mdl_editor.RenameResidue(mdl_ligand_res, "LIG") + mdl_editor.SetResidueNumber(mdl_ligand_res, mol.ResNum(1)) + + chem_mapping = list() + for m in self._chem_mapping: + chem_mapping.append([x for x in m if x in mdl_chains]) + + self._lddt_pli_model_data[model_ligand] = (mdl_residues, + mdl_bs, + mdl_chains, + mdl_ligand_chain, + mdl_ligand_res, + chem_mapping) + + return self._lddt_pli_model_data[model_ligand] + + + def _lddt_pli_get_trg_data(self, target_ligand, max_r = None): + if target_ligand not in self._lddt_pli_target_data: + + trg = self._chain_mapper.target + + if max_r is None: + max_r = self.lddt_pli_radius + max(self.lddt_pli_thresholds) + + trg_residues = set() + for at in target_ligand.atoms: + close_atoms = trg.FindWithin(at.GetPos(), max_r) + for close_at in close_atoms: + trg_residues.add(close_at.GetResidue()) + + for r in trg.residues: + r.SetIntProp("bs", 0) + + for r in trg_residues: + r.SetIntProp("bs", 1) + + trg_bs = mol.CreateEntityFromView(trg.Select("grbs:0=1"), True) + trg_chains = set([ch.name for ch in trg_bs.chains]) + + trg_editor = trg_bs.EditXCS(mol.BUFFERED_EDIT) + trg_ligand_chain = None + for cname in ["hugo_the_cat_terminator", "ida_the_cheese_monster"]: + try: + # I'm pretty sure, one of these chain names is not there yet + trg_ligand_chain = trg_editor.InsertChain(cname) + break + except: + pass + if trg_ligand_chain is None: + raise RuntimeError("Fuck this, I'm out...") + + trg_ligand_res = trg_editor.AppendResidue(trg_ligand_chain, + target_ligand, + deep=True) + trg_editor.RenameResidue(trg_ligand_res, "LIG") + trg_editor.SetResidueNumber(trg_ligand_res, mol.ResNum(1)) + + compound_name = trg_ligand_res.name + compound = lddt.CustomCompound.FromResidue(trg_ligand_res) + custom_compounds = {compound_name: compound} + + scorer = lddt.lDDTScorer(trg_bs, + custom_compounds = custom_compounds, + inclusion_radius = self.lddt_pli_radius) + + chem_groups = list() + for g in self._chain_mapper.chem_groups: + chem_groups.append([x for x in g if x in trg_chains]) + + self._lddt_pli_target_data[target_ligand] = (trg_residues, + trg_bs, + trg_chains, + trg_ligand_chain, + trg_ligand_res, + scorer, + chem_groups) + + return self._lddt_pli_target_data[target_ligand] + + + def _lddt_pli_cut_ref_mdl_alns(self, chem_groups, chem_mapping, mdl_bs, + ref_bs): + cut_ref_mdl_alns = dict() + for ref_chem_group, mdl_chem_group in zip(chem_groups, chem_mapping): + for ref_ch in ref_chem_group: + + ref_bs_chain = ref_bs.FindChain(ref_ch) + query = "cname=" + mol.QueryQuoteName(ref_ch) + ref_view = self._chain_mapper.target.Select(query) + + for mdl_ch in mdl_chem_group: + aln = self._ref_mdl_alns[(ref_ch, mdl_ch)] + + aln.AttachView(0, ref_view) + + mdl_bs_chain = mdl_bs.FindChain(mdl_ch) + query = "cname=" + mol.QueryQuoteName(mdl_ch) + aln.AttachView(1, self._chain_mapping_mdl.Select(query)) + + cut_mdl_seq = ['-'] * aln.GetLength() + cut_ref_seq = ['-'] * aln.GetLength() + for i, col in enumerate(aln): + + # check ref residue + r = col.GetResidue(0) + if r.IsValid(): + bs_r = ref_bs_chain.FindResidue(r.GetNumber()) + if bs_r.IsValid(): + cut_ref_seq[i] = col[0] + + # check mdl residue + r = col.GetResidue(1) + if r.IsValid(): + bs_r = mdl_bs_chain.FindResidue(r.GetNumber()) + if bs_r.IsValid(): + cut_mdl_seq[i] = col[1] + + cut_ref_seq = ''.join(cut_ref_seq) + cut_mdl_seq = ''.join(cut_mdl_seq) + cut_aln = seq.CreateAlignment() + cut_aln.AddSequence(seq.CreateSequence(ref_ch, cut_ref_seq)) + cut_aln.AddSequence(seq.CreateSequence(mdl_ch, cut_mdl_seq)) + cut_ref_mdl_alns[(ref_ch, mdl_ch)] = cut_aln + return cut_ref_mdl_alns + + @property + def _mappable_atoms(self): + """ Stores mappable atoms given a chain mapping + + Store for each ref_ch,mdl_ch pair all mdl atoms that can be + mapped. Don't store mappable atoms as hashes but rather as tuple + (mdl_r.GetNumber(), mdl_a.GetName()). Reason for that is that one might + operate on Copied EntityHandle objects without corresponding hashes. + Given a tuple defining c_pair: (ref_cname, mdl_cname), one + can check if a certain atom is mappable by evaluating: + if (mdl_r.GetNumber(), mdl_a.GetName()) in self._mappable_atoms(c_pair) + """ + if self.__mappable_atoms is None: + self.__mappable_atoms = dict() + for (ref_cname, mdl_cname), aln in self._ref_mdl_alns.items(): + self._mappable_atoms[(ref_cname, mdl_cname)] = set() + ref_query = f"cname={mol.QueryQuoteName(ref_cname)}" + mdl_query = f"cname={mol.QueryQuoteName(mdl_cname)}" + ref_ch = self._chain_mapper.target.Select(ref_query) + mdl_ch = self._chain_mapping_mdl.Select(mdl_query) + aln.AttachView(0, ref_ch) + aln.AttachView(1, mdl_ch) + for col in aln: + ref_r = col.GetResidue(0) + mdl_r = col.GetResidue(1) + if ref_r.IsValid() and mdl_r.IsValid(): + for mdl_a in mdl_r.atoms: + if ref_r.FindAtom(mdl_a.name).IsValid(): + c_key = (ref_cname, mdl_cname) + at_key = (mdl_r.GetNumber(), mdl_a.name) + self.__mappable_atoms[c_key].add(at_key) + + return self.__mappable_atoms + + @property + def _chem_mapping(self): + if self.__chem_mapping is None: + self.__chem_mapping, self.__chem_group_alns, \ + self.__chain_mapping_mdl = \ + self._chain_mapper.GetChemMapping(self.model) + return self.__chem_mapping + + @property + def _chem_group_alns(self): + if self.__chem_group_alns is None: + self.__chem_mapping, self.__chem_group_alns, \ + self.__chain_mapping_mdl = \ + self._chain_mapper.GetChemMapping(self.model) + return self.__chem_group_alns + + @property + def _ref_mdl_alns(self): + if self.__ref_mdl_alns is None: + self.__ref_mdl_alns = \ + chain_mapping._GetRefMdlAlns(self._chain_mapper.chem_groups, + self._chain_mapper.chem_group_alignments, + self._chem_mapping, + self._chem_group_alns) + return self.__ref_mdl_alns + + @property + def _chain_mapping_mdl(self): + if self.__chain_mapping_mdl is None: + self.__chem_mapping, self.__chem_group_alns, \ + self.__chain_mapping_mdl = \ + self._chain_mapper.GetChemMapping(self.model) + return self.__chain_mapping_mdl + +# specify public interface +__all__ = ('LDDTPLIScorer',) diff --git a/modules/mol/alg/pymod/ligand_scoring_scrmsd.py b/modules/mol/alg/pymod/ligand_scoring_scrmsd.py new file mode 100644 index 0000000000000000000000000000000000000000..56ef24a9e9cccf354e2b286aac1794ae40526ae2 --- /dev/null +++ b/modules/mol/alg/pymod/ligand_scoring_scrmsd.py @@ -0,0 +1,461 @@ +import numpy as np + +from ost import LogWarning +from ost import geom +from ost import mol + +from ost.mol.alg import ligand_scoring_base + +class SCRMSDScorer(ligand_scoring_base.LigandScorer): + """ :class:`LigandScorer` implementing symmetry corrected RMSD. + + :class:`SCRMSDScorer` computes a score for a specific pair of target/model + ligands. + + The returned RMSD is based on a binding site superposition. + The binding site of the target structure is defined as all residues with at + least one atom within *bs_radius* around the target ligand. + It only contains protein and nucleic acid residues from chains that + pass the criteria for the + :class:`chain mapping <ost.mol.alg.chain_mapping>`. This means ignoring + other ligands, waters, short polymers as well as any incorrectly connected + chains that may be in proximity. + The respective model binding site for superposition is identified by + naively enumerating all possible mappings of model chains onto their + chemically equivalent target counterparts from the target binding site. + The *binding_sites_topn* with respect to lDDT score are evaluated and + an RMSD is computed. + You can either try to map ALL model chains onto the target binding site by + enabling *full_bs_search* or restrict the model chains for a specific + target/model ligand pair to the chains with at least one atom within + *model_bs_radius* around the model ligand. The latter can be significantly + faster in case of large complexes. + Symmetry correction is achieved by simply computing an RMSD value for + each symmetry, i.e. atom-atom assignments of the ligand as given by + :class:`LigandScorer`. The lowest RMSD value is returned + + Populates :attr:`LigandScorer.aux_data` with following :class:`dict` keys: + + * rmsd: The score + * lddt_lp: lDDT of the binding site used for superposition + * bs_ref_res: :class:`list` of binding site residues in target + * bs_ref_res_mapped: :class:`list` of target binding site residues that + are mapped to model + * bs_mdl_res_mapped: :class:`list` of same length with respective model + residues + * bb_rmsd: Backbone RMSD (CA, C3' for nucleotides) for mapped residues + given transform + * target_ligand: The actual target ligand for which the score was computed + * model_ligand: The actual model ligand for which the score was computed + * chain_mapping: :class:`dict` with a chain mapping of chains involved in + binding site - key: trg chain name, value: mdl chain name + * transform: :class:`geom.Mat4` to transform model binding site onto target + binding site + * inconsistent_residues: :class:`list` of :class:`tuple` representing + residues with inconsistent residue names upon mapping (which is given by + bs_ref_res_mapped and bs_mdl_res_mapped). Tuples have two elements: + 1) trg residue 2) mdl residue + + :param model: Passed to parent constructor - see :class:`LigandScorer`. + :type model: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` + :param target: Passed to parent constructor - see :class:`LigandScorer`. + :type target: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` + :param model_ligands: Passed to parent constructor - see + :class:`LigandScorer`. + :type model_ligands: :class:`list` + :param target_ligands: Passed to parent constructor - see + :class:`LigandScorer`. + :type target_ligands: :class:`list` + :param resnum_alignments: Passed to parent constructor - see + :class:`LigandScorer`. + :type resnum_alignments: :class:`bool` + :param rename_ligand_chain: Passed to parent constructor - see + :class:`LigandScorer`. + :type rename_ligand_chain: :class:`bool` + :param substructure_match: Passed to parent constructor - see + :class:`LigandScorer`. + :type substructure_match: :class:`bool` + :param coverage_delta: Passed to parent constructor - see + :class:`LigandScorer`. + :type coverage_delta: :class:`float` + :param max_symmetries: Passed to parent constructor - see + :class:`LigandScorer`. + :type max_symmetries: :class:`int` + :param bs_radius: Inclusion radius for the binding site. Residues with + atoms within this distance of the ligand will be considered + for inclusion in the binding site. + :type bs_radius: :class:`float` + :param lddt_lp_radius: lDDT inclusion radius for lDDT-LP. + :type lddt_lp_radius: :class:`float` + :param model_bs_radius: inclusion radius for model binding sites. + Only used when full_bs_search=False, otherwise the + radius is effectively infinite. Only chains with + atoms within this distance of a model ligand will + be considered in the chain mapping. + :type model_bs_radius: :class:`float` + :param binding_sites_topn: maximum number of model binding site + representations to assess per target binding + site. + :type binding_sites_topn: :class:`int` + :param full_bs_search: If True, all potential binding sites in the model + are searched for each target binding site. If False, + the search space in the model is reduced to chains + around (`model_bs_radius` Ã…) model ligands. + This speeds up computations, but may result in + ligands not being scored if the predicted ligand + pose is too far from the actual binding site. + :type full_bs_search: :class:`bool` + """ + def __init__(self, model, target, model_ligands=None, target_ligands=None, + resnum_alignments=False, rename_ligand_chain=False, + substructure_match=False, coverage_delta=0.2, + max_symmetries=1e5, bs_radius=4.0, lddt_lp_radius=15.0, + model_bs_radius=25, binding_sites_topn=100000, + full_bs_search=False): + + super().__init__(model, target, model_ligands = model_ligands, + target_ligands = target_ligands, + resnum_alignments = resnum_alignments, + rename_ligand_chain = rename_ligand_chain, + substructure_match = substructure_match, + coverage_delta = coverage_delta, + max_symmetries = max_symmetries) + + self.bs_radius = bs_radius + self.lddt_lp_radius = lddt_lp_radius + self.model_bs_radius = model_bs_radius + self.binding_sites_topn = binding_sites_topn + self.full_bs_search = full_bs_search + + # Residues that are in contact with a ligand => binding site + # defined as all residues with at least one atom within self.radius + # key: ligand.handle.hash_code, value: EntityView of whatever + # entity ligand belongs to + self._binding_sites = dict() + + # cache for GetRepr chain mapping calls + self._repr = dict() + + # lazily precomputed variables to speedup GetRepr chain mapping calls + # for localized GetRepr searches + self.__chem_mapping = None + self.__chem_group_alns = None + self.__ref_mdl_alns = None + self.__chain_mapping_mdl = None + self._get_repr_input = dict() + + # update state decoding from parent with subclass specific stuff + self.state_decoding[10] = ("binding_site", + "No residues were in proximity of the " + "target ligand.") + self.state_decoding[11] = ("model_representation", "No representation " + "of the reference binding site was found in " + "the model, i.e. the binding site was not " + "modeled or the model ligand was positioned " + "too far in combination with " + "full_bs_search=False.") + self.state_decoding[20] = ("unknown", + "Unknown error occured in SCRMSDScorer") + + def _compute(self, symmetries, target_ligand, model_ligand): + """ Implements interface from parent + """ + # set default to invalid scores + best_rmsd_result = {"rmsd": None, + "lddt_lp": None, + "bs_ref_res": list(), + "bs_ref_res_mapped": list(), + "bs_mdl_res_mapped": list(), + "bb_rmsd": None, + "target_ligand": target_ligand, + "model_ligand": model_ligand, + "chain_mapping": dict(), + "transform": geom.Mat4(), + "inconsistent_residues": list()} + + representations = self._get_repr(target_ligand, model_ligand) + + for r in representations: + rmsd = _SCRMSD_symmetries(symmetries, model_ligand, + target_ligand, transformation=r.transform) + + if best_rmsd_result["rmsd"] is None or \ + rmsd < best_rmsd_result["rmsd"]: + best_rmsd_result = {"rmsd": rmsd, + "lddt_lp": r.lDDT, + "bs_ref_res": r.substructure.residues, + "bs_ref_res_mapped": r.ref_residues, + "bs_mdl_res_mapped": r.mdl_residues, + "bb_rmsd": r.bb_rmsd, + "target_ligand": target_ligand, + "model_ligand": model_ligand, + "chain_mapping": r.GetFlatChainMapping(), + "transform": r.transform, + "inconsistent_residues": + r.inconsistent_residues} + + target_ligand_state = 0 + model_ligand_state = 0 + pair_state = 0 + + if best_rmsd_result["rmsd"] is not None: + best_rmsd = best_rmsd_result["rmsd"] + else: + # try to identify error states + best_rmsd = np.nan + error_state = 20 # unknown error + N = self._get_target_binding_site(target_ligand).GetResidueCount() + if N == 0: + pair_state = 6 # binding_site + target_ligand_state = 10 + elif len(representations) == 0: + pair_state = 11 + + return (best_rmsd, pair_state, target_ligand_state, model_ligand_state, + best_rmsd_result) + + def _score_dir(self): + """ Implements interface from parent + """ + return '-' + + def _get_repr(self, target_ligand, model_ligand): + + key = None + if self.full_bs_search: + # all possible binding sites, independent from actual model ligand + key = (target_ligand.handle.hash_code, 0) + else: + key = (target_ligand.handle.hash_code, + model_ligand.handle.hash_code) + + if key not in self._repr: + ref_bs = self._get_target_binding_site(target_ligand) + if self.full_bs_search: + reprs = self._chain_mapper.GetRepr( + ref_bs, self.model, inclusion_radius=self.lddt_lp_radius, + topn=self.binding_sites_topn) + else: + repr_in = self._get_get_repr_input(model_ligand) + radius = self.lddt_lp_radius + reprs = self._chain_mapper.GetRepr(ref_bs, self.model, + inclusion_radius=radius, + topn=self.binding_sites_topn, + chem_mapping_result=repr_in) + self._repr[key] = reprs + + return self._repr[key] + + def _get_target_binding_site(self, target_ligand): + + if target_ligand.handle.hash_code not in self._binding_sites: + + # create view of reference binding site + ref_residues_hashes = set() # helper to keep track of added residues + ignored_residue_hashes = {target_ligand.hash_code} + for ligand_at in target_ligand.atoms: + close_atoms = self.target.FindWithin(ligand_at.GetPos(), + self.bs_radius) + for close_at in close_atoms: + # Skip any residue not in the chain mapping target + ref_res = close_at.GetResidue() + h = ref_res.handle.GetHashCode() + if h not in ref_residues_hashes and \ + h not in ignored_residue_hashes: + view = self._chain_mapper.target.ViewForHandle(ref_res) + if view.IsValid(): + h = ref_res.handle.GetHashCode() + ref_residues_hashes.add(h) + elif ref_res.is_ligand: + msg = f"Ignoring ligand {ref_res.qualified_name} " + msg += "in binding site of " + msg += str(target_ligand.qualified_name) + LogWarning(msg) + ignored_residue_hashes.add(h) + elif ref_res.chem_type == mol.ChemType.WATERS: + pass # That's ok, no need to warn + else: + msg = f"Ignoring residue {ref_res.qualified_name} " + msg += "in binding site of " + msg += str(target_ligand.qualified_name) + LogWarning(msg) + ignored_residue_hashes.add(h) + + ref_bs = self.target.CreateEmptyView() + if ref_residues_hashes: + # reason for doing that separately is to guarantee same ordering + # of residues as in underlying entity. (Reorder by ResNum seems + # only available on ChainHandles) + for ch in self.target.chains: + for r in ch.residues: + if r.handle.GetHashCode() in ref_residues_hashes: + ref_bs.AddResidue(r, mol.ViewAddFlag.INCLUDE_ALL) + if len(ref_bs.residues) == 0: + raise RuntimeError("Failed to add proximity residues to " + "the reference binding site entity") + + self._binding_sites[target_ligand.handle.hash_code] = ref_bs + + return self._binding_sites[target_ligand.handle.hash_code] + + @property + def _chem_mapping(self): + if self.__chem_mapping is None: + self.__chem_mapping, self.__chem_group_alns, \ + self.__chain_mapping_mdl = \ + self._chain_mapper.GetChemMapping(self.model) + return self.__chem_mapping + + @property + def _chem_group_alns(self): + if self.__chem_group_alns is None: + self.__chem_mapping, self.__chem_group_alns, \ + self.__chain_mapping_mdl = \ + self._chain_mapper.GetChemMapping(self.model) + return self.__chem_group_alns + + @property + def _ref_mdl_alns(self): + if self.__ref_mdl_alns is None: + self.__ref_mdl_alns = \ + chain_mapping._GetRefMdlAlns(self._chain_mapper.chem_groups, + self._chain_mapper.chem_group_alignments, + self._chem_mapping, + self._chem_group_alns) + return self.__ref_mdl_alns + + @property + def _chain_mapping_mdl(self): + if self.__chain_mapping_mdl is None: + self.__chem_mapping, self.__chem_group_alns, \ + self.__chain_mapping_mdl = \ + self._chain_mapper.GetChemMapping(self.model) + return self.__chain_mapping_mdl + + def _get_get_repr_input(self, mdl_ligand): + if mdl_ligand.handle.hash_code not in self._get_repr_input: + + # figure out what chains in the model are in contact with the ligand + # that may give a non-zero contribution to lDDT in + # chain_mapper.GetRepr + radius = self.model_bs_radius + chains = set() + for at in mdl_ligand.atoms: + close_atoms = self._chain_mapping_mdl.FindWithin(at.GetPos(), + radius) + for close_at in close_atoms: + chains.add(close_at.GetChain().GetName()) + + if len(chains) > 0: + + # the chain mapping model which only contains close chains + query = "cname=" + query += ','.join([mol.QueryQuoteName(x) for x in chains]) + mdl = self._chain_mapping_mdl.Select(query) + + # chem mapping which is reduced to the respective chains + chem_mapping = list() + for m in self._chem_mapping: + chem_mapping.append([x for x in m if x in chains]) + + self._get_repr_input[mdl_ligand.handle.hash_code] = \ + (mdl, chem_mapping) + + else: + self._get_repr_input[mdl_ligand.handle.hash_code] = \ + (self._chain_mapping_mdl.CreateEmptyView(), + [list() for _ in self._chem_mapping]) + + return (self._get_repr_input[mdl_ligand.hash_code][1], + self._chem_group_alns, + self._get_repr_input[mdl_ligand.hash_code][0]) + + +def SCRMSD(model_ligand, target_ligand, transformation=geom.Mat4(), + substructure_match=False, max_symmetries=1e6): + """Calculate symmetry-corrected RMSD. + + Binding site superposition must be computed separately and passed as + `transformation`. + + :param model_ligand: The model ligand + :type model_ligand: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + :param target_ligand: The target ligand + :type target_ligand: :class:`ost.mol.ResidueHandle` or + :class:`ost.mol.ResidueView` + :param transformation: Optional transformation to apply on each atom + position of model_ligand. + :type transformation: :class:`ost.geom.Mat4` + :param substructure_match: Set this to True to allow partial target + ligand. + :type substructure_match: :class:`bool` + :param max_symmetries: If more than that many isomorphisms exist, raise + a :class:`TooManySymmetriesError`. This can only be assessed by + generating at least that many isomorphisms and can take some time. + :type max_symmetries: :class:`int` + :rtype: :class:`float` + :raises: :class:`ost.mol.alg.ligand_scoring_base.NoSymmetryError` when no + symmetry can be found, + :class:`ost.mol.alg.ligand_scoring_base.DisconnectedGraphError` + when ligand graph is disconnected, + :class:`ost.mol.alg.ligand_scoring_base.TooManySymmetriesError` + when more than *max_symmetries* isomorphisms are found. + """ + + symmetries = ligand_scoring_base.ComputeSymmetries(model_ligand, + target_ligand, + substructure_match=substructure_match, + by_atom_index=True, + max_symmetries=max_symmetries) + return _SCRMSD_symmetries(symmetries, model_ligand, target_ligand, + transformation) + + +def _SCRMSD_symmetries(symmetries, model_ligand, target_ligand, + transformation): + """Compute SCRMSD with pre-computed symmetries. Internal. """ + + # setup numpy positions for model ligand and apply transformation + mdl_ligand_pos = np.ones((model_ligand.GetAtomCount(), 4)) + for a_idx, a in enumerate(model_ligand.atoms): + p = a.GetPos() + mdl_ligand_pos[a_idx, 0] = p[0] + mdl_ligand_pos[a_idx, 1] = p[1] + mdl_ligand_pos[a_idx, 2] = p[2] + np_transformation = np.zeros((4,4)) + for i in range(4): + for j in range(4): + np_transformation[i,j] = transformation[i,j] + mdl_ligand_pos = mdl_ligand_pos.dot(np_transformation.T)[:,:3] + + # setup numpy positions for target ligand + trg_ligand_pos = np.zeros((target_ligand.GetAtomCount(), 3)) + for a_idx, a in enumerate(target_ligand.atoms): + p = a.GetPos() + trg_ligand_pos[a_idx, 0] = p[0] + trg_ligand_pos[a_idx, 1] = p[1] + trg_ligand_pos[a_idx, 2] = p[2] + + # position matrices to iterate symmetries + # there is a guarantee that + # target_ligand.GetAtomCount() <= model_ligand.GetAtomCount() + # and that each target ligand atom is part of every symmetry + # => target_ligand.GetAtomCount() is size of both position matrices + rmsd_mdl_pos = np.zeros((target_ligand.GetAtomCount(), 3)) + rmsd_trg_pos = np.zeros((target_ligand.GetAtomCount(), 3)) + + # iterate symmetries and find the one with lowest RMSD + best_rmsd = np.inf + for i, (trg_sym, mdl_sym) in enumerate(symmetries): + for idx, (mdl_anum, trg_anum) in enumerate(zip(mdl_sym, trg_sym)): + rmsd_mdl_pos[idx,:] = mdl_ligand_pos[mdl_anum, :] + rmsd_trg_pos[idx,:] = trg_ligand_pos[trg_anum, :] + rmsd = np.sqrt(((rmsd_mdl_pos - rmsd_trg_pos)**2).sum(-1).mean()) + if rmsd < best_rmsd: + best_rmsd = rmsd + + return best_rmsd + +# specify public interface +__all__ = ('SCRMSDScorer', 'SCRMSD') diff --git a/modules/mol/alg/pymod/qsscore.py b/modules/mol/alg/pymod/qsscore.py index 9b95f56fbf6c4802fa110b044f183c826e3a7ed1..2c98d9fa71cf936854cf6838ad779f634372ea5c 100644 --- a/modules/mol/alg/pymod/qsscore.py +++ b/modules/mol/alg/pymod/qsscore.py @@ -213,11 +213,12 @@ class QSScorerResult: from `Xu et al. 2009 <https://dx.doi.org/10.1016%2Fj.jmb.2008.06.002>`_. """ def __init__(self, weighted_scores, weight_sum, weight_extra_mapped, - weight_extra_all): + weight_extra_all, complete_mapping): self._weighted_scores = weighted_scores self._weight_sum = weight_sum self._weight_extra_mapped = weight_extra_mapped self._weight_extra_all = weight_extra_all + self._complete_mapping = complete_mapping @property def weighted_scores(self): @@ -251,16 +252,39 @@ class QSScorerResult: """ return self._weight_extra_all + @property + def complete_mapping(self): + """ Whether the underlying mapping of the scored assemblies is complete + + In other words: If they have the same stoichiometry. This is relevant + for :attr:`~QS_best` and :attr:`~QS_global` in case of no contacts in + any of the scored entities. + + :type: :class:`bool` + """ + return self._complete_mapping + @property def QS_best(self): """ QS_best - the actual score as described in formula section above + If there are no contacts observed in any of the scored entities this + score is 1.0 if we're comparing structures with + :attr:`~complete_mapping`, 0.0 otherwise. In the example of two + monomers, no contacts can be observed but they exactly match in terms + of quaternary structure. Thus a perfect score. In terms of higher order + structure that becomes a bit more abstract but in principle they still + have the exact same quaternary structure if they match in stoichiometry + but have no single contact. + :type: :class:`float` """ nominator = self.weighted_scores denominator = self.weight_sum + self.weight_extra_mapped if denominator != 0.0: return nominator/denominator + elif self.complete_mapping: + return 1.0 else: return 0.0 @@ -268,12 +292,23 @@ class QSScorerResult: def QS_global(self): """ QS_global - the actual score as described in formula section above + If there are no contacts observed in any of the scored entities this + score is 1.0 if we're comparing structures with + :attr:`~complete_mapping`, 0.0 otherwise. In the example of two + monomers, no contacts can be observed but they exactly match in terms + of quaternary structure. Thus a perfect score. In terms of higher order + structure that becomes a bit more abstract but in principle they still + have the exact same quaternary structure if they match in stoichiometry + but have no single contact. + :type: :class:`float` """ nominator = self.weighted_scores denominator = self.weight_sum + self.weight_extra_all if denominator != 0.0: return nominator/denominator + elif self.complete_mapping: + return 1.0 else: return 0.0 @@ -453,6 +488,11 @@ class QSScorer: This only works for interfaces that are computed in :func:`Score`, i.e. interfaces for which the alignments are set up correctly. + As all specified chains must be present, the mapping is considered + complete which affects + :attr:`QSScorerResult.QS_global`/:attr:`QSScorerResult.QS_best` in + edge cases of no observed contacts. + :param trg_ch1: Name of first interface chain in target :type trg_ch1: :class:`str` :param trg_ch2: Name of second interface chain in target @@ -480,7 +520,10 @@ class QSScorer: trg_int = (trg_ch1, trg_ch2) mdl_int = (mdl_ch1, mdl_ch2) a, b, c, d = self._MappedInterfaceScores(trg_int, mdl_int) - return QSScorerResult(a, b, c, d) + + # complete_mapping is True by definition, as the requested chain pairs + # are both present + return QSScorerResult(a, b, c, d, True) def FromFlatMapping(self, flat_mapping): """ Same as :func:`Score` but with flat mapping @@ -526,8 +569,16 @@ class QSScorer: else: weight_extra_all += self._InterfacePenalty2(int2) + trg_chains = sorted(self.qsent1.chain_names) # should be sorted already + mdl_chains = sorted(self.qsent2.chain_names) # should be sorted already + mapped_trg_chains = sorted(flat_mapping.keys()) + mapped_mdl_chains = sorted(flat_mapping.values()) + trg_complete = trg_chains == mapped_trg_chains + mdl_complete = mdl_chains == mapped_mdl_chains + complete_mapping = trg_complete and mdl_complete + return QSScorerResult(weighted_scores, weight_sum, weight_extra_mapped, - weight_extra_all) + weight_extra_all, complete_mapping) def _MappedInterfaceScores(self, int1, int2): key_one = (int1, int2) @@ -700,4 +751,4 @@ class QSScorer: return penalty # specify public interface -__all__ = ('QSEntity', 'QSScorer') +__all__ = ('QSEntity', 'QSScorer', 'QSScorerResult') diff --git a/modules/mol/alg/pymod/scoring.py b/modules/mol/alg/pymod/scoring.py index 0f8e3ee560849f6fb60d60c8a07f663e8a8fe822..4444e463709703042b6395da3c866804cd971237 100644 --- a/modules/mol/alg/pymod/scoring.py +++ b/modules/mol/alg/pymod/scoring.py @@ -5,6 +5,7 @@ from ost import io from ost import conop from ost import settings from ost import geom +from ost import LogScript, LogInfo, LogDebug from ost.mol.alg import lddt from ost.mol.alg import qsscore from ost.mol.alg import chain_mapping @@ -13,6 +14,8 @@ from ost.mol.alg import dockq from ost.mol.alg.lddt import lDDTScorer from ost.mol.alg.qsscore import QSScorer from ost.mol.alg.contact_score import ContactScorer +from ost.mol.alg.contact_score import ContactEntity +from ost.mol.alg import GDT from ost.mol.alg import Molck, MolckSettings from ost import bindings from ost.bindings import cadscore @@ -121,7 +124,14 @@ class Scorer: :param custom_mapping: Provide custom chain mapping between *model* and *target*. Dictionary with target chain names as key and model chain names as value. + :attr:`~mapping` is constructed from this. :type custom_mapping: :class:`dict` + :param custom_rigid_mapping: Provide custom chain mapping between *model* + and *target*. Dictionary with target chain + names as key and model chain names as value. + :attr:`~rigid_mapping` is constructed from + this. + :type custom_rigid_mapping: :class:`dict` :param usalign_exec: Explicit path to USalign executable used to compute TM-score. If not given, TM-score will be computed with OpenStructure internal copy of USalign code. @@ -137,9 +147,9 @@ class Scorer: A structure with stoichiometry A6B2 would be 6!*2! = 1440 etc. :type n_max_naive: :class:`int` - :param oum: Override USalign Mapping. Inject mapping of :class:`Scorer` - object into USalign to compute TM-score. Experimental feature - with limitations. + :param oum: Override USalign Mapping. Inject rigid_mapping of + :class:`Scorer` object into USalign to compute TM-score. + Experimental feature with limitations. :type oum: :class:`bool` :param min_pep_length: Relevant parameter if short peptides are involved in scoring. Minimum peptide length for a chain in the @@ -162,12 +172,43 @@ class Scorer: produce high sequence identity alignments by pure chance. :type min_nuc_length: :class:`int` + :param lddt_add_mdl_contacts: lDDT specific flag. Only using contacts in + lDDT that are within a certain distance + threshold in the target does not penalize + for added model contacts. If set to True, this + flag will also consider target contacts + that are within the specified distance + threshold in the model but not necessarily in + the target. No contact will be added if the + respective atom pair is not resolved in the + target. + :type lddt_add_mdl_contacts: :class:`bool` + :param dockq_capri_peptide: Flag that changes two things in the way DockQ + and its underlying scores are computed which is + proposed by the CAPRI community when scoring + peptides (PMID: 31886916). + ONE: Two residues are considered in contact if + any of their atoms is within 5A. This is + relevant for fnat and fnonat scores. CAPRI + suggests to lower this threshold to 4A for + protein-peptide interactions. + TWO: irmsd is computed on interface residues. A + residue is defined as interface residue if any + of its atoms is within 10A of another chain. + CAPRI suggests to lower the default of 10A to + 8A in combination with only considering CB atoms + for protein-peptide interactions. + This flag has no influence on patch_dockq + scores. + :type dockq_capri_peptide: :class:`bool` """ def __init__(self, model, target, resnum_alignments=False, molck_settings = None, cad_score_exec = None, - custom_mapping=None, usalign_exec = None, - lddt_no_stereochecks=False, n_max_naive=40320, - oum=False, min_pep_length = 6, min_nuc_length = 4): + custom_mapping=None, custom_rigid_mapping=None, + usalign_exec = None, lddt_no_stereochecks=False, + n_max_naive=40320, oum=False, min_pep_length = 6, + min_nuc_length = 4, lddt_add_mdl_contacts=False, + dockq_capri_peptide=False): self._target_orig = target self._model_orig = model @@ -191,6 +232,7 @@ class Scorer: colored=False, map_nonstd_res=True, assign_elem=True) + LogScript("Cleaning up input structures") Molck(self._model, conop.GetDefaultLib(), molck_settings) Molck(self._target, conop.GetDefaultLib(), molck_settings) self._model = self._model.Select("peptide=True or nucleotide=True") @@ -254,6 +296,8 @@ class Scorer: self.oum = oum self.min_pep_length = min_pep_length self.min_nuc_length = min_nuc_length + self.lddt_add_mdl_contacts = lddt_add_mdl_contacts + self.dockq_capri_peptide = dockq_capri_peptide # lazily evaluated attributes self._stereochecked_model = None @@ -266,6 +310,7 @@ class Scorer: self._target_bad_angles = None self._chain_mapper = None self._mapping = None + self._rigid_mapping = None self._model_interface_residues = None self._target_interface_residues = None self._aln = None @@ -283,6 +328,7 @@ class Scorer: self._local_lddt = None self._bb_lddt = None self._bb_local_lddt = None + self._ilddt = None self._qs_global = None self._qs_best = None @@ -328,6 +374,18 @@ class Scorer: self._transformed_mapped_model_pos = None self._n_target_not_mapped = None self._transform = None + + self._rigid_mapped_target_pos = None + self._rigid_mapped_model_pos = None + self._rigid_transformed_mapped_model_pos = None + self._rigid_n_target_not_mapped = None + self._rigid_transform = None + + self._gdt_05 = None + self._gdt_1 = None + self._gdt_2 = None + self._gdt_4 = None + self._gdt_8 = None self._gdtts = None self._gdtha = None self._rmsd = None @@ -342,7 +400,12 @@ class Scorer: self._usalign_mapping = None if custom_mapping is not None: - self._set_custom_mapping(custom_mapping) + self._mapping = self._construct_custom_mapping(custom_mapping) + + if custom_rigid_mapping is not None: + self._rigid_mapping = \ + self._construct_custom_mapping(custom_rigid_mapping) + LogDebug("Scorer sucessfully initialized") @property def model(self): @@ -523,14 +586,31 @@ class Scorer: def mapping(self): """ Full chain mapping result for :attr:`target`/:attr:`model` + Computed with :func:`ost.mol.alg.ChainMapper.GetMapping` + :type: :class:`ost.mol.alg.chain_mapping.MappingResult` """ if self._mapping is None: + LogScript("Computing chain mapping") self._mapping = \ self.chain_mapper.GetMapping(self.model, n_max_naive = self.n_max_naive) return self._mapping + @property + def rigid_mapping(self): + """ Full chain mapping result for :attr:`target`/:attr:`model` + + Computed with :func:`ost.mol.alg.ChainMapper.GetRMSDMapping` + + :type: :class:`ost.mol.alg.chain_mapping.MappingResult` + """ + if self._rigid_mapping is None: + LogScript("Computing rigid chain mapping") + self._rigid_mapping = \ + self.chain_mapper.GetRMSDMapping(self.model) + return self._rigid_mapping + @property def model_interface_residues(self): """ Interface residues in :attr:`~model` @@ -664,6 +744,24 @@ class Scorer: self._compute_bb_lddt() return self._bb_local_lddt + @property + def ilddt(self): + """ Global interface lDDT score in range [0.0, 1.0] + + This is lDDT only based on inter-chain contacts. Value is None if no + such contacts are present. For example if we're dealing with a monomer. + Computed based on :attr:`~stereochecked_model` and :attr:`~mapping` for + chain mapping. + + :type: :class:`float` + """ + if self._ilddt is None: + # the whole None business kind of invalidates the idea of lazy + # evaluation. The assumption is that this is called only once... + self._compute_ilddt() + return self._ilddt + + @property def qs_global(self): """ Global QS-score @@ -976,18 +1074,32 @@ class Scorer: def dockq_target_interfaces(self): """ Interfaces in :attr:`target` that are relevant for DockQ - In principle a subset of :attr:`~contact_target_interfaces` that only - contains peptide sequences. Chain names are lexicographically sorted. + All interfaces in :attr:`~target` with non-zero contacts that are + relevant for DockQ. Chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 2 elements each: (trg_ch1, trg_ch2) """ if self._dockq_target_interfaces is None: - self._dockq_target_interfaces = list() + + # interacting chains are identified with ContactEntity + contact_d = 5.0 + if self.dockq_capri_peptide: + contact_d = 4.0 + cent = ContactEntity(self.target, contact_mode = "aa", + contact_d = contact_d) + + # fetch lexicographically sorted interfaces + interfaces = cent.interacting_chains + interfaces = [(min(x[0],x[1]), max(x[0],x[1])) for x in interfaces] + + # select the ones with only peptides involved pep_seqs = set([s.GetName() for s in self.chain_mapper.polypep_seqs]) - for interface in self.contact_target_interfaces: + self._dockq_target_interfaces = list() + for interface in interfaces: if interface[0] in pep_seqs and interface[1] in pep_seqs: self._dockq_target_interfaces.append(interface) + return self._dockq_target_interfaces @property @@ -1211,57 +1323,198 @@ class Scorer: return self._transform @property - def gdtts(self): - """ GDT with thresholds: 8.0A, 4.0A, 2.0A and 1.0A + def rigid_mapped_target_pos(self): + """ Mapped representative positions in target - Computed on :attr:`~transformed_mapped_model_pos` and - :attr:`mapped_target_pos` + Thats CA positions for peptide residues and C3' positions for + nucleotides. Has same length as :attr:`~rigid_mapped_model_pos` and mapping + is based on :attr:`~rigid_mapping`. - :type: :class:`float` + :type: :class:`ost.geom.Vec3List` """ - if self._gdtts is None: - n = \ - self.mapped_target_pos.GetGDTTS(self.transformed_mapped_model_pos, - norm=False) - n_full = 4*len(self.mapped_target_pos) + 4*self.n_target_not_mapped + if self._rigid_mapped_target_pos is None: + self._extract_rigid_mapped_pos() + return self._rigid_mapped_target_pos + + @property + def rigid_mapped_model_pos(self): + """ Mapped representative positions in model + + Thats CA positions for peptide residues and C3' positions for + nucleotides. Has same length as :attr:`~mapped_target_pos` and mapping + is based on :attr:`~rigid_mapping`. + + :type: :class:`ost.geom.Vec3List` + """ + if self._rigid_mapped_model_pos is None: + self._extract_rigid_mapped_pos() + return self._rigid_mapped_model_pos + + @property + def rigid_transformed_mapped_model_pos(self): + """ :attr:`~rigid_mapped_model_pos` with :attr:`~rigid_transform` applied + + :type: :class:`ost.geom.Vec3List` + """ + if self._rigid_transformed_mapped_model_pos is None: + self._rigid_transformed_mapped_model_pos = \ + geom.Vec3List(self.rigid_mapped_model_pos) + self._rigid_transformed_mapped_model_pos.ApplyTransform(self.rigid_transform) + return self._rigid_transformed_mapped_model_pos + + @property + def rigid_n_target_not_mapped(self): + """ Number of target residues which have no rigid mapping to model + + :type: :class:`int` + """ + if self._rigid_n_target_not_mapped is None: + self._extract_rigid_mapped_pos() + return self._rigid_n_target_not_mapped + + @property + def rigid_transform(self): + """ Transform: :attr:`~rigid_mapped_model_pos` onto :attr:`~rigid_mapped_target_pos` + + Computed using Kabsch minimal rmsd algorithm + + :type: :class:`ost.geom.Mat4` + """ + if self._rigid_transform is None: + try: + res = mol.alg.SuperposeSVD(self.rigid_mapped_model_pos, + self.rigid_mapped_target_pos) + self._rigid_transform = res.transformation + except: + self._rigid_transform = geom.Mat4() + return self._rigid_transform + + @property + def gdt_05(self): + """ Fraction CA (C3' for nucleotides) that can be superposed within 0.5A + + Uses :attr:`~rigid_mapped_model_pos` and :attr:`~rigid_mapped_target_pos`. + Similar iterative algorithm as LGA tool + + :type: :class:`float` + """ + if self._gdt_05 is None: + n, m = GDT(self.rigid_mapped_model_pos, self.rigid_mapped_target_pos, 7, 1000, 0.5) + n_full = len(self.rigid_mapped_target_pos) + self.rigid_n_target_not_mapped + if n_full > 0: + self._gdt_05 = float(n) / n_full + else: + self._gdt_05 = 0.0 + return self._gdt_05 + + @property + def gdt_1(self): + """ Fraction CA (C3' for nucleotides) that can be superposed within 1.0A + + Uses :attr:`~rigid_mapped_model_pos` and :attr:`~rigid_mapped_target_pos`. + Similar iterative algorithm as LGA tool + + :type: :class:`float` + """ + if self._gdt_1 is None: + n, m = GDT(self.rigid_mapped_model_pos, self.rigid_mapped_target_pos, 7, 1000, 1.0) + n_full = len(self.rigid_mapped_target_pos) + self.rigid_n_target_not_mapped + if n_full > 0: + self._gdt_1 = float(n) / n_full + else: + self._gdt_1 = 0.0 + return self._gdt_1 + + @property + def gdt_2(self): + """ Fraction CA (C3' for nucleotides) that can be superposed within 2.0A + + Uses :attr:`~rigid_mapped_model_pos` and :attr:`~rigid_mapped_target_pos`. + Similar iterative algorithm as LGA tool + + + :type: :class:`float` + """ + if self._gdt_2 is None: + n, m = GDT(self.rigid_mapped_model_pos, self.rigid_mapped_target_pos, 7, 1000, 2.0) + n_full = len(self.rigid_mapped_target_pos) + self.rigid_n_target_not_mapped + if n_full > 0: + self._gdt_2 = float(n) / n_full + else: + self._gdt_2 = 0.0 + return self._gdt_2 + + @property + def gdt_4(self): + """ Fraction CA (C3' for nucleotides) that can be superposed within 4.0A + + Uses :attr:`~rigid_mapped_model_pos` and :attr:`~rigid_mapped_target_pos`. + Similar iterative algorithm as LGA tool + + :type: :class:`float` + """ + if self._gdt_4 is None: + n, m = GDT(self.rigid_mapped_model_pos, self.rigid_mapped_target_pos, 7, 1000, 4.0) + n_full = len(self.rigid_mapped_target_pos) + self.rigid_n_target_not_mapped if n_full > 0: - self._gdtts = float(n) / n_full + self._gdt_4 = float(n) / n_full else: - self._gdtts = 0.0 + self._gdt_4 = 0.0 + return self._gdt_4 + + @property + def gdt_8(self): + """ Fraction CA (C3' for nucleotides) that can be superposed within 8.0A + + Similar iterative algorithm as LGA tool + + :type: :class:`float` + """ + if self._gdt_8 is None: + n, m = GDT(self.rigid_mapped_model_pos, self.rigid_mapped_target_pos, 7, 1000, 8.0) + n_full = len(self.rigid_mapped_target_pos) + self.rigid_n_target_not_mapped + if n_full > 0: + self._gdt_8 = float(n) / n_full + else: + self._gdt_8 = 0.0 + return self._gdt_8 + + + @property + def gdtts(self): + """ avg GDT with thresholds: 8.0A, 4.0A, 2.0A and 1.0A + + :type: :class:`float` + """ + if self._gdtts is None: + LogScript("Computing GDT-TS score") + self._gdtts = (self.gdt_1 + self.gdt_2 + self.gdt_4 + self.gdt_8) / 4 return self._gdtts @property def gdtha(self): - """ GDT with thresholds: 4.0A, 2.0A, 1.0A and 0.5A - - Computed on :attr:`~transformed_mapped_model_pos` and - :attr:`mapped_target_pos` + """ avg GDT with thresholds: 4.0A, 2.0A, 1.0A and 0.5A :type: :class:`float` """ if self._gdtha is None: - n = \ - self.mapped_target_pos.GetGDTHA(self.transformed_mapped_model_pos, - norm=False) - n_full = 4*len(self.mapped_target_pos) + 4*self.n_target_not_mapped - if n_full > 0: - self._gdtha = float(n) / n_full - else: - self._gdtha = 0.0 + LogScript("Computing GDT-HA score") + self._gdtha = (self.gdt_05 + self.gdt_1 + self.gdt_2 + self.gdt_4) / 4 return self._gdtha @property def rmsd(self): """ RMSD - Computed on :attr:`~transformed_mapped_model_pos` and - :attr:`mapped_target_pos` + Computed on :attr:`~rigid_transformed_mapped_model_pos` and + :attr:`rigid_mapped_target_pos` :type: :class:`float` """ if self._rmsd is None: + LogScript("Computing RMSD") self._rmsd = \ - self.mapped_target_pos.GetRMSD(self.transformed_mapped_model_pos) + self.rigid_mapped_target_pos.GetRMSD(self.rigid_transformed_mapped_model_pos) return self._rmsd @property @@ -1368,14 +1621,14 @@ class Scorer: cname = ch.GetName() s = ''.join([r.one_letter_code for r in ch.residues]) s = seq.CreateSequence(ch.GetName(), s) - s.AttachView(target.Select(f"cname='{cname}'")) + s.AttachView(target.Select(f"cname={mol.QueryQuoteName(cname)}")) trg_seqs[ch.GetName()] = s mdl_seqs = dict() for ch in model.chains: cname = ch.GetName() s = ''.join([r.one_letter_code for r in ch.residues]) s = seq.CreateSequence(cname, s) - s.AttachView(model.Select(f"cname='{cname}'")) + s.AttachView(model.Select(f"cname={mol.QueryQuoteName(cname)}")) mdl_seqs[ch.GetName()] = s alns = list() @@ -1413,6 +1666,7 @@ class Scorer: self.stereochecked_model) def _compute_lddt(self): + LogScript("Computing all-atom lDDT") # lDDT requires a flat mapping with mdl_ch as key and trg_ch as value flat_mapping = self.mapping.GetFlatMapping(mdl_as_key=True) @@ -1439,7 +1693,8 @@ class Scorer: chain_mapping = lddt_chain_mapping, residue_mapping = alns, check_resnames=False, - local_lddt_prop="lddt")[0] + local_lddt_prop="lddt", + add_mdl_contacts = self.lddt_add_mdl_contacts)[0] local_lddt = dict() for r in self.model.residues: cname = r.GetChain().GetName() @@ -1462,7 +1717,8 @@ class Scorer: chain_mapping = lddt_chain_mapping, residue_mapping = stereochecked_alns, check_resnames=False, - local_lddt_prop="lddt")[0] + local_lddt_prop="lddt", + add_mdl_contacts = self.lddt_add_mdl_contacts)[0] local_lddt = dict() for r in self.model.residues: cname = r.GetChain().GetName() @@ -1499,7 +1755,7 @@ class Scorer: self._local_lddt = local_lddt def _compute_bb_lddt(self): - + LogScript("Computing backbone lDDT") # make alignments accessible by mdl seq name alns = dict() for aln in self.aln: @@ -1517,7 +1773,8 @@ class Scorer: chain_mapping = lddt_chain_mapping, residue_mapping = alns, check_resnames=False, - local_lddt_prop="bb_lddt")[0] + local_lddt_prop="bb_lddt", + add_mdl_contacts = self.lddt_add_mdl_contacts)[0] local_lddt = dict() for r in self.model.residues: cname = r.GetChain().GetName() @@ -1534,12 +1791,53 @@ class Scorer: self._bb_lddt = lddt_score self._bb_local_lddt = local_lddt + def _compute_ilddt(self): + LogScript("Computing all-atom ilDDT") + # lDDT requires a flat mapping with mdl_ch as key and trg_ch as value + flat_mapping = self.mapping.GetFlatMapping(mdl_as_key=True) + + if self.lddt_no_stereochecks: + alns = dict() + for aln in self.aln: + mdl_seq = aln.GetSequence(1) + alns[mdl_seq.name] = aln + lddt_chain_mapping = dict() + for mdl_ch, trg_ch in flat_mapping.items(): + if mdl_ch in alns: + lddt_chain_mapping[mdl_ch] = trg_ch + self._ilddt = self.lddt_scorer.lDDT(self.model, + chain_mapping = lddt_chain_mapping, + residue_mapping = alns, + check_resnames=False, + local_lddt_prop="lddt", + add_mdl_contacts = self.lddt_add_mdl_contacts, + no_intrachain=True)[0] + else: + alns = dict() + for aln in self.stereochecked_aln: + mdl_seq = aln.GetSequence(1) + alns[mdl_seq.name] = aln + lddt_chain_mapping = dict() + for mdl_ch, trg_ch in flat_mapping.items(): + if mdl_ch in alns: + lddt_chain_mapping[mdl_ch] = trg_ch + self._ilddt = self.lddt_scorer.lDDT(self.stereochecked_model, + chain_mapping = lddt_chain_mapping, + residue_mapping = alns, + check_resnames=False, + local_lddt_prop="lddt", + add_mdl_contacts = self.lddt_add_mdl_contacts, + no_intrachain=True)[0] + + def _compute_qs(self): + LogScript("Computing global QS-score") qs_score_result = self.qs_scorer.Score(self.mapping.mapping) self._qs_global = qs_score_result.QS_global self._qs_best = qs_score_result.QS_best def _compute_per_interface_qs_scores(self): + LogScript("Computing per-interface QS-score") self._per_interface_qs_global = list() self._per_interface_qs_best = list() @@ -1554,6 +1852,7 @@ class Scorer: self._per_interface_qs_global.append(qs_res.QS_global) def _compute_ics_scores(self): + LogScript("Computing ICS scores") contact_scorer_res = self.contact_scorer.ScoreICS(self.mapping.mapping) self._ics_precision = contact_scorer_res.precision self._ics_recall = contact_scorer_res.recall @@ -1579,6 +1878,7 @@ class Scorer: self._per_interface_ics.append(None) def _compute_ips_scores(self): + LogScript("Computing IPS scores") contact_scorer_res = self.contact_scorer.ScoreIPS(self.mapping.mapping) self._ips_precision = contact_scorer_res.precision self._ips_recall = contact_scorer_res.recall @@ -1605,6 +1905,7 @@ class Scorer: self._per_interface_ips.append(None) def _compute_dockq_scores(self): + LogScript("Computing DockQ") # lists with values in contact_target_interfaces self._dockq_scores = list() self._fnat = list() @@ -1627,9 +1928,17 @@ class Scorer: mdl_ch2 = interface[3] aln1 = dockq_alns[(trg_ch1, mdl_ch1)] aln2 = dockq_alns[(trg_ch2, mdl_ch2)] - res = dockq.DockQ(self.model, self.target, mdl_ch1, mdl_ch2, - trg_ch1, trg_ch2, ch1_aln=aln1, - ch2_aln=aln2) + if self.dockq_capri_peptide: + res = dockq.DockQ(self.model, self.target, mdl_ch1, mdl_ch2, + trg_ch1, trg_ch2, ch1_aln=aln1, + ch2_aln=aln2, contact_dist_thresh = 4.0, + interface_dist_thresh=8.0, + interface_cb = True) + else: + res = dockq.DockQ(self.model, self.target, mdl_ch1, mdl_ch2, + trg_ch1, trg_ch2, ch1_aln=aln1, + ch2_aln=aln2) + self._fnat.append(res["fnat"]) self._fnonnat.append(res["fnonnat"]) self._irmsd.append(res["irmsd"]) @@ -1650,8 +1959,17 @@ class Scorer: # match for sure trg_ch1 = interface[0] trg_ch2 = interface[1] - res = dockq.DockQ(self.target, self.target, - trg_ch1, trg_ch2, trg_ch1, trg_ch2) + + if self.dockq_capri_peptide: + res = dockq.DockQ(self.target, self.target, + trg_ch1, trg_ch2, trg_ch1, trg_ch2, + contact_dist_thresh = 4.0, + interface_dist_thresh=8.0, + interface_cb = True) + else: + res = dockq.DockQ(self.target, self.target, + trg_ch1, trg_ch2, trg_ch1, trg_ch2) + not_covered_counts.append(res["nnat"]) # there are 4 types of combined scores @@ -1701,6 +2019,35 @@ class Scorer: if ch.GetName() not in processed_trg_chains: self._n_target_not_mapped += len(ch.residues) + + def _extract_rigid_mapped_pos(self): + self._rigid_mapped_target_pos = geom.Vec3List() + self._rigid_mapped_model_pos = geom.Vec3List() + self._rigid_n_target_not_mapped = 0 + processed_trg_chains = set() + for trg_ch, mdl_ch in self.rigid_mapping.GetFlatMapping().items(): + processed_trg_chains.add(trg_ch) + aln = self.rigid_mapping.alns[(trg_ch, mdl_ch)] + for col in aln: + if col[0] != '-' and col[1] != '-': + trg_res = col.GetResidue(0) + mdl_res = col.GetResidue(1) + trg_at = trg_res.FindAtom("CA") + mdl_at = mdl_res.FindAtom("CA") + if not trg_at.IsValid(): + trg_at = trg_res.FindAtom("C3'") + if not mdl_at.IsValid(): + mdl_at = mdl_res.FindAtom("C3'") + self._rigid_mapped_target_pos.append(trg_at.GetPos()) + self._rigid_mapped_model_pos.append(mdl_at.GetPos()) + elif col[0] != '-': + self._rigid_n_target_not_mapped += 1 + # count number of trg residues from non-mapped chains + for ch in self.rigid_mapping.target.chains: + if ch.GetName() not in processed_trg_chains: + self._rigid_n_target_not_mapped += len(ch.residues) + + def _compute_cad_score(self): if not self.resnum_alignments: raise RuntimeError("CAD score computations rely on residue numbers " @@ -1708,6 +2055,7 @@ class Scorer: "chains, i.e. only work if resnum_alignments " "is True at Scorer construction.") try: + LogScript("Computing CAD score") cad_score_exec = \ settings.Locate("voronota-cadscore", explicit_file_name=self.cad_score_exec) @@ -1767,13 +2115,14 @@ class Scorer: result = {ch.GetName(): list() for ch in ent.chains} for ch in ent.chains: cname = ch.GetName() - sel = repr_ent.Select(f"(cname='{cname}' and 8 <> [cname!='{cname}'])") + sel = repr_ent.Select(f"(cname={mol.QueryQuoteName(cname)} and 8 <> [cname!={mol.QueryQuoteName(cname)}])") result[cname] = [r.GetNumber() for r in sel.residues] return result def _do_stereochecks(self): """ Perform stereochemistry checks on model and target """ + LogInfo("Performing stereochemistry checks on model and target") data = stereochemistry.GetDefaultStereoData() l_data = stereochemistry.GetDefaultStereoLinkData() @@ -1834,9 +2183,9 @@ class Scorer: # => all residues within 8A of r and within 12A of any other chain # q1 selects for everything in same chain and within 8A of r_pos - q1 = f"(cname='{mdl_ch}' and 8 <> {{{r_pos[0]},{r_pos[1]},{r_pos[2]}}})" + q1 = f"(cname={mol.QueryQuoteName(mdl_ch)} and 8 <> {{{r_pos[0]},{r_pos[1]},{r_pos[2]}}})" # q2 selects for everything within 12A of any other chain - q2 = f"(12 <> [cname!={mdl_ch}])" + q2 = f"(12 <> [cname!={mol.QueryQuoteName(mdl_ch)}])" mdl_patch_one = self.model.CreateEmptyView() sel = repr_mdl.Select(" and ".join([q1, q2])) for r in sel.residues: @@ -1847,7 +2196,7 @@ class Scorer: # the closest residue to r is identified in any other chain, and the # patch is filled with residues that are within 8A of that residue and # within 12A of chain from r - sel = repr_mdl.Select(f"(cname!='{mdl_ch}')") + sel = repr_mdl.Select(f"(cname!={mol.QueryQuoteName(mdl_ch)})") close_stuff = sel.FindWithin(r_pos, 8) min_pos = None min_dist = 42.0 @@ -1858,9 +2207,9 @@ class Scorer: min_dist = dist # q1 selects for everything not in mdl_ch but within 8A of min_pos - q1 = f"(cname!='{mdl_ch}' and 8 <> {{{min_pos[0]},{min_pos[1]},{min_pos[2]}}})" + q1 = f"(cname!={mol.QueryQuoteName(mdl_ch)} and 8 <> {{{min_pos[0]},{min_pos[1]},{min_pos[2]}}})" # q2 selects for everything within 12A of mdl_ch - q2 = f"(12 <> [cname='{mdl_ch}'])" + q2 = f"(12 <> [cname={mol.QueryQuoteName(mdl_ch)}])" mdl_patch_two = self.model.CreateEmptyView() sel = repr_mdl.Select(" and ".join([q1, q2])) for r in sel.residues: @@ -1908,6 +2257,7 @@ class Scorer: trg_patch_one, trg_patch_two) def _compute_patchqs_scores(self): + LogScript("Computing patch QS-scores") self._patch_qs = dict() for cname, rnums in self.model_interface_residues.items(): scores = list() @@ -1925,6 +2275,7 @@ class Scorer: self._patch_qs[cname] = scores def _compute_patchdockq_scores(self): + LogScript("Computing patch DockQ scores") self._patch_dockq = dict() for cname, rnums in self.model_interface_residues.items(): scores = list() @@ -2028,12 +2379,13 @@ class Scorer: ed.InsertAtom(added_r, a.handle) return ent - def _set_custom_mapping(self, mapping): - """ sets self._mapping with a full blown MappingResult object + def _construct_custom_mapping(self, mapping): + """ constructs a full blown MappingResult object from simple dict :param mapping: mapping with trg chains as key and mdl ch as values :type mapping: :class:`dict` """ + LogInfo("Setting custom chain mapping") chain_mapper = self.chain_mapper chem_mapping, chem_group_alns, mdl = \ @@ -2111,29 +2463,33 @@ class Scorer: for ref_ch, mdl_ch in zip(ref_group, mdl_group): if ref_ch is not None and mdl_ch is not None: aln = ref_mdl_alns[(ref_ch, mdl_ch)] - trg_view = chain_mapper.target.Select(f"cname='{ref_ch}'") - mdl_view = mdl.Select(f"cname='{mdl_ch}'") + trg_view = chain_mapper.target.Select(f"cname={mol.QueryQuoteName(ref_ch)}") + mdl_view = mdl.Select(f"cname={mol.QueryQuoteName(mdl_ch)}") aln.AttachView(0, trg_view) aln.AttachView(1, mdl_view) alns[(ref_ch, mdl_ch)] = aln - self._mapping = chain_mapping.MappingResult(chain_mapper.target, mdl, - chain_mapper.chem_groups, - chem_mapping, - final_mapping, alns) + return chain_mapping.MappingResult(chain_mapper.target, mdl, + chain_mapper.chem_groups, + chem_mapping, + final_mapping, alns) def _compute_tmscore(self): res = None if self.usalign_exec is None: + LogScript("Computing patch TM-score with USalign exectuable") if self.oum: - flat_mapping = self.mapping.GetFlatMapping() + flat_mapping = self.rigid_mapping.GetFlatMapping() + LogInfo("Overriding TM-score chain mapping") res = res = bindings.WrappedMMAlign(self.model, self.target, mapping=flat_mapping) else: res = bindings.WrappedMMAlign(self.model, self.target) else: + LogScript("Computing patch TM-score with built-in USalign") if self.oum: - flat_mapping = self.mapping.GetFlatMapping() + LogInfo("Overriding TM-score chain mapping") + flat_mapping = self.rigid_mapping.GetFlatMapping() res = tmtools.USAlign(self.model, self.target, usalign = self.usalign_exec, custom_chain_mapping = flat_mapping) @@ -2145,3 +2501,6 @@ class Scorer: self._usalign_mapping = dict() for a,b in zip(res.ent1_mapped_chains, res.ent2_mapped_chains): self._usalign_mapping[b] = a + +# specify public interface +__all__ = ('lDDTBSScorer', 'Scorer',) diff --git a/modules/mol/alg/pymod/stereochemistry.py b/modules/mol/alg/pymod/stereochemistry.py index b6aa98a58406036ede61eb3a072d5982fd0b50f7..1a2d7fb1a0eda0974d4dcb3bdafc44eb4b80b81c 100644 --- a/modules/mol/alg/pymod/stereochemistry.py +++ b/modules/mol/alg/pymod/stereochemistry.py @@ -1,3 +1,13 @@ +""" +.. note:: + + This is a new implementation of the stereochemistry checks, introduced in + OpenStructure 2.4, with support for nucleotides. The + :doc:`previous stereochemistry checks <stereochemistry_deprecated>` that come + with `Mariani et al. <https://dx.doi.org/10.1093/bioinformatics/btt473>`_ are + considered deprecated. +""" + import os import json import datetime diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc index 295bea2bb84a0a3beb7784e26a9ae4efd81a9089..09c00839255461c923860b0e3a289aa7797432c8 100644 --- a/modules/mol/alg/pymod/wrap_mol_alg.cc +++ b/modules/mol/alg/pymod/wrap_mol_alg.cc @@ -51,6 +51,7 @@ void export_sec_struct_segments(); void export_find_membrane(); void export_entity_to_density(); void export_biounit(); +void export_GDT(); namespace { @@ -323,6 +324,7 @@ BOOST_PYTHON_MODULE(_ost_mol_alg) export_find_membrane(); export_entity_to_density(); export_biounit(); + export_GDT(); def("LocalDistDiffTest", lddt_a, (arg("sequence_separation")=0,arg("local_lddt_property_string")="")); def("LocalDistDiffTest", lddt_c, (arg("local_lddt_property_string")="")); diff --git a/modules/mol/alg/src/CMakeLists.txt b/modules/mol/alg/src/CMakeLists.txt index 49f58f50e27c0f7eeb29feafac4d4523b5cfb753..20d0161758fc440787ca4f2a2ac9504dc60b5b65 100644 --- a/modules/mol/alg/src/CMakeLists.txt +++ b/modules/mol/alg/src/CMakeLists.txt @@ -25,6 +25,7 @@ set(OST_MOL_ALG_HEADERS find_membrane.hh entity_to_density.hh biounit.hh + gdt.hh ) set(OST_MOL_ALG_SOURCES @@ -53,6 +54,7 @@ set(OST_MOL_ALG_SOURCES find_membrane.cc entity_to_density.cc biounit.cc + gdt.cc ) set(MOL_ALG_DEPS ost_mol ost_seq ost_img ost_img_alg ost_seq_alg ost_conop) diff --git a/modules/mol/alg/src/biounit.cc b/modules/mol/alg/src/biounit.cc index e5fd1644f680b884c84cfb582a19ff05f52b576d..e21f0a58bc5cb6a2855e6f1f37af198f36196b22 100644 --- a/modules/mol/alg/src/biounit.cc +++ b/modules/mol/alg/src/biounit.cc @@ -255,9 +255,9 @@ ost::mol::EntityHandle CreateBU(const ost::mol::EntityHandle& asu, // derive all bonds related to that chain_intvl // potentially also interchain bonds std::stringstream query_ss; - query_ss << "cname=" << au_chains[chain_intvl][0]; + query_ss << "cname=" << mol::QueryQuoteName(au_chains[chain_intvl][0]); for(uint i = 1; i < au_chains[chain_intvl].size(); ++i) { - query_ss << ',' << au_chains[chain_intvl][i]; + query_ss << ',' << mol::QueryQuoteName(au_chains[chain_intvl][i]); } ost::mol::EntityView asu_view = asu.Select(query_ss.str()); const ost::mol::BondHandleList& bond_list = asu_view.GetBondList(); @@ -344,7 +344,8 @@ ost::mol::EntityHandle CreateBU(const ost::mol::EntityHandle& asu, // connect for(auto it = bond_list.begin(); it != bond_list.end(); ++it) { ed.Connect(atom_mapper[it->GetFirst().GetHashCode()], - atom_mapper[it->GetSecond().GetHashCode()]); + atom_mapper[it->GetSecond().GetHashCode()], + it->GetBondOrder()); } } diff --git a/modules/mol/alg/src/find_membrane.cc b/modules/mol/alg/src/find_membrane.cc index 8669efd8abbac9fcf88e6ab2279558fee3dcc2ba..d3ebede1b48a8bce0b0cf8e955a1539ab930598a 100644 --- a/modules/mol/alg/src/find_membrane.cc +++ b/modules/mol/alg/src/find_membrane.cc @@ -986,6 +986,21 @@ FindMemParam FindMembrane(ost::mol::EntityView& ent, "of heavy atoms!"); } + // number of atom position with non-zero accessibility is relevant too + int n_nonzero_asa = 0; + for(Real acc: asas) { + if(acc != 0.0) { + ++n_nonzero_asa; + } + } + if(n_nonzero_asa < 10) { + throw ost::Error("Cannot detect membrane with such a low number of " + "atoms with non-zero accessibility. Potential failure " + "mode: Atoms on top of each other result in zero " + "solvent accessibility (yes this happens)."); + } + + // we always optimizer along the z-axis. // We therefore have to transform the positions. We use a rotation // around the z-axis with subsequent rotation around the x-axis for this task diff --git a/modules/mol/alg/src/gdt.cc b/modules/mol/alg/src/gdt.cc new file mode 100644 index 0000000000000000000000000000000000000000..93b6e8b173b51b04fb4c0e01c092f661b7507d04 --- /dev/null +++ b/modules/mol/alg/src/gdt.cc @@ -0,0 +1,398 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2024 by the OpenStructure authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ + +#include <ost/mol/alg/gdt.hh> +#include <ost/message.hh> +#include <Eigen/Dense> + +namespace { + +// get RMSD and rotation matrix using the Theobald method +// Both position matrices are expected to have the same size +// and to have their average position at the origin +void TheobaldRMSD(const Eigen::Matrix<double,Eigen::Dynamic,3>& pos_one, + const Eigen::Matrix<double,Eigen::Dynamic,3>& pos_two, + Real& rmsd, Eigen::Matrix<double,3,3>& rot){ + + if(pos_one.rows() < 3){ + throw ost::Error("Observed superposition with < 3 positions to " + "superpose!"); + } + + Eigen::Matrix<double,3,3> M = pos_one.transpose() * pos_two; + + // using floats for the squared norm is fine + double GA = pos_one.squaredNorm(); + double GB = pos_two.squaredNorm(); + + Eigen::Matrix<double,4,4> K; + K(0,0) = M(0,0) + M(1,1) + M(2,2); + K(0,1) = M(1,2) - M(2,1); + K(0,2) = M(2,0) - M(0,2); + K(0,3) = M(0,1) - M(1,0); + + K(1,0) = K(0,1); + K(1,1) = M(0,0) - M(1,1) - M(2,2); + K(1,2) = M(0,1) + M(1,0); + K(1,3) = M(0,2) + M(2,0); + + K(2,0) = K(0,2); + K(2,1) = K(1,2); + K(2,2) = -M(0,0) + M(1,1) - M(2,2); + K(2,3) = M(1,2) + M(2,1); + + K(3,0) = K(0,3); + K(3,1) = K(1,3); + K(3,2) = K(2,3); + K(3,3) = -M(0,0) - M(1,1) + M(2,2); + + double C0 = K.determinant(); + double C1 = -8.0*M.determinant(); + double C2 = -2.0*M.squaredNorm(); + double lambda = 0.5 * (GA + GB); + double a, b, d, lambda_2; + for(int i = 0; i < 50; ++i){ + lambda_2 = lambda * lambda; + b = (lambda_2 + C2) * lambda; + a = b + C1; + d = (a*lambda + C0) / (2.0*lambda_2*lambda + b + a); + lambda -= d; + if(std::abs(d) < 1e-6){ + break; + } + } + + double msd = (GA + GB - 2.0 * lambda) / pos_one.rows(); + if(msd < 1e-4){ + // The algorithm never really goes to zero... if msd is super small we just + // assign zero. 1e-4 corresponds to an rmsd of 0.01 + rmsd = 0.0; + } + else{ + rmsd = std::sqrt(msd); + } + + K -= lambda*Eigen::Matrix<double,4,4>::Identity(); + + double helper[6]; + helper[0] = K(2,2)*K(3,3) - K(3,2)*K(2,3); + helper[1] = K(2,1)*K(3,3) - K(3,1)*K(2,3); + helper[2] = K(2,1)*K(3,2) - K(3,1)*K(2,2); + helper[3] = K(2,0)*K(3,3) - K(3,0)*K(2,3); + helper[4] = K(2,0)*K(3,2) - K(3,0)*K(2,2); + helper[5] = K(2,0)*K(3,1) - K(3,0)*K(2,1); + + double q1 = K(1,1)*helper[0] - K(1,2)*helper[1] + K(1,3)*helper[2]; + double q2 = -K(1,0)*helper[0] + K(1,2)*helper[3] - K(1,3)*helper[4]; + double q3 = K(1,0)*helper[1] - K(1,1)*helper[3] + K(1,3)*helper[5]; + double q4 = -K(1,0)*helper[2] + K(1,1)*helper[4] - K(1,2)*helper[5]; + double norm = q1*q1 + q2*q2 + q3*q3 + q4*q4; + + if(norm < 1e-6){ + q1 = K(0,1)*helper[0] - K(0,2)*helper[1] + K(0,3)*helper[2]; + q2 = -K(0,0)*helper[0] + K(0,2)*helper[3] - K(0,3)*helper[4]; + q3 = K(0,0)*helper[1] - K(0,1)*helper[3] + K(0,3)*helper[5]; + q4 = -K(0,0)*helper[2] + K(0,1)*helper[4] - K(0,2)*helper[5]; + norm = q1*q1 + q2*q2 +q3*q3 + q4*q4; + + if (norm < 1e-6){ + helper[0] = K(0,2)*K(1,3) - K(0,3)*K(1,2); + helper[1] = K(0,1)*K(1,3) - K(0,3)*K(1,1); + helper[2] = K(0,1)*K(1,2) - K(0,2)*K(1,1); + helper[3] = K(0,0)*K(1,3) - K(0,3)*K(1,0); + helper[4] = K(0,0)*K(1,2) - K(0,2)*K(1,0); + helper[5] = K(0,0)*K(1,1) - K(0,1)*K(1,0); + + q1 = K(3,1)*helper[0] - K(3,2)*helper[1] + K(3,3)*helper[2]; + q2 = -K(3,0)*helper[0] + K(3,2)*helper[3] - K(3,3)*helper[4]; + q3 = K(3,0)*helper[1] - K(3,1)*helper[3] + K(3,3)*helper[5]; + q4 = -K(3,0)*helper[2] + K(3,1)*helper[4] - K(3,2)*helper[5]; + norm = q1*q1 + q2*q2 + q3*q3 + q4*q4; + + if (norm < 1e-6){ + q1 = K(2,1)*helper[0] - K(2,2)*helper[1] + K(2,3)*helper[2]; + q2 = -K(2,0)*helper[0] + K(2,2)*helper[3] - K(2,3)*helper[4]; + q3 = K(2,0)*helper[1] - K(2,1)*helper[3] + K(2,3)*helper[5]; + q4 = -K(2,0)*helper[2] + K(2,1)*helper[4] - K(2,2)*helper[5]; + norm = q1*q1 + q2*q2 + q3*q3 + q4*q4; + if (norm < 1e-6){ + // this should not happen + rot = Eigen::Matrix<double,3,3>::Identity(); + return; + } + } + } + } + + norm = 1.0 / std::sqrt(norm); + q1 *= norm; q2 *= norm; q3 *= norm; q4 *= norm; + rot(0,0) = 1.0 - 2.0*(q3*q3 + q4*q4); + rot(0,1) = 2.0*(q2*q3 - q1*q4); + rot(0,2) = 2.0*(q2*q4 + q3*q1); + rot(1,0) = 2.0*(q2*q3 + q1*q4); + rot(1,1) = 1.0 - 2.0*(q2*q2 + q4*q4); + rot(1,2) = 2.0*(q3*q4 - q2*q1); + rot(2,0) = 2.0*(q2*q4 - q3*q1); + rot(2,1) = 2.0*(q3*q4 + q2*q1); + rot(2,2) = 1.0 - 2.0*(q2*q2 + q3*q3); +} + +void Superpose(Eigen::Matrix<double,Eigen::Dynamic,3>& pos_one, + Eigen::Matrix<double,Eigen::Dynamic,3>& pos_two, + Eigen::Matrix<double,1,3>& avg_one, + Eigen::Matrix<double,1,3>& avg_two, + Real& rmsd, + Eigen::Matrix<double,3,3>& rotation){ + + if(pos_one.rows() != pos_two.rows()){ + throw ost::Error("Cannot superpose positions of different size!"); + } + + + avg_one = Eigen::Matrix<double,1,3>::Zero(); + for (uint i = 0; i < pos_one.rows(); ++i) { + avg_one += pos_one.row(i); + } + avg_one = avg_one / pos_one.rows(); + + avg_two = Eigen::Matrix<double,1,3>::Zero(); + for (uint i = 0; i < pos_two.rows(); ++i) { + avg_two += pos_two.row(i); + } + avg_two = avg_two / pos_two.rows(); + + // TheobaldRMSD only determines the rotational component of the superposition + // we need to shift the centers of the two point sets onto origin + for (uint i = 0; i < pos_one.rows(); ++i){ + pos_one.row(i) -= avg_one; + pos_two.row(i) -= avg_two; + } + + TheobaldRMSD(pos_one, pos_two, rmsd, rotation); +} + +void SuperposeIterative(const Eigen::Matrix<double,Eigen::Dynamic,3>& pos_one, + const Eigen::Matrix<double,Eigen::Dynamic,3>& pos_two, + int max_iterations, + Real distance_thresh, + std::vector<int>& indices, + Eigen::Matrix<double,1,3>& avg_one, + Eigen::Matrix<double,1,3>& avg_two, + Eigen::Matrix<double,3,3>& rotation){ + + if(pos_one.rows() != pos_two.rows()){ + throw ost::Error("Position data must be of consistent size!"); + } + + if(max_iterations <= 0){ + throw ost::Error("max_iterations must be at least 1!"); + } + + int num_rows = pos_one.rows(); + + if(indices.empty()){ + //there are no idx, so we use all positions for the initial superposition + indices.resize(num_rows); + for(int i = 0; i < num_rows; ++i){ + indices[i] = i; + } + } + else{ + //its not empty! let's quickly check whether there are at least 3 positions + //and whether the indices are all valid + if(indices.size() < 3){ + throw ost::Error("Must have at least 3 start indices for iterative " + "Superposition!"); + } + for(auto i: indices) { + if(i >= num_rows){ + throw ost::Error("Invalid index in iterative Superposition!"); + } + } + } + + Real squared_dist_thresh = distance_thresh * distance_thresh; + std::vector<int> new_indices; + new_indices.reserve(num_rows); + std::vector<Real> squared_distances(num_rows); + Eigen::Matrix<double,1,3> temp_vec; + Real rmsd; + + // keep track of the indices which give the superposition with maximum + // number of superposed positions. Thats not necessarily the last superposition + // when the algorithm converges + int max_n = -1; + std::vector<int> temp_indices = indices; + Eigen::Matrix<double,1,3> temp_avg_one = Eigen::Matrix<double,1,3>::Zero(); + Eigen::Matrix<double,1,3> temp_avg_two = Eigen::Matrix<double,1,3>::Zero(); + Eigen::Matrix<double,3,3> temp_rotation = Eigen::Matrix<double,3,3>::Identity(); + + for(int iteration = 0; iteration < max_iterations; ++iteration){ + + if(temp_indices.size() < 3) break; //the thing is not really superposable... + + Eigen::Matrix<double,Eigen::Dynamic,3> temp_pos_one = + Eigen::Matrix<double,Eigen::Dynamic,3>::Zero(temp_indices.size(), 3); + Eigen::Matrix<double,Eigen::Dynamic,3> temp_pos_two = + Eigen::Matrix<double,Eigen::Dynamic,3>::Zero(temp_indices.size(), 3); + + for(uint i = 0; i < temp_indices.size(); ++i){ + temp_pos_one.row(i) = pos_one.row(temp_indices[i]); + temp_pos_two.row(i) = pos_two.row(temp_indices[i]); + } + + Superpose(temp_pos_one, temp_pos_two, temp_avg_one, temp_avg_two, rmsd, + temp_rotation); + + for(int i = 0; i < num_rows; ++i){ + temp_vec = pos_one.row(i) - temp_avg_one; + temp_vec = (temp_rotation * temp_vec.transpose()).transpose() + temp_avg_two; + squared_distances[i] = (temp_vec - pos_two.row(i)).squaredNorm(); + } + + new_indices.clear(); + for(int i = 0; i < num_rows; ++i){ + if(squared_distances[i] < squared_dist_thresh){ + new_indices.push_back(i); + } + } + + if(static_cast<int>(new_indices.size()) > max_n) { + max_n = new_indices.size(); + indices = new_indices; + avg_one = temp_avg_one; + avg_two = temp_avg_two; + rotation = temp_rotation; + } + + if(new_indices == temp_indices) break; //nothing changes anymore + + temp_indices = new_indices; + } +} + +} + +namespace ost{ namespace mol{ namespace alg { + + +void GDT(const geom::Vec3List& mdl_pos, const geom::Vec3List& ref_pos, + int window_size, int max_windows, Real distance_thresh, + int& n_superposed, geom::Mat4& transform) { + + if(mdl_pos.size() != ref_pos.size()){ + throw ost::Error("Position data must be of consistent size!"); + } + + int n_pos = mdl_pos.size(); + + if(window_size > n_pos) { + throw ost::Error("Window size in GDT algorithm is larger than positions"); + } + + Eigen::Matrix<double, Eigen::Dynamic, 3> eigen_mdl_pos = \ + Eigen::Matrix<double, Eigen::Dynamic, 3>::Zero(n_pos, 3); + Eigen::Matrix<double, Eigen::Dynamic, 3> eigen_ref_pos = \ + Eigen::Matrix<double, Eigen::Dynamic, 3>::Zero(n_pos, 3); + for(int i = 0; i < n_pos; ++i) { + eigen_mdl_pos(i, 0) = mdl_pos[i][0]; + eigen_mdl_pos(i, 1) = mdl_pos[i][1]; + eigen_mdl_pos(i, 2) = mdl_pos[i][2]; + eigen_ref_pos(i, 0) = ref_pos[i][0]; + eigen_ref_pos(i, 1) = ref_pos[i][1]; + eigen_ref_pos(i, 2) = ref_pos[i][2]; + } + + std::vector<int> start_indices; + int last_window_idx = n_pos - window_size; + int n_windows = last_window_idx + 1; + + if(n_windows <= max_windows) { + start_indices.resize(n_windows); + for(int i = 0; i < n_windows; ++i) { + start_indices[i] = i; + } + } else { + start_indices.resize(max_windows); + Real tmp = 0.0; + Real delta = static_cast<Real>(last_window_idx) / (max_windows - 1); + for(int i = 0; i < max_windows; ++i) { + start_indices[i] = std::round(tmp); + tmp += delta; + } + } + + size_t max_n = 0; + Eigen::Matrix<double,1,3> eigen_avg_mdl = Eigen::Matrix<double,1,3>::Zero(); + Eigen::Matrix<double,1,3> eigen_avg_ref = Eigen::Matrix<double,1,3>::Zero(); + Eigen::Matrix<double,3,3> eigen_rotation = Eigen::Matrix<double,3,3>::Identity(); + Eigen::Matrix<double,1,3> eigen_avg_mdl_tmp = Eigen::Matrix<double,1,3>::Zero(); + Eigen::Matrix<double,1,3> eigen_avg_ref_tmp = Eigen::Matrix<double,1,3>::Zero(); + Eigen::Matrix<double,3,3> eigen_rotation_tmp = Eigen::Matrix<double,3,3>::Identity(); + + for(int start_idx: start_indices) { + + std::vector<int> indices(window_size); + for(int i = 0; i < window_size; ++i) { + indices[i] = start_idx + i; + } + + SuperposeIterative(eigen_mdl_pos, eigen_ref_pos, + 10, distance_thresh, indices, + eigen_avg_mdl_tmp, + eigen_avg_ref_tmp, + eigen_rotation_tmp); + + if(indices.size() > max_n) { + max_n = indices.size(); + eigen_avg_mdl = eigen_avg_mdl_tmp; + eigen_avg_ref = eigen_avg_ref_tmp; + eigen_rotation = eigen_rotation_tmp; + } + } + + // construct transform + + // there are three transformation to be applied to reach ref_pos from mdl_pos: + // 1: shift mdl_pos to center + // 2: apply estimated rotation + // 3: shift onto average of ref_pos + Eigen::Matrix<double,1,3> translation = eigen_rotation * + (-eigen_avg_mdl.transpose()) + + eigen_avg_ref.transpose(); + + + transform = geom::Mat4(); + transform(0, 3) = translation(0, 0); + transform(1, 3) = translation(0, 1); + transform(2, 3) = translation(0, 2); + transform(0, 0) = eigen_rotation(0, 0); + transform(0, 1) = eigen_rotation(0, 1); + transform(0, 2) = eigen_rotation(0, 2); + transform(1, 0) = eigen_rotation(1, 0); + transform(1, 1) = eigen_rotation(1, 1); + transform(1, 2) = eigen_rotation(1, 2); + transform(2, 0) = eigen_rotation(2, 0); + transform(2, 1) = eigen_rotation(2, 1); + transform(2, 2) = eigen_rotation(2, 2); + + n_superposed = max_n; +} + +}}} // ns diff --git a/modules/mol/alg/src/gdt.hh b/modules/mol/alg/src/gdt.hh new file mode 100644 index 0000000000000000000000000000000000000000..4333470a38de1e0ff60821e48ec801ed100ab829 --- /dev/null +++ b/modules/mol/alg/src/gdt.hh @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2024 by the OpenStructure authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ + +#ifndef OST_GDT_HH +#define OST_GDT_HH + +#include <ost/base.hh> +#include <ost/geom/geom.hh> + +namespace ost { namespace mol { namespace alg { + +void GDT(const geom::Vec3List& mdl_pos, const geom::Vec3List& ref_pos, + int window_size, int max_windows, Real distance_thresh, + int& n_superposed, geom::Mat4& transform); + +}}} // ns + +#endif diff --git a/modules/mol/alg/tests/CMakeLists.txt b/modules/mol/alg/tests/CMakeLists.txt index 268d09c8153ad1b2d5fe756981416e5373e4b0dd..e21f0746812554f0b3a6e33145efbd7eb3d9e254 100644 --- a/modules/mol/alg/tests/CMakeLists.txt +++ b/modules/mol/alg/tests/CMakeLists.txt @@ -13,6 +13,8 @@ set(OST_MOL_ALG_UNIT_TESTS test_stereochemistry.py test_contact_score.py test_biounit.py + test_ost_dockq.py + test_bblddt.py ) if (COMPOUND_LIB) diff --git a/modules/mol/alg/tests/test_bblddt.py b/modules/mol/alg/tests/test_bblddt.py new file mode 100644 index 0000000000000000000000000000000000000000..38be34c90b6436d0e73fa6a8bbbf3d3ac859dbdd --- /dev/null +++ b/modules/mol/alg/tests/test_bblddt.py @@ -0,0 +1,117 @@ +import unittest, os, sys +import ost +from ost import conop +from ost import io, mol, seq, settings +import time +# check if we can import: fails if numpy or scipy not available +try: + import numpy as np + from ost.mol.alg.bb_lddt import * + from ost.mol.alg.lddt import * + from ost.mol.alg.chain_mapping import * +except ImportError: + print("Failed to import bb_lddt.py. Happens when numpy or scipy "\ + "missing. Ignoring qsscore.py tests.") + sys.exit(0) + +def _LoadFile(file_name): + """Helper to avoid repeating input path over and over.""" + return io.LoadPDB(os.path.join('testfiles', file_name)) + +class TestBBlDDT(unittest.TestCase): + + def test_bblddtentity(self): + ent = _LoadFile("3l1p.1.pdb") + ent = BBlDDTEntity(ent) + self.assertEqual(len(ent.view.chains), 4) + self.assertEqual(ent.GetChain("A").GetName(), "A") + self.assertEqual(ent.GetChain("B").GetName(), "B") + self.assertEqual(ent.GetChain("C").GetName(), "C") + self.assertEqual(ent.GetChain("D").GetName(), "D") + self.assertRaises(Exception, ent.GetChain, "E") + self.assertEqual(ent.chain_names, ["A", "B", "C", "D"]) + self.assertEqual(ent.GetSequence("A"), "DMKALQKELEQFAKLLKQKRITLGYTQADVGLTLGVLFGKVFSQTTISRFEALQLSLKNMSKLRPLLEKWVEEADNNENLQEISKSVQARKRKRTSIENRVRWSLETMFLKSPKPSLQQITHIANQLGLEKDVVRVWFSNRRQKGKR") + self.assertEqual(ent.GetSequence("B"), "KALQKELEQFAKLLKQKRITLGYTQADVGLTLGVLFGKVFSQTTISRFEALQLSLKNMSKLRPLLEKWVEEADNNENLQEISKSQARKRKRTSIENRVRWSLETMFLKSPKPSLQQITHIANQLGLEKDVVRVWFSNRRQKGKRS") + self.assertEqual(ent.GetSequence("C"), "TCCACATTTGAAAGGCAAATGGA") + self.assertEqual(ent.GetSequence("D"), "ATCCATTTGCCTTTCAAATGTGG") + + # check for a couple of positions with manually extracted values + + # GLU + pos = ent.GetPos("B") + self.assertAlmostEqual(pos[5,0], -0.901, places=3) + self.assertAlmostEqual(pos[5,1], 28.167, places=3) + self.assertAlmostEqual(pos[5,2], 13.955, places=3) + + # GLY + pos = ent.GetPos("A") + self.assertAlmostEqual(pos[23,0], 17.563, places=3) + self.assertAlmostEqual(pos[23,1], -4.082, places=3) + self.assertAlmostEqual(pos[23,2], 29.005, places=3) + + # Cytosine + pos = ent.GetPos("C") + self.assertAlmostEqual(pos[4,0], 14.796, places=3) + self.assertAlmostEqual(pos[4,1], 24.653, places=3) + self.assertAlmostEqual(pos[4,2], 59.318, places=3) + + + # check pairwise dist, chain names are always sorted => + # A is rows, C is cols + dist_one = ent.PairDist("A", "C") + dist_two = ent.PairDist("C", "A") + self.assertTrue(np.array_equal(dist_one, dist_two)) + self.assertEqual(dist_one.shape[0], len(ent.GetSequence("A"))) + self.assertEqual(dist_one.shape[1], len(ent.GetSequence("C"))) + + # check some random distance between the Gly and Cytosine that we already + # checked above + self.assertAlmostEqual(dist_one[23,4], 41.86, places=2) + + # all chains interact with each other... but hey, check nevertheless + self.assertEqual(ent.interacting_chains, [("A", "B"), ("A", "C"), + ("A", "D"), ("B", "C"), + ("B", "D"), ("C", "D")]) + + def test_bb_lddt_scorer(self): + + target = _LoadFile("3l1p.1.pdb") + model = _LoadFile("3l1p.1_model.pdb") + + # we need to derive a chain mapping prior to scoring + mapper = ChainMapper(target) + res = mapper.GetRMSDMapping(model, strategy="greedy_iterative") + + # lets compare with lddt reference implementation + + reference_lddt_scorer = lDDTScorer(target, bb_only=True) + + # make alignments accessible by mdl seq name + alns = dict() + for aln in res.alns.values(): + mdl_seq = aln.GetSequence(1) + alns[mdl_seq.name] = aln + + # lDDT requires a flat mapping with mdl_ch as key and trg_ch as value + flat_mapping = res.GetFlatMapping(mdl_as_key=True) + lddt_chain_mapping = dict() + for mdl_ch, trg_ch in flat_mapping.items(): + if mdl_ch in alns: + lddt_chain_mapping[mdl_ch] = trg_ch + + reference_lddt_score = reference_lddt_scorer.lDDT(model, + chain_mapping = lddt_chain_mapping, + residue_mapping = alns, + check_resnames=False)[0] + + bb_lddt_scorer = BBlDDTScorer.FromMappingResult(res) + bb_lddt_score = bb_lddt_scorer.Score(res.mapping) + + self.assertAlmostEqual(reference_lddt_score, bb_lddt_score, places = 4) + +if __name__ == "__main__": + from ost import testutils + if testutils.DefaultCompoundLibIsSet(): + testutils.RunTests() + else: + print('No compound lib available. Ignoring test_bblddt.py tests.') diff --git a/modules/mol/alg/tests/test_chain_mapping.py b/modules/mol/alg/tests/test_chain_mapping.py index e26ad858d36432ff8b170701b719f6760e43cc1e..6e17a67e600a4d9b5c6b29423608802e89cd8472 100644 --- a/modules/mol/alg/tests/test_chain_mapping.py +++ b/modules/mol/alg/tests/test_chain_mapping.py @@ -261,6 +261,9 @@ class TestChainMapper(unittest.TestCase): greedy_lddt_res = mapper.GetlDDTMapping(mdl, strategy="greedy_block") self.assertEqual(greedy_lddt_res.mapping, [['X', 'Y'],[None],['Z']]) + heuristic_lddt_res = mapper.GetlDDTMapping(mdl, strategy="heuristic") + self.assertEqual(heuristic_lddt_res.mapping, [['X', 'Y'],[None],['Z']]) + # QS score based chain mappings naive_qsscore_res = mapper.GetQSScoreMapping(mdl, strategy="naive") @@ -275,19 +278,22 @@ class TestChainMapper(unittest.TestCase): greedy_qsscore_res = mapper.GetQSScoreMapping(mdl, strategy="greedy_block") self.assertEqual(naive_qsscore_res.mapping, [['X', 'Y'],[None],['Z']]) + heuristic_qsscore_res = mapper.GetQSScoreMapping(mdl, strategy="heuristic") + self.assertEqual(heuristic_qsscore_res.mapping, [['X', 'Y'],[None],['Z']]) + # rigid chain mappings - greedy_rigid_res = mapper.GetRigidMapping(mdl, strategy="greedy_single_gdtts") + greedy_rigid_res = mapper.GetRMSDMapping(mdl, strategy="naive") self.assertEqual(greedy_rigid_res.mapping, [['X', 'Y'],[None],['Z']]) - greedy_rigid_res = mapper.GetRigidMapping(mdl, strategy="greedy_iterative_gdtts") + greedy_rigid_res = mapper.GetRMSDMapping(mdl, strategy="greedy_iterative") self.assertEqual(greedy_rigid_res.mapping, [['X', 'Y'],[None],['Z']]) - greedy_rigid_res = mapper.GetRigidMapping(mdl, strategy="greedy_single_rmsd") + greedy_rigid_res = mapper.GetRMSDMapping(mdl, strategy="greedy_single") self.assertEqual(greedy_rigid_res.mapping, [['X', 'Y'],[None],['Z']]) - greedy_rigid_res = mapper.GetRigidMapping(mdl, strategy="greedy_iterative_rmsd") - self.assertEqual(greedy_rigid_res.mapping, [['X', 'Y'],[None],['Z']]) + heuristic_rigid_res = mapper.GetRMSDMapping(mdl, strategy="heuristic") + self.assertEqual(heuristic_rigid_res.mapping, [['X', 'Y'],[None],['Z']]) # the default chain mapping default_res = mapper.GetMapping(mdl) diff --git a/modules/mol/alg/tests/test_contact_score.py b/modules/mol/alg/tests/test_contact_score.py index 1a3a53e529d4ec4d090f82d74417cbde426ddae4..cacc576bf36e15a31881c54d47880fb1cab1619b 100644 --- a/modules/mol/alg/tests/test_contact_score.py +++ b/modules/mol/alg/tests/test_contact_score.py @@ -33,9 +33,12 @@ class TestContactScore(unittest.TestCase): self.assertEqual(cent.GetSequence("D"), "ATCCATTTGCCTTTCAAATGTGG") self.assertEqual(cent.contact_mode, "aa") self.assertEqual(cent.contact_d, 5.0) - self.assertEqual(cent.interacting_chains, [('A', 'B'), ('A', 'D'), - ('A', 'C'), ('B', 'C'), - ('B', 'D'), ('C', 'D')]) + self.assertEqual(sorted(cent.interacting_chains), [('A', 'B'), + ('A', 'C'), + ('A', 'D'), + ('B', 'C'), + ('B', 'D'), + ('C', 'D')]) exp_contacts = sorted(list(cent.contacts[('A', 'C')])) self.assertEqual(exp_contacts, [(40, 9), (41, 8), (41, 9), (42, 8), (42, 9), (42, 10), (43, 12), (44, 9), @@ -54,7 +57,7 @@ class TestContactScore(unittest.TestCase): # we need to derive a chain mapping prior to scoring mapper = ChainMapper(target) - res = mapper.GetRigidMapping(model, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(model, strategy="greedy_iterative") contact_scorer = ContactScorer.FromMappingResult(res) score_result = contact_scorer.ScoreICS(res.mapping) self.assertAlmostEqual(score_result.precision, 0.583, places=2) diff --git a/modules/mol/alg/tests/test_lddt.py b/modules/mol/alg/tests/test_lddt.py index 6cfe9d5b6ba1e5f6b71d37898e15f1f5147eac0c..755717f597606579b816e15b8afac3b6e120860c 100644 --- a/modules/mol/alg/tests/test_lddt.py +++ b/modules/mol/alg/tests/test_lddt.py @@ -44,7 +44,11 @@ class TestlDDT(unittest.TestCase): for a,b in zip(aws_per_res_scores, classic_per_res_scores): if a is None and b is None: continue - self.assertAlmostEqual(a, b, places = 5) + # only check for 3 places. Reason for that is that the distance + # difference between GLN30.CB and TYR35.O is within floating point + # accuracy of the 0.5A threshold. So the two involved residues may + # have a difference of 1 with respect to conserved distances. + self.assertAlmostEqual(a, b, places = 3) # do 7W1F_B model = _LoadFile("7W1F_B_model.pdb") @@ -217,6 +221,22 @@ class TestlDDT(unittest.TestCase): # same for the conserved contacts self.assertEqual(lDDT_cons_ic + lDDT_cons_sc, lDDT_cons) + def test_add_mdl_contacts(self): + model = _LoadFile("7SGN_C_model.pdb") + target = _LoadFile("7SGN_C_target.pdb") + + lddt_scorer = lDDTScorer(target) + lDDT, per_res_lDDT, lDDT_tot, lDDT_cons, res_indices, per_res_exp, \ + per_res_conserved = lddt_scorer.lDDT(model, + return_dist_test = True, + add_mdl_contacts=True) + + # this value is just blindly copied in without checking whether it makes + # any sense... it's sole purpose is to trigger the respective flag + # in lDDT computation + self.assertEqual(lDDT, 0.6171511842396518) + + class TestlDDTBS(unittest.TestCase): diff --git a/modules/mol/alg/tests/test_ligand_scoring.py b/modules/mol/alg/tests/test_ligand_scoring.py index 84abfb48c0f5d9946c4b9ac16245f218c613c72d..64f0b580183c79332f958f7ed049cbd3cda2c3e8 100644 --- a/modules/mol/alg/tests/test_ligand_scoring.py +++ b/modules/mol/alg/tests/test_ligand_scoring.py @@ -7,8 +7,10 @@ import ost from ost import io, mol, geom # check if we can import: fails if numpy or scipy not available try: - from ost.mol.alg.ligand_scoring import * - from ost.mol.alg import ligand_scoring + from ost.mol.alg.ligand_scoring_base import * + from ost.mol.alg import ligand_scoring_base + from ost.mol.alg import ligand_scoring_scrmsd + from ost.mol.alg import ligand_scoring_lddtpli except ImportError: print("Failed to import ligand_scoring.py. Happens when numpy, scipy or " "networkx is missing. Ignoring test_ligand_scoring.py tests.") @@ -41,7 +43,7 @@ def _LoadEntity(filename): return ent -class TestLigandScoring(unittest.TestCase): +class TestLigandScoringFancy(unittest.TestCase): def setUp(self): # Silence expected warnings about ignoring of ligands in binding site @@ -178,19 +180,19 @@ class TestLigandScoring(unittest.TestCase): """ mdl_lig = _LoadEntity("P84080_model_02_ligand_0.sdf") - graph = ligand_scoring._ResidueToGraph(mdl_lig.residues[0]) + graph = ligand_scoring_base._ResidueToGraph(mdl_lig.residues[0]) self.assertEqual(len(graph.edges), 34) self.assertEqual(len(graph.nodes), 32) # Check an arbitrary node self.assertEqual([a for a in graph.adj["14"].keys()], ["13", "29"]) - graph = ligand_scoring._ResidueToGraph(mdl_lig.residues[0], by_atom_index=True) + graph = ligand_scoring_base._ResidueToGraph(mdl_lig.residues[0], by_atom_index=True) self.assertEqual(len(graph.edges), 34) self.assertEqual(len(graph.nodes), 32) # Check an arbitrary node self.assertEqual([a for a in graph.adj[13].keys()], [12, 28]) - def test__ComputeSymmetries(self): + def test_ComputeSymmetries(self): """Test that _ComputeSymmetries works. """ trg = _LoadMMCIF("1r8q.cif.gz") @@ -202,15 +204,15 @@ class TestLigandScoring(unittest.TestCase): trg_g3d2 = trg.FindResidue("J", 1) mdl_g3d = mdl.FindResidue("L_2", 1) - sym = ligand_scoring._ComputeSymmetries(mdl_g3d, trg_g3d1) + sym = ligand_scoring_base.ComputeSymmetries(mdl_g3d, trg_g3d1) self.assertEqual(len(sym), 72) - sym = ligand_scoring._ComputeSymmetries(mdl_g3d, trg_g3d1, by_atom_index=True) + sym = ligand_scoring_base.ComputeSymmetries(mdl_g3d, trg_g3d1, by_atom_index=True) self.assertEqual(len(sym), 72) # Test that we can match ions read from SDF sdf_lig = _LoadEntity("1r8q_ligand_0.sdf") - sym = ligand_scoring._ComputeSymmetries(trg_mg1, sdf_lig.residues[0], by_atom_index=True) + sym = ligand_scoring_base.ComputeSymmetries(trg_mg1, sdf_lig.residues[0], by_atom_index=True) self.assertEqual(len(sym), 1) # Test that it works with views and only consider atoms in the view @@ -221,19 +223,19 @@ class TestLigandScoring(unittest.TestCase): mdl_g3d_sub_ent = mdl_g3d.Select("aindex>1447") mdl_g3d_sub = mdl_g3d_sub_ent.residues[0] - sym = ligand_scoring._ComputeSymmetries(mdl_g3d_sub, trg_g3d1_sub) + sym = ligand_scoring_base.ComputeSymmetries(mdl_g3d_sub, trg_g3d1_sub) self.assertEqual(len(sym), 6) - sym = ligand_scoring._ComputeSymmetries(mdl_g3d_sub, trg_g3d1_sub, by_atom_index=True) + sym = ligand_scoring_base.ComputeSymmetries(mdl_g3d_sub, trg_g3d1_sub, by_atom_index=True) self.assertEqual(len(sym), 6) # Substructure matches - sym = ligand_scoring._ComputeSymmetries(mdl_g3d, trg_g3d1_sub, substructure_match=True) + sym = ligand_scoring_base.ComputeSymmetries(mdl_g3d, trg_g3d1_sub, substructure_match=True) self.assertEqual(len(sym), 6) # Missing atoms only allowed in target, not in model with self.assertRaises(NoSymmetryError): - ligand_scoring._ComputeSymmetries(mdl_g3d_sub, trg_g3d1, substructure_match=True) + ligand_scoring_base.ComputeSymmetries(mdl_g3d_sub, trg_g3d1, substructure_match=True) def test_SCRMSD(self): """Test that SCRMSD works. @@ -247,53 +249,51 @@ class TestLigandScoring(unittest.TestCase): trg_g3d2 = trg.FindResidue("J", 1) mdl_g3d = mdl.FindResidue("L_2", 1) - rmsd = SCRMSD(mdl_g3d, trg_g3d1) + rmsd = ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_g3d1) self.assertAlmostEqual(rmsd, 2.21341e-06, 10) - rmsd = SCRMSD(mdl_g3d, trg_g3d2) + rmsd = ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_g3d2) self.assertAlmostEqual(rmsd, 61.21325, 4) # Ensure we raise a NoSymmetryError if the ligand is wrong with self.assertRaises(NoSymmetryError): - SCRMSD(mdl_g3d, trg_mg1) + ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_mg1) with self.assertRaises(NoSymmetryError): - SCRMSD(mdl_g3d, trg_afb1) + ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_afb1) # Assert that transform works trans = geom.Mat4(-0.999256, 0.00788487, -0.0377333, -15.4397, 0.0380652, 0.0473315, -0.998154, 29.9477, -0.00608426, -0.998848, -0.0475963, 28.8251, 0, 0, 0, 1) - rmsd = SCRMSD(mdl_g3d, trg_g3d2, transformation=trans) + rmsd = ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_g3d2, transformation=trans) self.assertAlmostEqual(rmsd, 0.293972, 5) # Assert that substructure matches work trg_g3d1_sub = trg_g3d1.Select("aindex>6019").residues[0] # Skip PA, PB and O[1-3]A and O[1-3]B. # mdl_g3d_sub = mdl_g3d.Select("aindex>1447").residues[0] # Skip PA, PB and O[1-3]A and O[1-3]B. - with self.assertRaises(NoSymmetryError): - SCRMSD(mdl_g3d, trg_g3d1_sub) # no full match + with self.assertRaises(NoIsomorphicSymmetryError): + ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_g3d1_sub) # no full match # But partial match is OK - rmsd = SCRMSD(mdl_g3d, trg_g3d1_sub, substructure_match=True) + rmsd = ligand_scoring_scrmsd.SCRMSD(mdl_g3d, trg_g3d1_sub, substructure_match=True) self.assertAlmostEqual(rmsd, 2.2376232209353475e-06, 8) # Ensure it doesn't work the other way around - ie incomplete model is invalid with self.assertRaises(NoSymmetryError): - SCRMSD(trg_g3d1_sub, mdl_g3d) # no full match + ligand_scoring_scrmsd.SCRMSD(trg_g3d1_sub, mdl_g3d) # no full match + - def test__compute_scores(self): + def test_compute_rmsd_scores(self): """Test that _compute_scores works. """ trg = _LoadMMCIF("1r8q.cif.gz") mdl = _LoadMMCIF("P84080_model_02.cif.gz") mdl_lig = io.LoadEntity(os.path.join('testfiles', "P84080_model_02_ligand_0.sdf")) - sc = LigandScorer(mdl, trg, [mdl_lig], None) + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, [mdl_lig], None) # Note: expect warning about Binding site of H.ZN1 not mapped to the model - sc._compute_scores() - - # Check RMSD - self.assertEqual(sc.rmsd_matrix.shape, (7, 1)) - np.testing.assert_almost_equal(sc.rmsd_matrix, np.array( + self.assertEqual(sc.score_matrix.shape, (7, 1)) + np.testing.assert_almost_equal(sc.score_matrix, np.array( [[np.nan], [0.04244993], [np.nan], @@ -302,145 +302,436 @@ class TestLigandScoring(unittest.TestCase): [0.29399303], [np.nan]]), decimal=5) - # Check lDDT-PLI - self.assertEqual(sc.lddt_pli_matrix.shape, (7, 1)) - self.assertTrue(np.isnan(sc.lddt_pli_matrix[0, 0])) - self.assertAlmostEqual(sc.lddt_pli_matrix[1, 0], 0.99843, 5) - self.assertTrue(np.isnan(sc.lddt_pli_matrix[2, 0])) - self.assertTrue(np.isnan(sc.lddt_pli_matrix[3, 0])) - self.assertTrue(np.isnan(sc.lddt_pli_matrix[4, 0])) - self.assertAlmostEqual(sc.lddt_pli_matrix[5, 0], 1.0) - self.assertTrue(np.isnan(sc.lddt_pli_matrix[6, 0])) - - def test_check_resnames(self): - """Test check_resname argument works - """ - # 4C0A has mismatching sequence and fails with check_resnames=True - mdl_1r8q = _LoadMMCIF("1r8q.cif.gz") - trg_4c0a = _LoadMMCIF("4c0a.cif.gz") + def test_compute_lddtpli_scores(self): + trg = _LoadMMCIF("1r8q.cif.gz") + mdl = _LoadMMCIF("P84080_model_02.cif.gz") + mdl_lig = io.LoadEntity(os.path.join('testfiles', "P84080_model_02_ligand_0.sdf")) + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, [mdl_lig], None, + add_mdl_contacts = False, + lddt_pli_binding_site_radius = 4.0) + self.assertEqual(sc.score_matrix.shape, (7, 1)) + self.assertTrue(np.isnan(sc.score_matrix[0, 0])) + self.assertAlmostEqual(sc.score_matrix[1, 0], 0.99843, 5) + self.assertTrue(np.isnan(sc.score_matrix[2, 0])) + self.assertTrue(np.isnan(sc.score_matrix[3, 0])) + self.assertTrue(np.isnan(sc.score_matrix[4, 0])) + self.assertAlmostEqual(sc.score_matrix[5, 0], 1.0) + self.assertTrue(np.isnan(sc.score_matrix[6, 0])) + + def test_added_mdl_contacts(self): + + # binding site for ligand in chain G consists of chains A and B + prot = _LoadMMCIF("1r8q.cif.gz").Copy() + + # model has the full binding site + mdl = mol.CreateEntityFromView(prot.Select("cname=A,B,G"), True) + + # chain C has same sequence as chain A but is not in contact + # with ligand in chain G + # target has thus incomplete binding site only from chain B + trg = mol.CreateEntityFromView(prot.Select("cname=B,C,G"), True) + + # if added model contacts are not considered, the incomplete binding + # site only from chain B is perfectly reproduced by model which also has + # chain B + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, add_mdl_contacts=False) + self.assertAlmostEqual(sc.score_matrix[0,0], 1.0, 5) + + # if added model contacts are considered, contributions from chain B are + # perfectly reproduced but all contacts of ligand towards chain A are + # added as penalty + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, add_mdl_contacts=True) + + lig = prot.Select("cname=G") + A_count = 0 + B_count = 0 + for a in lig.atoms: + close_atoms = mdl.FindWithin(a.GetPos(), sc.lddt_pli_radius) + for ca in close_atoms: + cname = ca.GetChain().GetName() + if cname == "G": + pass # its a ligand atom... + elif cname == "A": + A_count += 1 + elif cname == "B": + B_count += 1 + + self.assertAlmostEqual(sc.score_matrix[0,0], + B_count/(A_count + B_count), 5) + + # Same as before but additionally we remove residue TRP.66 + # from chain C in the target to test mapping magic... + # Chain C is NOT in contact with the ligand but we only + # add contacts from chain A as penalty that are mappable + # to the closest chain with same sequence. That would be + # chain C + query = "cname=B,G or (cname=C and rnum!=66)" + trg = mol.CreateEntityFromView(prot.Select(query), True) + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, add_mdl_contacts=True) + + TRP66_count = 0 + for a in lig.atoms: + close_atoms = mdl.FindWithin(a.GetPos(), sc.lddt_pli_radius) + for ca in close_atoms: + cname = ca.GetChain().GetName() + if cname == "A" and ca.GetResidue().GetNumber().GetNum() == 66: + TRP66_count += 1 + + self.assertEqual(TRP66_count, 134) + + # remove TRP66_count from original penalty + self.assertAlmostEqual(sc.score_matrix[0,0], + B_count/(A_count + B_count - TRP66_count), 5) + + # Move a random atom in the model from chain B towards the ligand center + # chain B is also present in the target and interacts with the ligand, + # but that atom would be far away and thus adds to the penalty. Since + # the ligand is small enough, the number of added contacts should be + # exactly the number of ligand atoms. + mdl_ed = mdl.EditXCS() + at = mdl.FindResidue("B", mol.ResNum(8)).FindAtom("NZ") + mdl_ed.SetAtomPos(at, lig.geometric_center) + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, add_mdl_contacts=True) - mdl = mdl_1r8q.Select("cname=D or cname=F") - trg = trg_4c0a.Select("cname=C or cname=I") + # compared to the last assertAlmostEqual, we add the number of ligand + # atoms as additional penalties + self.assertAlmostEqual(sc.score_matrix[0,0], + B_count/(A_count + B_count - TRP66_count + \ + lig.GetAtomCount()), 5) - with self.assertRaises(RuntimeError): - sc = LigandScorer(mdl, trg, [mdl.FindResidue("F", 1)], [trg.FindResidue("I", 1)], check_resnames=True) - sc._compute_scores() + def test_assignment(self): + trg = _LoadMMCIF("1r8q.cif.gz") + mdl = _LoadMMCIF("P84080_model_02.cif.gz") + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg) + self.assertEqual(sc.assignment, [(1, 0)]) - sc = LigandScorer(mdl, trg, [mdl.FindResidue("F", 1)], [trg.FindResidue("I", 1)], check_resnames=False) - sc._compute_scores() + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg) + self.assertEqual(sc.assignment, [(5, 0)]) - def test__scores(self): + def test_dict_results_rmsd(self): """Test that the scores are computed correctly """ # 4C0A has more ligands trg = _LoadMMCIF("1r8q.cif.gz") trg_4c0a = _LoadMMCIF("4c0a.cif.gz") - sc = LigandScorer(trg, trg_4c0a, None, None, check_resnames=False) - + sc = ligand_scoring_scrmsd.SCRMSDScorer(trg, trg_4c0a, None, None) expected_keys = {"J", "F"} - self.assertFalse(expected_keys.symmetric_difference(sc.rmsd.keys())) - self.assertFalse(expected_keys.symmetric_difference(sc.rmsd_details.keys())) - self.assertFalse(expected_keys.symmetric_difference(sc.lddt_pli.keys())) - self.assertFalse(expected_keys.symmetric_difference(sc.lddt_pli_details.keys())) - + self.assertFalse(expected_keys.symmetric_difference(sc.score.keys())) + self.assertFalse(expected_keys.symmetric_difference(sc.aux.keys())) # rmsd - self.assertAlmostEqual(sc.rmsd["J"][mol.ResNum(1)], 0.8016608357429504, 5) - self.assertAlmostEqual(sc.rmsd["F"][mol.ResNum(1)], 0.9286373257637024, 5) + self.assertAlmostEqual(sc.score["J"][mol.ResNum(1)], 0.8016608357429504, 5) + self.assertAlmostEqual(sc.score["F"][mol.ResNum(1)], 0.9286373257637024, 5) # rmsd_details - self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["chain_mapping"], {'F': 'D', 'C': 'C'}) - self.assertEqual(len(sc.rmsd_details["J"][mol.ResNum(1)]["bs_ref_res"]), 15) - self.assertEqual(len(sc.rmsd_details["J"][mol.ResNum(1)]["bs_ref_res_mapped"]), 15) - self.assertEqual(len(sc.rmsd_details["J"][mol.ResNum(1)]["bs_mdl_res_mapped"]), 15) - self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') - self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') - self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["chain_mapping"], {'B': 'B', 'G': 'A'}) - self.assertEqual(len(sc.rmsd_details["F"][mol.ResNum(1)]["bs_ref_res"]), 15) - self.assertEqual(len(sc.rmsd_details["F"][mol.ResNum(1)]["bs_ref_res_mapped"]), 15) - self.assertEqual(len(sc.rmsd_details["F"][mol.ResNum(1)]["bs_mdl_res_mapped"]), 15) - self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') - self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["chain_mapping"], {'F': 'D', 'C': 'C'}) + self.assertEqual(len(sc.aux["J"][mol.ResNum(1)]["bs_ref_res"]), 15) + self.assertEqual(len(sc.aux["J"][mol.ResNum(1)]["bs_ref_res_mapped"]), 15) + self.assertEqual(len(sc.aux["J"][mol.ResNum(1)]["bs_mdl_res_mapped"]), 15) + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["chain_mapping"], {'B': 'B', 'G': 'A'}) + self.assertEqual(len(sc.aux["F"][mol.ResNum(1)]["bs_ref_res"]), 15) + self.assertEqual(len(sc.aux["F"][mol.ResNum(1)]["bs_ref_res_mapped"]), 15) + self.assertEqual(len(sc.aux["F"][mol.ResNum(1)]["bs_mdl_res_mapped"]), 15) + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') + + def test_dict_results_lddtpli(self): + """Test that the scores are computed correctly + """ + # 4C0A has more ligands + trg = _LoadMMCIF("1r8q.cif.gz") + trg_4c0a = _LoadMMCIF("4c0a.cif.gz") + sc = ligand_scoring_lddtpli.LDDTPLIScorer(trg, trg_4c0a, None, None, + add_mdl_contacts=False, + lddt_pli_binding_site_radius = 4.0) + expected_keys = {"J", "F"} + self.assertFalse(expected_keys.symmetric_difference(sc.score.keys())) + self.assertFalse(expected_keys.symmetric_difference(sc.aux.keys())) # lddt_pli - self.assertAlmostEqual(sc.lddt_pli["J"][mol.ResNum(1)], 0.9127105666156202, 5) - self.assertAlmostEqual(sc.lddt_pli["F"][mol.ResNum(1)], 0.915929203539823, 6) + self.assertAlmostEqual(sc.score["J"][mol.ResNum(1)], 0.9127105666156202, 5) + self.assertAlmostEqual(sc.score["F"][mol.ResNum(1)], 0.915929203539823, 5) # lddt_pli_details - self.assertAlmostEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["rmsd"], 0.8016608357429504, 4) - self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["lddt_pli_n_contacts"], 5224) - self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["chain_mapping"], {'F': 'D', 'C': 'C'}) - self.assertEqual(len(sc.lddt_pli_details["J"][mol.ResNum(1)]["bs_ref_res"]), 15) - self.assertEqual(len(sc.lddt_pli_details["J"][mol.ResNum(1)]["bs_ref_res_mapped"]), 15) - self.assertEqual(len(sc.lddt_pli_details["J"][mol.ResNum(1)]["bs_mdl_res_mapped"]), 15) - self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') - self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') - self.assertAlmostEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["rmsd"], 0.9286373257637024, 4) - self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["lddt_pli_n_contacts"], 5424) - self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["chain_mapping"], {'B': 'B', 'G': 'A'}) - self.assertEqual(len(sc.lddt_pli_details["F"][mol.ResNum(1)]["bs_ref_res"]), 15) - self.assertEqual(len(sc.lddt_pli_details["F"][mol.ResNum(1)]["bs_ref_res_mapped"]), 15) - self.assertEqual(len(sc.lddt_pli_details["F"][mol.ResNum(1)]["bs_mdl_res_mapped"]), 15) - self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') - self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') - - def test_global_chain_mapping(self): - """Test that the global and local chain mappings works. - - For RMSD, A: A results in a better chain mapping. However, C: A is a - better global chain mapping from an lDDT perspective (and lDDT-PLI). - """ + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["lddt_pli_n_contacts"], 653) + self.assertEqual(len(sc.aux["J"][mol.ResNum(1)]["bs_ref_res"]), 15) + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["lddt_pli_n_contacts"], 678) + self.assertEqual(len(sc.aux["F"][mol.ResNum(1)]["bs_ref_res"]), 15) + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') + + # lddt_pli with added mdl contacts + sc = ligand_scoring_lddtpli.LDDTPLIScorer(trg, trg_4c0a, None, None, + add_mdl_contacts=True) + self.assertAlmostEqual(sc.score["J"][mol.ResNum(1)], 0.8988340192043895, 5) + self.assertAlmostEqual(sc.score["F"][mol.ResNum(1)], 0.9039735099337749, 5) + # lddt_pli_details + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["lddt_pli_n_contacts"], 729) + self.assertEqual(len(sc.aux["J"][mol.ResNum(1)]["bs_ref_res"]), 63) + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') + self.assertEqual(sc.aux["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["lddt_pli_n_contacts"], 755) + self.assertEqual(len(sc.aux["F"][mol.ResNum(1)]["bs_ref_res"]), 62) + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') + self.assertEqual(sc.aux["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') + + def test_ignore_binding_site(self): + """Test that we ignore non polymer stuff in the binding site. + NOTE: we should consider changing this behavior in the future and take + other ligands, peptides and short oligomers into account for superposition. + When that's the case this test should be adapter + """ + trg = _LoadMMCIF("1SSP.cif.gz") + sc = ligand_scoring_scrmsd.SCRMSDScorer(trg, trg, None, None) + expected_bs_ref_res = ['C.GLY62', 'C.GLN63', 'C.ASP64', 'C.PRO65', 'C.TYR66', 'C.CYS76', 'C.PHE77', 'C.ASN123', 'C.HIS187'] + ost.PushVerbosityLevel(ost.LogLevel.Error) + self.assertEqual([str(r) for r in sc.aux["D"][1]["bs_ref_res"]], expected_bs_ref_res) + ost.PopVerbosityLevel() + + def test_substructure_match(self): + """Test that substructure_match=True works.""" trg = _LoadMMCIF("1r8q.cif.gz") mdl = _LoadMMCIF("P84080_model_02.cif.gz") - # Local by default - sc = LigandScorer(mdl, trg, None, None) - self.assertEqual(sc.rmsd_details["L_2"][1]["chain_mapping"], {'A': 'A'}) - self.assertEqual(sc.lddt_pli_details["L_2"][1]["chain_mapping"], {'C': 'A'}) + trg_g3d1 = trg.FindResidue("F", 1) + mdl_g3d = mdl.FindResidue("L_2", 1) + + # Skip PA, PB and O[1-3]A and O[1-3]B in target and model + # ie 8 / 32 atoms => coverage 0.75 + # We assume atom index are fixed and won't change + trg_g3d1_sub_ent = trg_g3d1.Select("aindex>6019") + trg_g3d1_sub = trg_g3d1_sub_ent.residues[0] - # Global - sc = LigandScorer(mdl, trg, None, None, global_chain_mapping=True) - self.assertEqual(sc.rmsd_details["L_2"][1]["chain_mapping"], {'C': 'A'}) - self.assertEqual(sc.lddt_pli_details["L_2"][1]["chain_mapping"], {'C': 'A'}) + # without enabling substructure matches + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl.Select("protein=True"), trg.Select("protein=True"), + model_ligands=[mdl_g3d], target_ligands=[trg_g3d1_sub], + substructure_match=False) + self.assertEqual(sc.coverage_matrix.shape, (1,1)) + self.assertTrue(np.isnan(sc.coverage_matrix[0,0])) + self.assertEqual(sc.state_matrix[0,0], 3) # error encoding for that particular issue - # Custom - sc = LigandScorer(mdl, trg, None, None, global_chain_mapping=True, custom_mapping={'A': 'A'}) - self.assertEqual(sc.rmsd_details["L_2"][1]["chain_mapping"], {'A': 'A'}) - self.assertEqual(sc.lddt_pli_details["L_2"][1]["chain_mapping"], {'A': 'A'}) + # Substructure matches + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl.Select("protein=True"), trg.Select("protein=True"), + model_ligands=[mdl_g3d], target_ligands=[trg_g3d1_sub], + substructure_match=True) + self.assertEqual(sc.coverage_matrix.shape, (1,1)) + self.assertEqual(sc.coverage_matrix[0,0], 0.75) + self.assertEqual(sc.state_matrix[0,0], 0) # no error encoded in state - # Custom only active with global chain mapping - sc = LigandScorer(mdl, trg, None, None, global_chain_mapping=False, custom_mapping={'A': 'A'}) - self.assertEqual(sc.rmsd_details["L_2"][1]["chain_mapping"], {'A': 'A'}) - self.assertEqual(sc.lddt_pli_details["L_2"][1]["chain_mapping"], {'C': 'A'}) + def test_6jyf(self): + """6JYF initially caused issues in the CASP15-CAMEO/LIGATE paper where + the ligand RET was wrongly assigned to short copies of OLA that float + around and yielded higher scores. + Here we test that this is resolved correctly.""" + mdl = _LoadPDB("6jyf_mdl.pdb") + trg = _LoadMMCIF("6jyf_trg.cif") + mdl_lig = _LoadEntity("6jyf_RET_pred.sdf") + mdl_lig_full = _LoadEntity("6jyf_RET_pred_complete.sdf") - def test_rmsd_assignment(self): - """Test that the RMSD-based assignment works. + # Problem is easily fixed by just prioritizing full coverage + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, model_ligands=[mdl_lig], + substructure_match=True) + self.assertEqual(len(sc.assignment), 1) # only one mdl ligand => 1 assignment + trg_lig_idx, mdl_lig_idx = sc.assignment[0] + self.assertEqual(sc.coverage_matrix[trg_lig_idx, mdl_lig_idx], 1.0) + self.assertEqual(sc.aux['00001_'][1]["target_ligand"].name, "RET") + self.assertAlmostEqual(sc.score['00001_'][1], 15.56022, 4) + self.assertAlmostEqual(sc.coverage_matrix[0,0], 1.) + self.assertTrue(np.isnan(sc.coverage_matrix[1,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[2,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[3,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[4,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[5,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[6,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[7,0])) + self.assertAlmostEqual(sc.coverage_matrix[8,0], 0.5) + self.assertAlmostEqual(sc.coverage_matrix[9,0], 0.3) + self.assertAlmostEqual(sc.coverage_matrix[10,0], 0.45) + self.assertTrue(np.isnan(sc.coverage_matrix[11,0])) + self.assertTrue(np.isnan(sc.coverage_matrix[12,0])) + self.assertAlmostEqual(sc.coverage_matrix[13,0], 0.55) - For RMSD, A: A results in a better chain mapping. However, C: A is a - better global chain mapping from an lDDT perspective (and lDDT-PLI). + # We need to make sure that it also works if the match is partial. + # For that we load the complete ligand incl. the O missing in target + # with a coverage of around 95% only. + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, model_ligands=[mdl_lig_full], + substructure_match=True) + self.assertEqual(len(sc.assignment), 1) # only one mdl ligand => 1 assignment + trg_lig_idx, mdl_lig_idx = sc.assignment[0] + self.assertAlmostEqual(sc.coverage_matrix[trg_lig_idx, mdl_lig_idx],0.95238096) + self.assertEqual(sc.aux['00001_'][1]["target_ligand"].name, "RET") + self.assertAlmostEqual(sc.score['00001_'][1], 15.56022, 4) + + # Next, we check that coverage_delta has an effect. With a large + # delta of 0.5 we will assign to OLA which has a higher RMSD + # but a coverage of 0.52 only. + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, model_ligands=[mdl_lig_full], + substructure_match=True, + coverage_delta=0.5) + self.assertEqual(len(sc.assignment), 1) # only one mdl ligand => 1 assignment + trg_lig_idx, mdl_lig_idx = sc.assignment[0] + self.assertAlmostEqual(sc.coverage_matrix[trg_lig_idx, mdl_lig_idx], 0.52380955) + self.assertEqual(sc.aux['00001_'][1]["target_ligand"].name, "OLA") + self.assertAlmostEqual(sc.score['00001_'][1], 6.13006878, 4) + + def test_skip_too_many_symmetries(self): + """ + Test behaviour of max_symmetries. """ trg = _LoadMMCIF("1r8q.cif.gz") mdl = _LoadMMCIF("P84080_model_02.cif.gz") - # By default, assignment differs between RMSD and lDDT-PLI in this - # specific test case, so we can first ensure it does. - # For now we skip as this is slow - # sc = LigandScorer(mdl, trg, None, None) - # assert sc.rmsd_details["L_2"][1]["target_ligand"] != sc.lddt_pli_details["L_2"][1]["target_ligand"] + # Pass entity views + trg_lig = [trg.Select("cname=F")] + mdl_lig = [mdl.Select("rname=G3D")] - # RMSD assignment forces the same assignment - sc = LigandScorer(mdl, trg, None, None, rmsd_assignment=True) - self.assertEqual(sc.rmsd_details["L_2"][1]["target_ligand"], sc.lddt_pli_details["L_2"][1]["target_ligand"]) + # G3D has 72 isomorphic mappings to itself. + # Limit to 10 to raise + symmetries = ligand_scoring_base.ComputeSymmetries(mdl_lig[0], trg_lig[0], max_symmetries=100) + self.assertEqual(len(symmetries), 72) + with self.assertRaises(TooManySymmetriesError): + ligand_scoring_base.ComputeSymmetries(mdl_lig[0], trg_lig[0], max_symmetries=10) - def test_ignore_binding_site(self): - """Test that we ignore non polymer stuff in the binding site. - NOTE: we should consider changing this behavior in the future and take - other ligands, peptides and short oligomers into account for superposition. - When that's the case this test should be adapter - """ - trg = _LoadMMCIF("1SSP.cif.gz") - sc = LigandScorer(trg, trg, None, None) - expected_bs_ref_res = ['C.GLY62', 'C.GLN63', 'C.ASP64', 'C.PRO65', 'C.TYR66', 'C.CYS76', 'C.PHE77', 'C.ASN123', 'C.HIS187'] - ost.PushVerbosityLevel(ost.LogLevel.Error) - self.assertEqual([str(r) for r in sc.rmsd_details["D"][1]["bs_ref_res"]], expected_bs_ref_res) - ost.PopVerbosityLevel() + # Check the unassignment + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, mdl_lig, trg_lig, + max_symmetries=10) + + self.assertFalse("L_2" in sc.score) + self.assertEqual(sc.assignment, []) + self.assertEqual(sc.unassigned_target_ligands, [0]) + self.assertEqual(sc.unassigned_model_ligands, [0]) + + trg_report, trg_pair_report = sc.get_target_ligand_state_report(0) + mdl_report, mdl_pair_report = sc.get_model_ligand_state_report(0) + + # the individual ligands are OK + self.assertEqual(trg_report["short desc"], "OK") + self.assertEqual(mdl_report["short desc"], "OK") + + # but there are too many symmetries + self.assertEqual(len(trg_pair_report), 1) + self.assertEqual(len(mdl_pair_report), 1) + self.assertEqual(trg_pair_report[0]["short desc"], "symmetries") + self.assertEqual(mdl_pair_report[0]["short desc"], "symmetries") + + def test_no_binding_site(self): + """ + Test the behavior when there's no binding site in proximity of + the ligand. This test was introduced to identify some subtle issues + with the ligand assignment that can cause it to enter an infinite + loop when the data matrices are not filled properly. + """ + trg = _LoadMMCIF("1r8q.cif.gz").Copy() + mdl = trg.Copy() + + trg_zn = trg.FindResidue("H", 1) + trg_g3d = trg.FindResidue("F", 1) + + # Move the zinc out of the reference binding site... + ed = trg.EditXCS() + ed.SetAtomPos(trg_zn.FindAtom("ZN"), + trg_zn.FindAtom("ZN").pos + geom.Vec3(6, 0, 0)) + # Remove some atoms from G3D to decrease coverage. This messed up + # the assignment in the past. + ed.DeleteAtom(trg_g3d.FindAtom("O6")) + ed.UpdateICS() + + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, + target_ligands=[trg_zn, trg_g3d], + coverage_delta=0, substructure_match=True) + + self.assertTrue(np.isnan(sc.score_matrix[0, 3])) + + trg_report, trg_pair_report = sc.get_target_ligand_state_report(0) + + exp_lig_report = {'state': 10.0, + 'short desc': 'binding_site', + 'desc': 'No residues were in proximity of the target ligand.'} + + exp_pair_report = [{'state': 1, 'short desc': 'identity', + 'desc': 'Ligands could not be matched (by subgraph isomorphism)', + 'indices': [0, 1, 2, 4, 5, 6]}, + {'state': 6, 'short desc': 'single_ligand_issue', + 'desc': 'Cannot compute valid pairwise score as either model or target ligand have non-zero state.', + 'indices': [3]}] + + # order of report is fix + self.assertDictEqual(trg_report, exp_lig_report) + self.assertDictEqual(trg_pair_report[0], exp_pair_report[0]) + self.assertDictEqual(trg_pair_report[1], exp_pair_report[1]) + + + def test_no_lddt_pli_contact(self): + """ + Test behaviour where a binding site has no lDDT-PLI contacts. + + We give two copies of the target ligand which have binding site atoms + within radius=5A but no atoms at 4A. We set lddt_pli_radius=4 so that + there are no contacts for the lDDT-PLI computation, and lDDT is None. + + We check that: + - We don't get an lDDT-PLI assignment + - Both target ligands are unassigned and have the + - We get an RMSD assignment + - The second copy of the target and model ligands ensure that the + disambiguation code (which checks for the best lDDT-PLI when 2 RMSDs + are identical) works in this case (where there is no lDDT-PLI to + disambiguate the RMSDs). + - We get lDDT-PLI = None with RMSD assignment + """ + trg = _LoadPDB("T1118v1.pdb") + trg_lig = _LoadEntity("T1118v1_001.sdf") + mdl = _LoadPDB("T1118v1LG035_1.pdb") + mdl_lig = _LoadEntity("T1118v1LG035_1_1_1.sdf") + + # Ensure it's unassigned in lDDT + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, [mdl_lig, mdl_lig], + [trg_lig, trg_lig], + lddt_pli_radius=4, + rename_ligand_chain=True) + + # assignment should be empty + self.assertEqual(len(sc.assignment), 0) + self.assertEqual(sc.unassigned_target_ligands, [0, 1]) + self.assertEqual(sc.unassigned_model_ligands, [0, 1]) + + expected_report = [{'state': 10, 'short desc': 'no_contact', + 'desc': 'There were no lDDT contacts between the binding site and the ligand, and lDDT-PLI is undefined.', + 'indices': [0, 1]}] + + # both target ligands are expected to have the same report => no_contact + report_1, report_pair_1 = sc.get_target_ligand_state_report(0) + report_2, report_pair_2 = sc.get_target_ligand_state_report(1) + self.assertEqual(len(report_pair_1), 1) + self.assertEqual(len(report_pair_2), 1) + self.assertDictEqual(report_pair_1[0], expected_report[0]) + self.assertDictEqual(report_pair_2[0], expected_report[0]) + + + # However RMSD should be assigned + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, [mdl_lig, mdl_lig], + [trg_lig, trg_lig], + bs_radius=5, rename_ligand_chain=True) + + self.assertEqual(sc.assignment, [(0,0), (1,1)]) + self.assertEqual(sc.unassigned_target_ligands, []) + self.assertEqual(sc.unassigned_model_ligands, []) + + self.assertAlmostEqual(sc.score['00001_FE'][1], 2.1703, 4) + self.assertAlmostEqual(sc.score['00001_FE_2'][1], 2.1703, 4) + + expected_report = [{'state': 0, 'short desc': 'OK', + 'desc': 'OK', + 'indices': [0, 1]}] + + # both target ligands are expected to have the same report => no_contact + report_1, report_pair_1 = sc.get_target_ligand_state_report(0) + report_2, report_pair_2 = sc.get_target_ligand_state_report(1) + self.assertEqual(len(report_pair_1), 1) + self.assertEqual(len(report_pair_2), 1) + self.assertDictEqual(report_pair_1[0], expected_report[0]) + self.assertDictEqual(report_pair_2[0], expected_report[0]) def test_unassigned_reasons(self): """Test reasons for being unassigned.""" @@ -505,9 +796,9 @@ class TestLigandScoring(unittest.TestCase): # Add 3 MG in model: assignment/stoichiometry mg_pos = [ - mdl.geometric_center, - mdl.geometric_center + 1, - mdl.geometric_center + 100 + geom.Vec3(3.871, 12.343, 44.485), + geom.Vec3(3.871, 12.343, 44.485) + 1, + geom.Vec3(3.871, 12.343, 44.485) + 100 ] for i in range(3): new_chain = mdl_ed.InsertChain("L_MG_%d" % i) @@ -519,73 +810,59 @@ class TestLigandScoring(unittest.TestCase): mdl_ed.UpdateICS() trg_ed.UpdateICS() - sc = LigandScorer(mdl, trg, None, None, unassigned=True) + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg, None, None) # Check unassigned targets # NA: not in contact with target trg_na = sc.target.FindResidue("L_NA", 1) - self.assertEqual(sc.unassigned_target_ligands["L_NA"][1], "binding_site") - # ZN: no representation - trg_zn = sc.target.FindResidue("H", 1) - self.assertEqual(sc.unassigned_target_ligands["H"][1], "model_representation") + self.assertEqual(sc.unassigned_target_ligands_reasons["L_NA"][1], "no_contact") # AFB: not identical to anything in the model trg_afb = sc.target.FindResidue("G", 1) - self.assertEqual(sc.unassigned_target_ligands["G"][1], "identity") + self.assertEqual(sc.unassigned_target_ligands_reasons["G"][1], "identity") # F.G3D1: J.G3D1 assigned instead trg_fg3d1 = sc.target.FindResidue("F", 1) - self.assertEqual(sc.unassigned_target_ligands["F"][1], "stoichiometry") + self.assertEqual(sc.unassigned_target_ligands_reasons["F"][1], "stoichiometry") # CMO: disconnected trg_cmo1 = sc.target.FindResidue("L_CMO", 1) - self.assertEqual(sc.unassigned_target_ligands["L_CMO"][1], "disconnected") - # J.G3D1: assigned to L_2.G3D1 => error - trg_jg3d1 = sc.target.FindResidue("J", 1) - with self.assertRaises(RuntimeError): - sc._find_unassigned_target_ligand_reason(trg_jg3d1) - self.assertNotIn("J", sc.unassigned_target_ligands) - # Raises with an invalid ligand - with self.assertRaises(ValueError): - sc._find_unassigned_target_ligand_reason(sc.model_ligands[0]) + self.assertEqual(sc.unassigned_target_ligands_reasons["L_CMO"][1], "disconnected") + # J.G3D1: assigned to L_2.G3D1 => check if it is assigned + self.assertTrue(5 not in sc.unassigned_target_ligands) + self.assertNotIn("J", sc.unassigned_target_ligands_reasons) # Check unassigned models # OXY: not identical to anything in the model mdl_oxy = sc.model.FindResidue("L_OXY", 1) - self.assertEqual(sc.unassigned_model_ligands["L_OXY"][1], "identity") - self.assertIsNone(sc.lddt_pli["L_OXY"][1]) + self.assertEqual(sc.unassigned_model_ligands_reasons["L_OXY"][1], "identity") + self.assertTrue("L_OXY" not in sc.score) # NA: not in contact with target mdl_na = sc.model.FindResidue("L_NA", 1) - self.assertEqual(sc.unassigned_model_ligands["L_NA"][1], "binding_site") - self.assertIsNone(sc.lddt_pli["L_NA"][1]) - # ZN: no representation - mdl_zn = sc.model.FindResidue("L_ZN", 1) - self.assertEqual(sc.unassigned_model_ligands["L_ZN"][1], "model_representation") - self.assertIsNone(sc.lddt_pli["L_ZN"][1]) + self.assertEqual(sc.unassigned_model_ligands_reasons["L_NA"][1], "no_contact") + self.assertTrue("L_NA" not in sc.score) + # MG in L_MG_2 has stupid coordinates and is not assigned mdl_mg_2 = sc.model.FindResidue("L_MG_2", 1) - self.assertEqual(sc.unassigned_model_ligands["L_MG_2"][1], "stoichiometry") - self.assertIsNone(sc.lddt_pli["L_MG_2"][1]) - # MG in L_MG_0: assigned to I.MG1 => error - mdl_mg_0 = sc.model.FindResidue("L_MG_0", 1) - with self.assertRaises(RuntimeError): - sc._find_unassigned_model_ligand_reason(mdl_mg_0) - self.assertNotIn("L_MG_0", sc.unassigned_model_ligands) + self.assertEqual(sc.unassigned_model_ligands_reasons["L_MG_2"][1], "stoichiometry") + self.assertTrue("L_MG_2" not in sc.score) + + self.assertNotIn("L_MG_0", sc.unassigned_model_ligands_reasons) # CMO: disconnected mdl_cmo1 = sc.model.FindResidue("L_CMO", 1) - self.assertEqual(sc.unassigned_model_ligands["L_CMO"][1], "disconnected") - # Raises with an invalid ligand - with self.assertRaises(ValueError): - sc._find_unassigned_model_ligand_reason(sc.target_ligands[0]) + self.assertEqual(sc.unassigned_model_ligands_reasons["L_CMO"][1], "disconnected") # Should work with rmsd_assignment too - sc = LigandScorer(mdl, trg, None, None, unassigned=True, - rmsd_assignment=True) - self.assertEqual(sc.unassigned_model_ligands, { + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, None, None, + full_bs_search=True) + + + + self.assertDictEqual(sc.unassigned_model_ligands_reasons, { 'L_ZN': {1: 'model_representation'}, 'L_NA': {1: 'binding_site'}, 'L_OXY': {1: 'identity'}, 'L_MG_2': {1: 'stoichiometry'}, "L_CMO": {1: 'disconnected'} }) - self.assertEqual(sc.unassigned_target_ligands, { + self.assertDictEqual(sc.unassigned_target_ligands_reasons, { 'G': {1: 'identity'}, 'H': {1: 'model_representation'}, 'J': {1: 'stoichiometry'}, @@ -593,116 +870,50 @@ class TestLigandScoring(unittest.TestCase): 'L_NA': {1: 'binding_site'}, "L_CMO": {1: 'disconnected'} }) - self.assertIsNone(sc.lddt_pli["L_OXY"][1]) + self.assertTrue("L_OXY" not in sc.score) # With missing ligands - sc = LigandScorer(mdl.Select("cname=A"), trg, None, None) - self.assertEqual(sc.unassigned_target_ligands["E"][1], 'no_ligand') + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl.Select("cname=A"), trg, None, None) + self.assertEqual(sc.unassigned_target_ligands_reasons["E"][1], 'no_ligand') - sc = LigandScorer(mdl, trg.Select("cname=A"), None, None) - self.assertEqual(sc.unassigned_model_ligands["L_2"][1], 'no_ligand') + sc = ligand_scoring_lddtpli.LDDTPLIScorer(mdl, trg.Select("cname=A"), None, None) + self.assertEqual(sc.unassigned_model_ligands_reasons["L_2"][1], 'no_ligand') - sc = LigandScorer(mdl.Select("cname=A"), trg, None, None, - unassigned=True, rmsd_assignment=True) - self.assertEqual(sc.unassigned_target_ligands["E"][1], 'no_ligand') + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl.Select("cname=A"), trg, None, None) + self.assertEqual(sc.unassigned_target_ligands_reasons["E"][1], 'no_ligand') - sc = LigandScorer(mdl, trg.Select("cname=A"), None, None, - unassigned=True, rmsd_assignment=True) - self.assertEqual(sc.unassigned_model_ligands["L_2"][1], 'no_ligand') + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg.Select("cname=A"), None, None) + self.assertEqual(sc.unassigned_model_ligands_reasons["L_2"][1], 'no_ligand') # However not everything must be missing with self.assertRaises(ValueError): - sc = LigandScorer(mdl.Select("cname=A"), trg.Select("cname=A"), None, None, - unassigned=True, rmsd_assignment=True) - - - def test_substructure_match(self): - """Test that substructure_match=True works.""" - trg = _LoadMMCIF("1r8q.cif.gz") - mdl = _LoadMMCIF("P84080_model_02.cif.gz") - - trg_g3d1 = trg.FindResidue("F", 1) - mdl_g3d = mdl.FindResidue("L_2", 1) - - # Skip PA, PB and O[1-3]A and O[1-3]B in target and model - # ie 8 / 32 atoms => coverage 0.75 - # We assume atom index are fixed and won't change - trg_g3d1_sub_ent = trg_g3d1.Select("aindex>6019") - trg_g3d1_sub = trg_g3d1_sub_ent.residues[0] - - # Substructure matches - sc = LigandScorer(mdl.Select("protein=True"), trg.Select("protein=True"), - model_ligands=[mdl_g3d], target_ligands=[trg_g3d1_sub], - substructure_match=True) - self.assertEqual(sc.rmsd_details["L_2"][1]["coverage"], 0.75) - - def test_6jyf(self): - """6JYF initially caused issues in the CASP15-CAMEO/LIGATE paper where - the ligand RET was wrongly assigned to short copies of OLA that float - around and yielded higher scores. - Here we test that this is resolved correctly.""" - mdl = _LoadPDB("6jyf_mdl.pdb") - trg = _LoadMMCIF("6jyf_trg.cif") - mdl_lig = _LoadEntity("6jyf_RET_pred.sdf") - mdl_lig_full = _LoadEntity("6jyf_RET_pred_complete.sdf") - - # Problem is easily fixed by just prioritizing full coverage - sc = LigandScorer(mdl, trg, model_ligands=[mdl_lig], - substructure_match=True) - self.assertEqual(sc.rmsd_details['00001_'][1]["coverage"], 1.0) - self.assertEqual(sc.rmsd_details['00001_'][1]["target_ligand"].name, "RET") - self.assertAlmostEqual(sc.rmsd['00001_'][1], 15.56022, 4) - self.assertTrue(np.array_equal(sc.coverage_matrix, - np.array([[1, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.3, 0.45, 0, 0, 0.55]]).transpose())) - - # We need to make sure that it also works if the match is partial. - # For that we load the complete ligand incl. the O missing in target - # with a coverage of around 95% only. - sc = LigandScorer(mdl, trg, model_ligands=[mdl_lig_full], - substructure_match=True) - self.assertTrue(sc.rmsd_details['00001_'][1]["coverage"] > 0.95) - self.assertEqual(sc.rmsd_details['00001_'][1]["target_ligand"].name, "RET") - self.assertAlmostEqual(sc.rmsd['00001_'][1], 15.56022, 4) - - # Next, we check that coverage_delta has an effect. With a large - # delta of 0.5 we will assign to OLA which has a higher RMSD - # but a coverage of 0.52 only. - sc = LigandScorer(mdl, trg, model_ligands=[mdl_lig_full], - substructure_match=True, - coverage_delta=0.5) - self.assertTrue(sc.rmsd_details['00001_'][1]["coverage"] > 0.5) - self.assertEqual(sc.rmsd_details['00001_'][1]["target_ligand"].name, "OLA") - self.assertAlmostEqual(sc.rmsd['00001_'][1], 6.13006878, 4) - - - def test_skip_too_many_symmetries(self): - """ - Test behaviour of max_symmetries. - """ - trg = _LoadMMCIF("1r8q.cif.gz") - mdl = _LoadMMCIF("P84080_model_02.cif.gz") - - # Pass entity views - trg_lig = [trg.Select("cname=F")] - mdl_lig = [mdl.Select("rname=G3D")] - - # G3D has 72 isomorphic mappings to itself. - # Limit to 10 to raise - symmetries = ligand_scoring._ComputeSymmetries(mdl_lig[0], trg_lig[0], max_symmetries=100) - assert len(symmetries) == 72 - with self.assertRaises(TooManySymmetriesError): - ligand_scoring._ComputeSymmetries(mdl_lig[0], trg_lig[0], max_symmetries=10) - - # Check the unassignment - sc = LigandScorer(mdl, trg, mdl_lig, trg_lig, max_symmetries=10) - assert "L_2" not in sc.rmsd - sc.unassigned_model_ligands["L_2"][1] == "symmetries" - sc.unassigned_target_ligands["F"][1] == "symmetries" - + sc = LigandScorer(mdl.Select("cname=A"), trg.Select("cname=A"), None, None) + + # Test with partial bs search (full_bs_search=True) + # Here we expect L_MG_2 to be unassigned because of stoichiometry + # rather than model_representation, as it no longer matters so far from + # the binding site. + sc = ligand_scoring_scrmsd.SCRMSDScorer(mdl, trg, None, None, + full_bs_search=True) + self.assertEqual(sc.unassigned_model_ligands_reasons, { + 'L_ZN': {1: 'model_representation'}, + 'L_NA': {1: 'binding_site'}, + 'L_OXY': {1: 'identity'}, + 'L_MG_2': {1: 'stoichiometry'}, + "L_CMO": {1: 'disconnected'} + }) + self.assertEqual(sc.unassigned_target_ligands_reasons, { + 'G': {1: 'identity'}, + 'H': {1: 'model_representation'}, + 'J': {1: 'stoichiometry'}, + 'K': {1: 'identity'}, + 'L_NA': {1: 'binding_site'}, + "L_CMO": {1: 'disconnected'} + }) if __name__ == "__main__": from ost import testutils if testutils.DefaultCompoundLibIsSet(): testutils.RunTests() else: - print('No compound lib available. Ignoring test_ligand_scoring.py tests.') + print('No compound lib available. Ignoring test_ligand_scoring.py tests.') \ No newline at end of file diff --git a/modules/mol/alg/tests/test_ost_dockq.py b/modules/mol/alg/tests/test_ost_dockq.py new file mode 100644 index 0000000000000000000000000000000000000000..32c1322891ba1202f8cf829db5c33a4c753cbb83 --- /dev/null +++ b/modules/mol/alg/tests/test_ost_dockq.py @@ -0,0 +1,51 @@ +import unittest, os, sys +import ost +from ost import conop +from ost import io, mol, seq, settings +from ost.mol.alg import dockq +import json + +def _LoadFile(file_name): + """Helper to avoid repeating input path over and over.""" + return io.LoadPDB(os.path.join('testfiles', file_name)) + +class TestDockQ(unittest.TestCase): + + def test_dockq(self): + + mdl = _LoadFile("lddtbs_mdl.pdb").Select("peptide=True") + trg = _LoadFile("lddtbs_ref_1r8q.1.pdb").Select("peptide=True") + + dockq_result = dockq.DockQ(mdl, trg, "A", "B", "B", "A") + + # compare to results computed with DockQ from https://github.com/bjornwallner/DockQ + # commit: 7a0a1c49ec70e2db68cb160abbe6aaf2f844a4ec + self.assertEqual(dockq_result["nnat"], 87) + self.assertEqual(dockq_result["nmdl"], 109) + self.assertAlmostEqual(dockq_result["fnat"], 0.828, places=3) + self.assertAlmostEqual(dockq_result["fnonnat"], 0.339, places=3) + self.assertAlmostEqual(dockq_result["irmsd"], 2.411, places=3) + self.assertAlmostEqual(dockq_result["lrmsd"], 6.568, places=3) + self.assertAlmostEqual(dockq_result["DockQ"], 0.578, places=3) + + # enable "peptide mode" by passing -capri_peptide flag to DockQ executable + # not that we're dealing with a peptide here, but we can still check + # the slightly different parameterization... + dockq_result = dockq.DockQ(mdl, trg, "A", "B", "B", "A", + contact_dist_thresh = 4.0, + interface_dist_thresh = 8.0, + interface_cb = True) + + self.assertEqual(dockq_result["nnat"], 54) + self.assertEqual(dockq_result["nmdl"], 76) + self.assertAlmostEqual(dockq_result["fnat"], 0.815, places=3) + self.assertAlmostEqual(dockq_result["fnonnat"], 0.421, places=3) + self.assertAlmostEqual(dockq_result["irmsd"], 1.579, places=3) + # for whatever reason, DockQ produces a slightly different number for + # lrmsd than above... Let's just slightly reduce accuracy + self.assertAlmostEqual(dockq_result["lrmsd"], 6.569, places=2) + self.assertAlmostEqual(dockq_result["DockQ"], 0.638, places=3) + +if __name__ == "__main__": + from ost import testutils + testutils.RunTests() diff --git a/modules/mol/alg/tests/test_qsscore.py b/modules/mol/alg/tests/test_qsscore.py index 5aed15ee8eb8f2591876b8862431e1680a41e88b..a753ee45b5b62e80a9eb57aa50ea86fd5dc85f21 100644 --- a/modules/mol/alg/tests/test_qsscore.py +++ b/modules/mol/alg/tests/test_qsscore.py @@ -78,7 +78,7 @@ class TestQSScore(unittest.TestCase): # we need to derive a chain mapping prior to scoring mapper = ChainMapper(target) - res = mapper.GetRigidMapping(model, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(model, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.472, places=2) @@ -88,7 +88,7 @@ class TestQSScore(unittest.TestCase): ent_1 = _LoadFile('4ux8.1.pdb') # A2 B2 C2, symmetry: C2 ent_2 = _LoadFile('3fub.2.pdb') # A2 B2 , symmetry: C2 mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.825, 2) @@ -99,7 +99,7 @@ class TestQSScore(unittest.TestCase): ent_2 = _LoadFile('4ux8.1.pdb') # A2 B2 C2, symmetry: C2 ent_1 = _LoadFile('3fub.2.pdb') # A2 B2 , symmetry: C2 mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.825, 2) @@ -111,7 +111,7 @@ class TestQSScore(unittest.TestCase): ent_1 = _LoadFile('4ux8.1.pdb') ent_2 = _LoadFile('3fub.au.pdb') mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.356, 2) @@ -127,29 +127,29 @@ class TestQSScore(unittest.TestCase): ent_1 = _LoadFile('1efu.1.pdb') # A2 B2, symmetry: C2 ent_2 = _LoadFile('4pc6.1.pdb') # A B , no symmetry mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) - self.assertAlmostEqual(score_result.QS_global, 0.3131, 2) - self.assertAlmostEqual(score_result.QS_best, 0.941, 2) + self.assertAlmostEqual(score_result.QS_global, 0.3191, 2) + self.assertAlmostEqual(score_result.QS_best, 0.9781, 2) def test_hetero_case_2_switched_order(self): # different stoichiometry ent_2 = _LoadFile('1efu.1.pdb') # A2 B2, symmetry: C2 ent_1 = _LoadFile('4pc6.1.pdb') # A B , no symmetry mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) - self.assertAlmostEqual(score_result.QS_global, 0.3131, 2) - self.assertAlmostEqual(score_result.QS_best, 0.941, 2) + self.assertAlmostEqual(score_result.QS_global, 0.3191, 2) + self.assertAlmostEqual(score_result.QS_best, 0.9781, 2) def test_hetero_case_3(self): # more chains ent_1 = _LoadFile('2vjt.1.pdb') # A6 B6, symmetry: D3 ent_2 = _LoadFile('3dbj.1.pdb') # A3 B3, symmetry: C3 mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.359, 2) @@ -160,7 +160,7 @@ class TestQSScore(unittest.TestCase): ent_2 = _LoadFile('2vjt.1.pdb') # A6 B6, symmetry: D3 ent_1 = _LoadFile('3dbj.1.pdb') # A3 B3, symmetry: C3 mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.359, 2) @@ -171,7 +171,7 @@ class TestQSScore(unittest.TestCase): ent_1 = _LoadFile('3ia3.1.pdb') # AB, no symmetry ent_2 = _LoadFile('3ia3.2.pdb') # BA, no symmetry mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.980, 2) @@ -182,7 +182,7 @@ class TestQSScore(unittest.TestCase): ent_2 = _LoadFile('3ia3.1.pdb') # AB, no symmetry ent_1 = _LoadFile('3ia3.2.pdb') # BA, no symmetry mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 0.980, 2) @@ -193,11 +193,11 @@ class TestQSScore(unittest.TestCase): target = _LoadFile('1eud_ref.pdb') # AB, no symmetry model = _LoadFile('1eud_mdl_partial-dimer.pdb') # BA, no symmetry mapper = ChainMapper(target) - res = mapper.GetRigidMapping(model, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(model, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) - self.assertAlmostEqual(score_result.QS_global, 0.323, 2) - self.assertAlmostEqual(score_result.QS_best, 0.921, 2) + self.assertAlmostEqual(score_result.QS_global, 0.321, 2) + self.assertAlmostEqual(score_result.QS_best, 0.932, 2) def test_hetero_model_switched_order(self): # same as above but with switched order to test for symmetric behaviour @@ -205,11 +205,11 @@ class TestQSScore(unittest.TestCase): target = _LoadFile('1eud_mdl_partial-dimer.pdb') # BA, no symmetry model = _LoadFile('1eud_ref.pdb') # AB, no symmetry mapper = ChainMapper(target) - res = mapper.GetRigidMapping(model, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(model, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) - self.assertAlmostEqual(score_result.QS_global, 0.323, 2) - self.assertAlmostEqual(score_result.QS_best, 0.921, 2) + self.assertAlmostEqual(score_result.QS_global, 0.321, 2) + self.assertAlmostEqual(score_result.QS_best, 0.932, 2) def test_homo_1(self): # different stoichiometry SOD @@ -219,11 +219,20 @@ class TestQSScore(unittest.TestCase): # penalties, let's use those to reproduce the old results as the alignments # would differ otherwise mapper = ChainMapper(ent_1, pep_gap_open = -5, pep_gap_ext = -2) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) - self.assertAlmostEqual(score_result.QS_global, 0.147, 2) - self.assertAlmostEqual(score_result.QS_best, 0.866, 2) + + # The alignments from parasail slightly differ. The sequence identities + # are in the range 40% but slightly lower for parasail alignments. + # however, the parasail alignments appear less gappy and "nicer". + # They nevertheless lead to lower QS-score. + if seq.alg.ParasailAvailable(): + self.assertAlmostEqual(score_result.QS_global, 0.14757304498883386, 2) + self.assertAlmostEqual(score_result.QS_best, 0.7878766697963304, 2) + else: + self.assertAlmostEqual(score_result.QS_global, 0.14797023263299844, 2) + self.assertAlmostEqual(score_result.QS_best, 0.8666616636985371, 2) def test_homo_1_switched_order(self): # different stoichiometry SOD @@ -233,18 +242,26 @@ class TestQSScore(unittest.TestCase): # penalties, let's use those to reproduce the old results as the alignments # would differ otherwise mapper = ChainMapper(ent_1, pep_gap_open = -5, pep_gap_ext = -2) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) - self.assertAlmostEqual(score_result.QS_global, 0.147, 2) - self.assertAlmostEqual(score_result.QS_best, 0.866, 2) + # The alignments from parasail slightly differ. The sequence identities + # are in the range 40% but slightly lower for parasail alignments. + # however, the parasail alignments appear less gappy and "nicer". + # They nevertheless lead to lower QS-score. + if seq.alg.ParasailAvailable(): + self.assertAlmostEqual(score_result.QS_global, 0.14757304498883386, 2) + self.assertAlmostEqual(score_result.QS_best, 0.7878766697963304, 2) + else: + self.assertAlmostEqual(score_result.QS_global, 0.14797023263299844, 2) + self.assertAlmostEqual(score_result.QS_best, 0.8666616636985371, 2) def test_homo_2(self): # broken cyclic symmetry ent_1 = _LoadFile('4r7y.1.pdb') # A6, symmetry: C6 ent_2 = ent_1.Select('cname=A,B') # A2, no symmetry mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 1/6, 2) @@ -256,7 +273,7 @@ class TestQSScore(unittest.TestCase): ent_2 = _LoadFile('4r7y.1.pdb') # A6, symmetry: C6 ent_1 = ent_2.Select('cname=A,B') # A2, no symmetry mapper = ChainMapper(ent_1) - res = mapper.GetRigidMapping(ent_2, strategy="greedy_iterative_rmsd") + res = mapper.GetRMSDMapping(ent_2, strategy="greedy_iterative") qs_scorer = QSScorer.FromMappingResult(res) score_result = qs_scorer.Score(res.mapping) self.assertAlmostEqual(score_result.QS_global, 1/6, 2) diff --git a/modules/mol/alg/tests/test_qsscoring.py b/modules/mol/alg/tests/test_qsscoring.py index fc73c72d6b72a34dacb0365997460eba9c9e2a1d..f247609295a231362af6fe8e08f8fd7a5c75797d 100644 --- a/modules/mol/alg/tests/test_qsscoring.py +++ b/modules/mol/alg/tests/test_qsscoring.py @@ -1,6 +1,6 @@ import unittest, os, sys import ost -from ost import io, mol, settings +from ost import io, mol, settings, seq # check if we can import: fails if numpy or scipy not available try: from ost.mol.alg.qsscoring import * @@ -301,8 +301,18 @@ class TestQSscore(unittest.TestCase): ent_1 = _LoadFile('4dvh.1.pdb') # A2, symmetry: C2 ent_2 = _LoadFile('4br6.1.pdb') # A4, symmetry: D2 qs_scorer = QSscorer(ent_1, ent_2) - self.assertAlmostEqual(qs_scorer.global_score, 0.147, 2) - self.assertAlmostEqual(qs_scorer.best_score, 0.866, 2) + + # The alignments from parasail slightly differ. The sequence identities + # are in the range 40% but slightly lower for parasail alignments. + # however, the parasail alignments appear less gappy and "nicer". + # They nevertheless lead to lower QS-score. + if seq.alg.ParasailAvailable(): + self.assertAlmostEqual(qs_scorer.global_score, 0.14757304498883386, 2) + self.assertAlmostEqual(qs_scorer.best_score, 0.7878766697963304, 2) + else: + self.assertAlmostEqual(qs_scorer.global_score, 0.14797023263299844, 2) + self.assertAlmostEqual(qs_scorer.best_score, 0.8666616636985371, 2) + self._CheckScorer(qs_scorer) # check properties self.assertFalse(qs_scorer.calpha_only) diff --git a/modules/mol/alg/tests/testfiles/T1118v1.pdb b/modules/mol/alg/tests/testfiles/T1118v1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..03fc8f0da6abc42047445654f0ebc28a93f233c8 --- /dev/null +++ b/modules/mol/alg/tests/testfiles/T1118v1.pdb @@ -0,0 +1,5326 @@ +ATOM 1 N VAL A 100 7.275 -38.888 44.673 1.00 75.85 N +ATOM 2 CA VAL A 100 8.491 -39.573 44.148 1.00 73.91 C +ATOM 3 C VAL A 100 8.133 -40.184 42.799 1.00 72.22 C +ATOM 4 O VAL A 100 7.863 -39.411 41.880 1.00 65.06 O +ATOM 5 CB VAL A 100 8.981 -40.652 45.126 1.00 73.53 C +ATOM 6 CG1 VAL A 100 10.463 -40.916 44.972 1.00 71.61 C +ATOM 7 CG2 VAL A 100 8.663 -40.289 46.559 1.00 69.41 C +ATOM 8 N PHE A 101 8.193 -41.514 42.727 1.00 73.54 N +ATOM 9 CA PHE A 101 7.832 -42.317 41.536 1.00 62.07 C +ATOM 10 C PHE A 101 8.924 -42.246 40.467 1.00 60.11 C +ATOM 11 O PHE A 101 8.885 -41.392 39.628 1.00 64.91 O +ATOM 12 CB PHE A 101 6.366 -42.139 41.131 1.00 62.79 C +ATOM 13 CG PHE A 101 5.860 -43.314 40.345 1.00 73.43 C +ATOM 14 CD1 PHE A 101 5.304 -44.400 40.985 1.00 71.73 C +ATOM 15 CD2 PHE A 101 6.023 -43.377 38.971 1.00 70.76 C +ATOM 16 CE1 PHE A 101 4.898 -45.507 40.265 1.00 72.42 C +ATOM 17 CE2 PHE A 101 5.612 -44.485 38.256 1.00 66.74 C +ATOM 18 CZ PHE A 101 5.053 -45.549 38.906 1.00 68.73 C +ATOM 19 N ALA A 102 9.943 -43.074 40.580 1.00 58.67 N +ATOM 20 CA ALA A 102 11.058 -43.051 39.611 1.00 62.35 C +ATOM 21 C ALA A 102 10.634 -43.461 38.201 1.00 61.18 C +ATOM 22 O ALA A 102 11.075 -42.857 37.252 1.00 60.79 O +ATOM 23 CB ALA A 102 12.152 -43.951 40.100 1.00 58.83 C +ATOM 24 N LEU A 103 9.787 -44.467 38.089 1.00 63.79 N +ATOM 25 CA LEU A 103 9.426 -44.985 36.759 1.00 61.35 C +ATOM 26 C LEU A 103 8.812 -43.899 35.892 1.00 61.42 C +ATOM 27 O LEU A 103 7.868 -43.312 36.301 1.00 63.36 O +ATOM 28 CB LEU A 103 8.464 -46.146 36.939 1.00 57.36 C +ATOM 29 CG LEU A 103 8.133 -46.926 35.682 1.00 57.11 C +ATOM 30 CD1 LEU A 103 9.285 -47.795 35.301 1.00 61.68 C +ATOM 31 CD2 LEU A 103 6.941 -47.805 35.940 1.00 62.78 C +ATOM 32 N GLY A 104 9.420 -43.642 34.747 1.00 59.95 N +ATOM 33 CA GLY A 104 8.896 -42.720 33.760 1.00 54.49 C +ATOM 34 C GLY A 104 9.101 -41.254 34.070 1.00 59.48 C +ATOM 35 O GLY A 104 8.595 -40.413 33.321 1.00 64.45 O +ATOM 36 N ASN A 105 9.842 -40.932 35.120 1.00 60.48 N +ATOM 37 CA ASN A 105 10.096 -39.503 35.416 1.00 61.37 C +ATOM 38 C ASN A 105 11.585 -39.231 35.529 1.00 59.35 C +ATOM 39 O ASN A 105 12.338 -40.105 35.873 1.00 57.15 O +ATOM 40 CB ASN A 105 9.491 -39.022 36.720 1.00 62.58 C +ATOM 41 CG ASN A 105 8.008 -39.232 36.802 1.00 66.99 C +ATOM 42 OD1 ASN A 105 7.540 -40.349 36.769 1.00 67.68 O +ATOM 43 ND2 ASN A 105 7.276 -38.153 36.944 1.00 77.50 N +ATOM 44 N ASN A 106 11.963 -38.027 35.169 1.00 63.34 N +ATOM 45 CA ASN A 106 13.356 -37.609 35.269 1.00 58.21 C +ATOM 46 C ASN A 106 13.768 -37.434 36.726 1.00 58.85 C +ATOM 47 O ASN A 106 14.929 -37.677 37.079 1.00 57.92 O +ATOM 48 CB ASN A 106 13.576 -36.307 34.481 1.00 53.28 C +ATOM 49 CG ASN A 106 13.269 -36.447 32.973 1.00 55.59 C +ATOM 50 OD1 ASN A 106 13.769 -37.366 32.288 1.00 52.79 O +ATOM 51 ND2 ASN A 106 12.450 -35.536 32.453 1.00 57.72 N +ATOM 52 N LEU A 107 12.825 -36.967 37.528 1.00 59.32 N +ATOM 53 CA LEU A 107 13.015 -36.829 38.982 1.00 58.24 C +ATOM 54 C LEU A 107 14.388 -36.271 39.270 1.00 58.57 C +ATOM 55 O LEU A 107 15.008 -36.721 40.208 1.00 67.56 O +ATOM 56 CB LEU A 107 12.953 -38.231 39.569 1.00 55.16 C +ATOM 57 CG LEU A 107 11.593 -38.666 40.051 1.00 55.27 C +ATOM 58 CD1 LEU A 107 11.731 -39.942 40.802 1.00 58.94 C +ATOM 59 CD2 LEU A 107 11.015 -37.607 40.933 1.00 59.55 C +ATOM 60 N GLY A 108 14.933 -35.404 38.400 1.00 57.92 N +ATOM 61 CA GLY A 108 16.263 -34.879 38.583 1.00 66.28 C +ATOM 62 C GLY A 108 16.355 -33.892 39.743 1.00 67.45 C +ATOM 63 O GLY A 108 15.492 -33.789 40.618 1.00 58.25 O +ATOM 64 N SER A 109 17.492 -33.226 39.775 1.00 69.65 N +ATOM 65 CA SER A 109 17.668 -31.887 40.292 1.00 65.48 C +ATOM 66 C SER A 109 17.978 -31.014 39.082 1.00 68.89 C +ATOM 67 O SER A 109 18.362 -31.521 38.023 1.00 67.61 O +ATOM 68 CB SER A 109 18.804 -31.867 41.320 1.00 72.84 C +ATOM 69 OG SER A 109 19.057 -30.568 41.808 1.00 86.38 O +ATOM 70 N THR A 110 17.771 -29.707 39.210 1.00 71.46 N +ATOM 71 CA THR A 110 18.146 -28.802 38.125 1.00 72.84 C +ATOM 72 C THR A 110 18.579 -27.451 38.647 1.00 82.69 C +ATOM 73 O THR A 110 17.806 -26.778 39.330 1.00 86.24 O +ATOM 74 CB THR A 110 17.025 -28.608 37.137 1.00 71.83 C +ATOM 75 OG1 THR A 110 16.811 -29.825 36.410 1.00 78.58 O +ATOM 76 CG2 THR A 110 17.356 -27.452 36.212 1.00 74.31 C +ATOM 77 N ASP A 111 19.781 -27.039 38.256 1.00 83.50 N +ATOM 78 CA ASP A 111 20.337 -25.743 38.613 1.00 84.72 C +ATOM 79 C ASP A 111 20.878 -25.084 37.353 1.00 85.72 C +ATOM 80 O ASP A 111 21.744 -25.650 36.676 1.00 86.71 O +ATOM 81 CB ASP A 111 21.441 -25.895 39.661 1.00 91.64 C +ATOM 82 CG ASP A 111 22.075 -24.566 40.048 1.00 98.66 C +ATOM 83 OD1 ASP A 111 21.616 -23.498 39.582 1.00 98.74 O +ATOM 84 OD2 ASP A 111 23.054 -24.595 40.819 1.00100.40 O +ATOM 85 N GLY A 112 20.378 -23.894 37.050 1.00 88.15 N +ATOM 86 CA GLY A 112 20.890 -23.157 35.909 1.00 84.46 C +ATOM 87 C GLY A 112 20.711 -23.963 34.642 1.00 79.44 C +ATOM 88 O GLY A 112 19.596 -24.333 34.270 1.00 79.30 O +ATOM 89 N TYR A 113 21.822 -24.258 33.975 1.00 78.55 N +ATOM 90 CA TYR A 113 21.819 -24.965 32.703 1.00 76.24 C +ATOM 91 C TYR A 113 22.010 -26.471 32.858 1.00 73.92 C +ATOM 92 O TYR A 113 22.001 -27.193 31.853 1.00 75.36 O +ATOM 93 CB TYR A 113 22.917 -24.388 31.800 1.00 75.14 C +ATOM 94 CG TYR A 113 22.670 -22.958 31.364 1.00 77.21 C +ATOM 95 CD1 TYR A 113 23.661 -22.228 30.702 1.00 77.73 C +ATOM 96 CD2 TYR A 113 21.431 -22.346 31.578 1.00 78.94 C +ATOM 97 CE1 TYR A 113 23.437 -20.912 30.292 1.00 81.78 C +ATOM 98 CE2 TYR A 113 21.195 -21.031 31.167 1.00 80.79 C +ATOM 99 CZ TYR A 113 22.202 -20.321 30.526 1.00 81.72 C +ATOM 100 OH TYR A 113 21.970 -19.025 30.118 1.00 83.70 O +ATOM 101 N LEU A 114 22.148 -26.961 34.088 1.00 69.29 N +ATOM 102 CA LEU A 114 22.546 -28.332 34.366 1.00 67.23 C +ATOM 103 C LEU A 114 21.420 -29.058 35.086 1.00 71.26 C +ATOM 104 O LEU A 114 20.850 -28.529 36.048 1.00 72.86 O +ATOM 105 CB LEU A 114 23.819 -28.351 35.212 1.00 71.16 C +ATOM 106 CG LEU A 114 24.451 -29.703 35.514 1.00 66.36 C +ATOM 107 CD1 LEU A 114 25.368 -30.049 34.373 1.00 71.36 C +ATOM 108 CD2 LEU A 114 25.250 -29.645 36.796 1.00 70.36 C +ATOM 109 N ALA A 115 21.100 -30.263 34.622 1.00 64.24 N +ATOM 110 CA ALA A 115 20.168 -31.141 35.311 1.00 63.24 C +ATOM 111 C ALA A 115 20.921 -32.365 35.810 1.00 62.36 C +ATOM 112 O ALA A 115 21.902 -32.786 35.199 1.00 65.97 O +ATOM 113 CB ALA A 115 19.030 -31.565 34.402 1.00 58.59 C +ATOM 114 N THR A 116 20.475 -32.932 36.934 1.00 61.53 N +ATOM 115 CA THR A 116 21.220 -34.031 37.545 1.00 60.37 C +ATOM 116 C THR A 116 20.776 -35.414 37.070 1.00 60.10 C +ATOM 117 O THR A 116 21.610 -36.324 36.993 1.00 59.57 O +ATOM 118 CB THR A 116 21.116 -33.981 39.073 1.00 62.91 C +ATOM 119 OG1 THR A 116 19.750 -34.075 39.476 1.00 59.25 O +ATOM 120 CG2 THR A 116 21.691 -32.686 39.594 1.00 65.69 C +ATOM 121 N HIS A 117 19.488 -35.605 36.778 1.00 59.78 N +ATOM 122 CA HIS A 117 18.920 -36.907 36.434 1.00 57.02 C +ATOM 123 C HIS A 117 18.190 -36.858 35.102 1.00 55.46 C +ATOM 124 O HIS A 117 17.919 -35.787 34.552 1.00 56.59 O +ATOM 125 CB HIS A 117 17.954 -37.382 37.524 1.00 57.97 C +ATOM 126 CG HIS A 117 18.640 -37.688 38.806 1.00 56.67 C +ATOM 127 ND1 HIS A 117 19.195 -36.705 39.596 1.00 53.64 N +ATOM 128 CD2 HIS A 117 18.892 -38.864 39.426 1.00 59.59 C +ATOM 129 CE1 HIS A 117 19.763 -37.265 40.648 1.00 62.26 C +ATOM 130 NE2 HIS A 117 19.588 -38.573 40.572 1.00 62.06 N +ATOM 131 N SER A 118 17.851 -38.045 34.605 1.00 52.65 N +ATOM 132 CA SER A 118 17.012 -38.182 33.420 1.00 52.16 C +ATOM 133 C SER A 118 16.460 -39.596 33.409 1.00 51.30 C +ATOM 134 O SER A 118 16.916 -40.471 34.154 1.00 54.32 O +ATOM 135 CB SER A 118 17.784 -37.888 32.120 1.00 55.30 C +ATOM 136 OG SER A 118 16.927 -37.718 30.977 1.00 51.42 O +ATOM 137 N GLN A 119 15.462 -39.803 32.550 1.00 49.80 N +ATOM 138 CA GLN A 119 14.889 -41.118 32.294 1.00 54.53 C +ATOM 139 C GLN A 119 14.837 -41.461 30.804 1.00 51.73 C +ATOM 140 O GLN A 119 14.129 -42.410 30.426 1.00 49.53 O +ATOM 141 CB GLN A 119 13.482 -41.178 32.860 1.00 56.47 C +ATOM 142 CG GLN A 119 12.547 -40.276 32.071 1.00 56.72 C +ATOM 143 CD GLN A 119 11.780 -41.043 31.037 1.00 56.34 C +ATOM 144 OE1 GLN A 119 11.376 -42.178 31.288 1.00 62.27 O +ATOM 145 NE2 GLN A 119 11.560 -40.440 29.869 1.00 58.33 N +ATOM 146 N ILE A 120 15.537 -40.697 29.950 1.00 49.18 N +ATOM 147 CA ILE A 120 15.477 -40.906 28.497 1.00 49.69 C +ATOM 148 C ILE A 120 16.134 -42.219 28.083 1.00 47.45 C +ATOM 149 O ILE A 120 15.736 -42.824 27.083 1.00 49.00 O +ATOM 150 CB ILE A 120 16.109 -39.723 27.724 1.00 46.17 C +ATOM 151 CG1 ILE A 120 15.939 -39.899 26.218 1.00 47.19 C +ATOM 152 CG2 ILE A 120 17.604 -39.577 28.009 1.00 49.47 C +ATOM 153 CD1 ILE A 120 16.405 -38.672 25.377 1.00 48.93 C +ATOM 154 N ALA A 121 17.179 -42.647 28.781 1.00 49.45 N +ATOM 155 CA ALA A 121 17.917 -43.850 28.415 1.00 50.40 C +ATOM 156 C ALA A 121 17.536 -45.054 29.262 1.00 56.51 C +ATOM 157 O ALA A 121 18.169 -46.113 29.132 1.00 58.77 O +ATOM 158 CB ALA A 121 19.431 -43.608 28.531 1.00 50.50 C +ATOM 159 N THR A 122 16.562 -44.899 30.165 1.00 53.90 N +ATOM 160 CA THR A 122 16.222 -45.958 31.098 1.00 52.92 C +ATOM 161 C THR A 122 14.732 -46.132 31.361 1.00 56.11 C +ATOM 162 O THR A 122 14.358 -47.152 31.949 1.00 58.33 O +ATOM 163 CB THR A 122 16.949 -45.699 32.427 1.00 58.50 C +ATOM 164 OG1 THR A 122 16.661 -44.365 32.884 1.00 59.54 O +ATOM 165 CG2 THR A 122 18.453 -45.834 32.243 1.00 53.85 C +ATOM 166 N LYS A 123 13.876 -45.182 30.973 1.00 54.17 N +ATOM 167 CA LYS A 123 12.465 -45.137 31.352 1.00 57.35 C +ATOM 168 C LYS A 123 12.269 -45.128 32.860 1.00 54.63 C +ATOM 169 O LYS A 123 11.153 -45.348 33.341 1.00 53.81 O +ATOM 170 CB LYS A 123 11.661 -46.290 30.728 1.00 55.96 C +ATOM 171 CG LYS A 123 11.626 -46.211 29.224 1.00 56.73 C +ATOM 172 CD LYS A 123 10.474 -46.964 28.625 1.00 52.76 C +ATOM 173 CE LYS A 123 10.392 -46.621 27.159 1.00 51.85 C +ATOM 174 NZ LYS A 123 9.028 -46.919 26.600 1.00 65.71 N +ATOM 175 N THR A 124 13.328 -44.874 33.618 1.00 55.90 N +ATOM 176 CA THR A 124 13.244 -44.806 35.067 1.00 57.86 C +ATOM 177 C THR A 124 14.317 -43.842 35.550 1.00 58.91 C +ATOM 178 O THR A 124 15.479 -43.947 35.129 1.00 55.40 O +ATOM 179 CB THR A 124 13.446 -46.186 35.703 1.00 57.66 C +ATOM 180 OG1 THR A 124 13.439 -46.058 37.131 1.00 60.32 O +ATOM 181 CG2 THR A 124 14.791 -46.815 35.250 1.00 55.54 C +ATOM 182 N SER A 125 13.936 -42.919 36.439 1.00 60.22 N +ATOM 183 CA SER A 125 14.850 -41.861 36.859 1.00 55.74 C +ATOM 184 C SER A 125 16.176 -42.435 37.327 1.00 52.36 C +ATOM 185 O SER A 125 16.218 -43.277 38.227 1.00 54.03 O +ATOM 186 CB SER A 125 14.229 -41.026 37.973 1.00 55.56 C +ATOM 187 OG SER A 125 15.085 -39.946 38.305 1.00 57.23 O +ATOM 188 N LYS A 126 17.265 -41.942 36.732 1.00 53.70 N +ATOM 189 CA LYS A 126 18.616 -42.414 37.006 1.00 54.47 C +ATOM 190 C LYS A 126 19.594 -41.260 36.724 1.00 53.64 C +ATOM 191 O LYS A 126 19.385 -40.506 35.756 1.00 53.91 O +ATOM 192 CB LYS A 126 18.870 -43.666 36.135 1.00 51.10 C +ATOM 193 CG LYS A 126 20.279 -44.263 36.014 1.00 52.85 C +ATOM 194 CD LYS A 126 20.893 -44.756 37.323 1.00 59.84 C +ATOM 195 CE LYS A 126 20.405 -46.125 37.811 1.00 64.46 C +ATOM 196 NZ LYS A 126 21.155 -46.534 39.084 1.00 62.31 N +ATOM 197 N PRO A 127 20.589 -41.024 37.584 1.00 52.59 N +ATOM 198 CA PRO A 127 21.448 -39.845 37.404 1.00 52.76 C +ATOM 199 C PRO A 127 22.352 -39.971 36.197 1.00 53.09 C +ATOM 200 O PRO A 127 22.901 -41.041 35.913 1.00 54.67 O +ATOM 201 CB PRO A 127 22.268 -39.797 38.700 1.00 56.85 C +ATOM 202 CG PRO A 127 22.263 -41.192 39.213 1.00 54.08 C +ATOM 203 CD PRO A 127 20.929 -41.765 38.816 1.00 59.82 C +ATOM 204 N LEU A 128 22.539 -38.845 35.502 1.00 53.76 N +ATOM 205 CA LEU A 128 23.375 -38.848 34.307 1.00 51.24 C +ATOM 206 C LEU A 128 24.736 -39.452 34.617 1.00 52.14 C +ATOM 207 O LEU A 128 25.273 -40.246 33.835 1.00 50.68 O +ATOM 208 CB LEU A 128 23.517 -37.422 33.763 1.00 51.13 C +ATOM 209 CG LEU A 128 22.246 -36.696 33.284 1.00 50.81 C +ATOM 210 CD1 LEU A 128 22.480 -35.215 32.964 1.00 51.18 C +ATOM 211 CD2 LEU A 128 21.636 -37.389 32.066 1.00 51.30 C +ATOM 212 N LEU A 129 25.293 -39.118 35.776 1.00 53.62 N +ATOM 213 CA LEU A 129 26.630 -39.598 36.093 1.00 53.58 C +ATOM 214 C LEU A 129 26.697 -41.116 36.124 1.00 53.26 C +ATOM 215 O LEU A 129 27.774 -41.688 35.904 1.00 55.31 O +ATOM 216 CB LEU A 129 27.078 -39.022 37.428 1.00 53.67 C +ATOM 217 CG LEU A 129 28.528 -39.272 37.792 1.00 57.86 C +ATOM 218 CD1 LEU A 129 29.378 -38.227 37.113 1.00 58.82 C +ATOM 219 CD2 LEU A 129 28.691 -39.182 39.291 1.00 53.83 C +ATOM 220 N GLU A 130 25.565 -41.777 36.365 1.00 52.82 N +ATOM 221 CA GLU A 130 25.519 -43.222 36.529 1.00 54.26 C +ATOM 222 C GLU A 130 24.893 -43.925 35.325 1.00 52.71 C +ATOM 223 O GLU A 130 24.412 -45.057 35.440 1.00 55.15 O +ATOM 224 CB GLU A 130 24.753 -43.577 37.802 1.00 56.85 C +ATOM 225 CG GLU A 130 25.424 -43.085 39.074 1.00 60.94 C +ATOM 226 CD GLU A 130 24.838 -43.724 40.327 1.00 60.01 C +ATOM 227 OE1 GLU A 130 24.019 -44.674 40.185 1.00 58.65 O +ATOM 228 OE2 GLU A 130 25.217 -43.286 41.443 1.00 61.72 O +ATOM 229 N THR A 131 24.895 -43.293 34.158 1.00 53.35 N +ATOM 230 CA THR A 131 24.215 -43.868 33.007 1.00 55.44 C +ATOM 231 C THR A 131 25.219 -44.113 31.887 1.00 51.20 C +ATOM 232 O THR A 131 25.979 -43.204 31.531 1.00 50.79 O +ATOM 233 CB THR A 131 23.113 -42.946 32.494 1.00 52.01 C +ATOM 234 OG1 THR A 131 22.251 -42.582 33.578 1.00 54.28 O +ATOM 235 CG2 THR A 131 22.273 -43.718 31.516 1.00 53.11 C +ATOM 236 N SER A 132 25.192 -45.317 31.307 1.00 50.19 N +ATOM 237 CA SER A 132 26.175 -45.712 30.290 1.00 49.68 C +ATOM 238 C SER A 132 25.717 -45.345 28.879 1.00 55.66 C +ATOM 239 O SER A 132 25.715 -46.182 27.973 1.00 59.88 O +ATOM 240 CB SER A 132 26.485 -47.207 30.400 1.00 46.23 C +ATOM 241 OG SER A 132 25.337 -48.011 30.659 1.00 52.65 O +ATOM 242 N GLN A 133 25.339 -44.075 28.688 1.00 51.73 N +ATOM 243 CA GLN A 133 24.960 -43.545 27.382 1.00 50.40 C +ATOM 244 C GLN A 133 25.219 -42.053 27.348 1.00 49.77 C +ATOM 245 O GLN A 133 25.232 -41.377 28.378 1.00 46.41 O +ATOM 246 CB GLN A 133 23.489 -43.772 27.036 1.00 49.81 C +ATOM 247 CG GLN A 133 23.090 -45.214 26.961 1.00 50.85 C +ATOM 248 CD GLN A 133 23.796 -45.936 25.841 1.00 55.13 C +ATOM 249 OE1 GLN A 133 23.744 -47.165 25.764 1.00 57.45 O +ATOM 250 NE2 GLN A 133 24.470 -45.175 24.956 1.00 56.02 N +ATOM 251 N THR A 134 25.401 -41.526 26.162 1.00 53.46 N +ATOM 252 CA THR A 134 25.537 -40.090 26.097 1.00 52.30 C +ATOM 253 C THR A 134 24.153 -39.483 26.216 1.00 50.16 C +ATOM 254 O THR A 134 23.252 -39.814 25.433 1.00 55.23 O +ATOM 255 CB THR A 134 26.240 -39.669 24.825 1.00 52.79 C +ATOM 256 OG1 THR A 134 27.539 -40.274 24.809 1.00 56.09 O +ATOM 257 CG2 THR A 134 26.385 -38.182 24.810 1.00 55.62 C +ATOM 258 N VAL A 135 23.959 -38.650 27.231 1.00 45.59 N +ATOM 259 CA VAL A 135 22.695 -37.947 27.410 1.00 45.09 C +ATOM 260 C VAL A 135 22.966 -36.479 27.686 1.00 43.58 C +ATOM 261 O VAL A 135 23.738 -36.149 28.590 1.00 48.36 O +ATOM 262 CB VAL A 135 21.870 -38.540 28.552 1.00 43.27 C +ATOM 263 CG1 VAL A 135 20.665 -37.661 28.772 1.00 45.85 C +ATOM 264 CG2 VAL A 135 21.478 -39.951 28.203 1.00 47.82 C +ATOM 265 N SER A 136 22.330 -35.602 26.923 1.00 48.32 N +ATOM 266 CA SER A 136 22.415 -34.177 27.183 1.00 48.93 C +ATOM 267 C SER A 136 21.028 -33.694 27.540 1.00 50.01 C +ATOM 268 O SER A 136 20.026 -34.219 27.038 1.00 53.04 O +ATOM 269 CB SER A 136 22.939 -33.389 25.980 1.00 55.90 C +ATOM 270 OG SER A 136 24.164 -33.916 25.495 1.00 61.44 O +ATOM 271 N VAL A 137 20.981 -32.681 28.397 1.00 47.76 N +ATOM 272 CA VAL A 137 19.722 -32.102 28.850 1.00 53.28 C +ATOM 273 C VAL A 137 19.737 -30.597 28.608 1.00 56.27 C +ATOM 274 O VAL A 137 20.601 -29.877 29.137 1.00 56.27 O +ATOM 275 CB VAL A 137 19.465 -32.402 30.327 1.00 51.17 C +ATOM 276 CG1 VAL A 137 18.108 -31.860 30.738 1.00 48.68 C +ATOM 277 CG2 VAL A 137 19.582 -33.894 30.567 1.00 49.08 C +ATOM 278 N ILE A 138 18.771 -30.120 27.832 1.00 56.64 N +ATOM 279 CA ILE A 138 18.616 -28.697 27.558 1.00 60.51 C +ATOM 280 C ILE A 138 17.501 -28.167 28.446 1.00 62.72 C +ATOM 281 O ILE A 138 16.354 -28.625 28.355 1.00 64.64 O +ATOM 282 CB ILE A 138 18.321 -28.431 26.076 1.00 60.67 C +ATOM 283 CG1 ILE A 138 19.488 -28.917 25.195 1.00 62.16 C +ATOM 284 CG2 ILE A 138 18.030 -26.959 25.889 1.00 64.08 C +ATOM 285 CD1 ILE A 138 19.082 -29.409 23.812 1.00 64.54 C +ATOM 286 N THR A 139 17.837 -27.196 29.294 1.00 66.54 N +ATOM 287 CA THR A 139 16.987 -26.754 30.393 1.00 66.45 C +ATOM 288 C THR A 139 15.991 -25.673 29.952 1.00 68.05 C +ATOM 289 O THR A 139 16.157 -25.003 28.928 1.00 70.19 O +ATOM 290 CB THR A 139 17.853 -26.256 31.568 1.00 69.89 C +ATOM 291 OG1 THR A 139 18.401 -24.960 31.282 1.00 77.09 O +ATOM 292 CG2 THR A 139 19.015 -27.207 31.822 1.00 66.89 C +ATOM 293 N ARG A 140 14.924 -25.534 30.744 1.00 69.98 N +ATOM 294 CA ARG A 140 13.977 -24.440 30.542 1.00 72.76 C +ATOM 295 C ARG A 140 14.706 -23.101 30.518 1.00 73.84 C +ATOM 296 O ARG A 140 14.499 -22.289 29.609 1.00 76.69 O +ATOM 297 CB ARG A 140 12.900 -24.471 31.641 1.00 74.42 C +ATOM 298 CG ARG A 140 11.813 -23.398 31.539 1.00 69.13 C +ATOM 299 CD ARG A 140 10.795 -23.796 30.506 1.00 70.70 C +ATOM 300 NE ARG A 140 11.034 -23.082 29.254 1.00 72.58 N +ATOM 301 CZ ARG A 140 10.434 -23.362 28.098 1.00 74.24 C +ATOM 302 NH1 ARG A 140 9.536 -24.351 28.022 1.00 70.27 N +ATOM 303 NH2 ARG A 140 10.742 -22.654 27.012 1.00 73.46 N +ATOM 304 N GLU A 141 15.597 -22.868 31.493 1.00 70.26 N +ATOM 305 CA GLU A 141 16.381 -21.633 31.483 1.00 74.47 C +ATOM 306 C GLU A 141 17.168 -21.514 30.185 1.00 76.28 C +ATOM 307 O GLU A 141 17.098 -20.488 29.498 1.00 77.88 O +ATOM 308 CB GLU A 141 17.316 -21.570 32.706 1.00 79.07 C +ATOM 309 CG GLU A 141 16.623 -21.138 34.045 1.00 85.93 C +ATOM 310 CD GLU A 141 17.511 -20.325 35.010 1.00 88.67 C +ATOM 311 OE1 GLU A 141 18.746 -20.259 34.795 1.00 87.72 O +ATOM 312 OE2 GLU A 141 16.959 -19.753 35.988 1.00 93.82 O +ATOM 313 N GLN A 142 17.863 -22.584 29.791 1.00 76.88 N +ATOM 314 CA GLN A 142 18.655 -22.529 28.567 1.00 73.65 C +ATOM 315 C GLN A 142 17.774 -22.184 27.380 1.00 77.10 C +ATOM 316 O GLN A 142 18.119 -21.313 26.571 1.00 84.00 O +ATOM 317 CB GLN A 142 19.392 -23.861 28.343 1.00 70.18 C +ATOM 318 CG GLN A 142 20.398 -23.876 27.178 1.00 66.28 C +ATOM 319 CD GLN A 142 21.057 -25.246 26.945 1.00 72.32 C +ATOM 320 OE1 GLN A 142 21.180 -25.695 25.799 1.00 73.79 O +ATOM 321 NE2 GLN A 142 21.501 -25.901 28.030 1.00 71.14 N +ATOM 322 N ILE A 143 16.602 -22.812 27.285 1.00 74.97 N +ATOM 323 CA ILE A 143 15.742 -22.536 26.142 1.00 74.96 C +ATOM 324 C ILE A 143 15.443 -21.045 26.058 1.00 78.59 C +ATOM 325 O ILE A 143 15.385 -20.480 24.957 1.00 83.62 O +ATOM 326 CB ILE A 143 14.465 -23.402 26.225 1.00 73.49 C +ATOM 327 CG1 ILE A 143 14.853 -24.877 26.218 1.00 69.11 C +ATOM 328 CG2 ILE A 143 13.519 -23.136 25.072 1.00 71.26 C +ATOM 329 CD1 ILE A 143 13.672 -25.806 26.207 1.00 68.90 C +ATOM 330 N ASP A 144 15.333 -20.365 27.206 1.00 79.98 N +ATOM 331 CA ASP A 144 14.922 -18.963 27.229 1.00 79.84 C +ATOM 332 C ASP A 144 16.088 -17.989 27.040 1.00 80.76 C +ATOM 333 O ASP A 144 16.004 -17.084 26.204 1.00 84.09 O +ATOM 334 CB ASP A 144 14.183 -18.661 28.535 1.00 80.31 C +ATOM 335 CG ASP A 144 12.906 -19.480 28.697 1.00 82.97 C +ATOM 336 OD1 ASP A 144 12.117 -19.583 27.720 1.00 85.25 O +ATOM 337 OD2 ASP A 144 12.686 -19.995 29.821 1.00 79.12 O +ATOM 338 N ASP A 145 17.177 -18.160 27.796 1.00 79.64 N +ATOM 339 CA ASP A 145 18.322 -17.260 27.668 1.00 83.50 C +ATOM 340 C ASP A 145 18.754 -17.144 26.217 1.00 85.54 C +ATOM 341 O ASP A 145 19.030 -16.046 25.721 1.00 90.52 O +ATOM 342 CB ASP A 145 19.487 -17.764 28.516 1.00 85.93 C +ATOM 343 CG ASP A 145 19.228 -17.617 29.990 1.00 88.46 C +ATOM 344 OD1 ASP A 145 18.190 -17.009 30.336 1.00 88.79 O +ATOM 345 OD2 ASP A 145 20.039 -18.142 30.791 1.00 85.73 O +ATOM 346 N THR A 146 18.821 -18.281 25.523 1.00 81.09 N +ATOM 347 CA THR A 146 19.185 -18.311 24.116 1.00 79.79 C +ATOM 348 C THR A 146 18.077 -17.799 23.213 1.00 78.46 C +ATOM 349 O THR A 146 18.310 -17.642 22.008 1.00 82.77 O +ATOM 350 CB THR A 146 19.542 -19.730 23.702 1.00 78.68 C +ATOM 351 OG1 THR A 146 20.157 -19.703 22.405 1.00 84.08 O +ATOM 352 CG2 THR A 146 18.279 -20.563 23.652 1.00 78.40 C +ATOM 353 N ALA A 147 16.881 -17.570 23.757 1.00 77.71 N +ATOM 354 CA ALA A 147 15.734 -17.081 22.986 1.00 81.83 C +ATOM 355 C ALA A 147 15.382 -18.029 21.842 1.00 83.05 C +ATOM 356 O ALA A 147 14.975 -17.584 20.763 1.00 87.25 O +ATOM 357 CB ALA A 147 15.976 -15.666 22.450 1.00 86.56 C +ATOM 358 N SER A 148 15.560 -19.337 22.069 1.00 81.18 N +ATOM 359 CA SER A 148 15.209 -20.332 21.065 1.00 75.95 C +ATOM 360 C SER A 148 13.711 -20.336 20.832 1.00 77.40 C +ATOM 361 O SER A 148 12.918 -20.300 21.778 1.00 79.72 O +ATOM 362 CB SER A 148 15.672 -21.723 21.489 1.00 73.52 C +ATOM 363 OG SER A 148 17.074 -21.853 21.319 1.00 77.86 O +ATOM 364 N LYS A 149 13.332 -20.383 19.555 1.00 79.74 N +ATOM 365 CA LYS A 149 11.942 -20.428 19.117 1.00 77.63 C +ATOM 366 C LYS A 149 11.446 -21.842 18.831 1.00 71.48 C +ATOM 367 O LYS A 149 10.233 -22.047 18.734 1.00 67.06 O +ATOM 368 CB LYS A 149 11.758 -19.583 17.847 1.00 78.19 C +ATOM 369 CG LYS A 149 12.418 -18.201 17.856 1.00 81.02 C +ATOM 370 CD LYS A 149 11.629 -17.172 18.656 1.00 84.65 C +ATOM 371 CE LYS A 149 12.200 -15.764 18.462 1.00 90.67 C +ATOM 372 NZ LYS A 149 13.645 -15.683 18.858 1.00 91.53 N +ATOM 373 N THR A 150 12.345 -22.817 18.712 1.00 73.26 N +ATOM 374 CA THR A 150 12.003 -24.114 18.158 1.00 69.33 C +ATOM 375 C THR A 150 12.787 -25.207 18.849 1.00 70.53 C +ATOM 376 O THR A 150 13.929 -24.998 19.268 1.00 72.23 O +ATOM 377 CB THR A 150 12.299 -24.163 16.669 1.00 69.48 C +ATOM 378 OG1 THR A 150 11.269 -23.457 15.974 1.00 77.87 O +ATOM 379 CG2 THR A 150 12.366 -25.594 16.183 1.00 70.57 C +ATOM 380 N VAL A 151 12.177 -26.390 18.935 1.00 67.76 N +ATOM 381 CA VAL A 151 12.921 -27.519 19.474 1.00 63.51 C +ATOM 382 C VAL A 151 14.215 -27.703 18.699 1.00 62.10 C +ATOM 383 O VAL A 151 15.279 -27.948 19.277 1.00 63.85 O +ATOM 384 CB VAL A 151 12.064 -28.787 19.446 1.00 58.92 C +ATOM 385 CG1 VAL A 151 12.953 -29.987 19.746 1.00 54.93 C +ATOM 386 CG2 VAL A 151 10.919 -28.647 20.445 1.00 61.84 C +ATOM 387 N GLN A 152 14.151 -27.576 17.375 1.00 61.16 N +ATOM 388 CA GLN A 152 15.381 -27.612 16.600 1.00 64.45 C +ATOM 389 C GLN A 152 16.361 -26.548 17.090 1.00 66.09 C +ATOM 390 O GLN A 152 17.572 -26.786 17.130 1.00 67.38 O +ATOM 391 CB GLN A 152 15.054 -27.432 15.117 1.00 64.48 C +ATOM 392 CG GLN A 152 16.136 -27.866 14.135 1.00 61.26 C +ATOM 393 CD GLN A 152 15.714 -27.659 12.687 1.00 65.23 C +ATOM 394 OE1 GLN A 152 14.534 -27.792 12.334 1.00 63.42 O +ATOM 395 NE2 GLN A 152 16.675 -27.323 11.841 1.00 71.89 N +ATOM 396 N GLN A 153 15.858 -25.369 17.476 1.00 69.92 N +ATOM 397 CA GLN A 153 16.735 -24.251 17.839 1.00 72.26 C +ATOM 398 C GLN A 153 17.322 -24.408 19.237 1.00 68.05 C +ATOM 399 O GLN A 153 18.444 -23.956 19.510 1.00 66.84 O +ATOM 400 CB GLN A 153 15.966 -22.926 17.751 1.00 77.67 C +ATOM 401 CG GLN A 153 15.807 -22.390 16.331 1.00 79.96 C +ATOM 402 CD GLN A 153 15.152 -21.006 16.268 1.00 81.40 C +ATOM 403 OE1 GLN A 153 14.971 -20.335 17.290 1.00 84.89 O +ATOM 404 NE2 GLN A 153 14.831 -20.561 15.058 1.00 83.00 N +ATOM 405 N ALA A 154 16.543 -24.984 20.145 1.00 65.10 N +ATOM 406 CA ALA A 154 17.034 -25.187 21.487 1.00 60.88 C +ATOM 407 C ALA A 154 18.318 -26.010 21.487 1.00 62.99 C +ATOM 408 O ALA A 154 19.171 -25.865 22.381 1.00 68.09 O +ATOM 409 CB ALA A 154 15.940 -25.851 22.294 1.00 67.07 C +ATOM 410 N MET A 155 18.474 -26.880 20.496 1.00 64.57 N +ATOM 411 CA MET A 155 19.621 -27.777 20.420 1.00 67.27 C +ATOM 412 C MET A 155 20.795 -27.150 19.712 1.00 65.59 C +ATOM 413 O MET A 155 21.830 -27.805 19.538 1.00 62.69 O +ATOM 414 CB MET A 155 19.215 -29.075 19.746 1.00 61.59 C +ATOM 415 CG MET A 155 18.046 -29.672 20.498 1.00 62.48 C +ATOM 416 SD MET A 155 17.795 -31.403 20.172 1.00 64.78 S +ATOM 417 CE MET A 155 16.887 -31.204 18.670 1.00 61.18 C +ATOM 418 N ARG A 156 20.686 -25.869 19.381 1.00 65.39 N +ATOM 419 CA ARG A 156 21.796 -25.150 18.795 1.00 63.66 C +ATOM 420 C ARG A 156 23.082 -25.246 19.556 1.00 68.19 C +ATOM 421 O ARG A 156 24.131 -24.949 18.979 1.00 74.16 O +ATOM 422 CB ARG A 156 21.441 -23.697 18.727 1.00 69.38 C +ATOM 423 CG ARG A 156 20.397 -23.616 17.765 1.00 76.69 C +ATOM 424 CD ARG A 156 20.042 -22.244 17.348 1.00 92.63 C +ATOM 425 NE ARG A 156 19.185 -22.380 16.179 1.00 94.11 N +ATOM 426 CZ ARG A 156 18.609 -21.381 15.510 1.00 97.69 C +ATOM 427 NH1 ARG A 156 17.846 -21.641 14.429 1.00 99.82 N +ATOM 428 NH2 ARG A 156 18.757 -20.132 15.901 1.00 98.59 N +ATOM 429 N TYR A 157 23.045 -25.596 20.829 1.00 67.46 N +ATOM 430 CA TYR A 157 24.270 -25.568 21.606 1.00 63.99 C +ATOM 431 C TYR A 157 24.639 -26.957 22.091 1.00 63.42 C +ATOM 432 O TYR A 157 25.567 -27.113 22.891 1.00 64.31 O +ATOM 433 CB TYR A 157 24.126 -24.577 22.755 1.00 65.20 C +ATOM 434 CG TYR A 157 24.510 -23.173 22.339 1.00 70.94 C +ATOM 435 CD1 TYR A 157 25.835 -22.844 22.073 1.00 71.76 C +ATOM 436 CD2 TYR A 157 23.534 -22.179 22.154 1.00 72.14 C +ATOM 437 CE1 TYR A 157 26.193 -21.551 21.689 1.00 75.03 C +ATOM 438 CE2 TYR A 157 23.880 -20.884 21.761 1.00 74.92 C +ATOM 439 CZ TYR A 157 25.210 -20.579 21.528 1.00 78.40 C +ATOM 440 OH TYR A 157 25.574 -19.308 21.141 1.00 82.61 O +ATOM 441 N THR A 158 23.985 -27.972 21.559 1.00 62.10 N +ATOM 442 CA THR A 158 24.350 -29.282 22.050 1.00 60.06 C +ATOM 443 C THR A 158 25.347 -29.951 21.117 1.00 59.79 C +ATOM 444 O THR A 158 25.256 -29.791 19.894 1.00 62.50 O +ATOM 445 CB THR A 158 23.104 -30.144 22.157 1.00 58.31 C +ATOM 446 OG1 THR A 158 22.115 -29.416 22.898 1.00 65.23 O +ATOM 447 CG2 THR A 158 23.435 -31.439 22.841 1.00 58.42 C +ATOM 448 N PRO A 159 26.310 -30.692 21.654 1.00 59.85 N +ATOM 449 CA PRO A 159 27.247 -31.404 20.786 1.00 57.48 C +ATOM 450 C PRO A 159 26.547 -32.553 20.101 1.00 60.28 C +ATOM 451 O PRO A 159 25.549 -33.086 20.596 1.00 63.20 O +ATOM 452 CB PRO A 159 28.316 -31.913 21.750 1.00 57.29 C +ATOM 453 CG PRO A 159 27.575 -32.064 23.030 1.00 57.21 C +ATOM 454 CD PRO A 159 26.540 -30.986 23.076 1.00 59.78 C +ATOM 455 N GLY A 160 27.083 -32.933 18.947 1.00 62.95 N +ATOM 456 CA GLY A 160 26.597 -34.102 18.243 1.00 61.37 C +ATOM 457 C GLY A 160 25.324 -33.911 17.453 1.00 55.32 C +ATOM 458 O GLY A 160 24.714 -34.906 17.049 1.00 55.00 O +ATOM 459 N ILE A 161 24.926 -32.665 17.179 1.00 58.13 N +ATOM 460 CA ILE A 161 23.637 -32.350 16.559 1.00 59.98 C +ATOM 461 C ILE A 161 23.818 -31.186 15.583 1.00 60.01 C +ATOM 462 O ILE A 161 24.131 -30.067 16.008 1.00 60.58 O +ATOM 463 CB ILE A 161 22.570 -32.009 17.613 1.00 55.21 C +ATOM 464 CG1 ILE A 161 22.024 -33.291 18.254 1.00 53.16 C +ATOM 465 CG2 ILE A 161 21.490 -31.141 17.023 1.00 51.09 C +ATOM 466 CD1 ILE A 161 21.152 -33.056 19.486 1.00 51.82 C +ATOM 467 N PHE A 162 23.609 -31.445 14.276 1.00 59.93 N +ATOM 468 CA PHE A 162 23.676 -30.432 13.216 1.00 64.96 C +ATOM 469 C PHE A 162 22.267 -29.920 12.934 1.00 65.92 C +ATOM 470 O PHE A 162 21.389 -30.704 12.553 1.00 65.89 O +ATOM 471 CB PHE A 162 24.292 -31.010 11.937 1.00 68.15 C +ATOM 472 CG PHE A 162 24.123 -30.132 10.708 1.00 70.29 C +ATOM 473 CD1 PHE A 162 24.787 -28.932 10.593 1.00 70.61 C +ATOM 474 CD2 PHE A 162 23.293 -30.518 9.668 1.00 71.24 C +ATOM 475 CE1 PHE A 162 24.634 -28.133 9.467 1.00 68.91 C +ATOM 476 CE2 PHE A 162 23.137 -29.716 8.548 1.00 70.15 C +ATOM 477 CZ PHE A 162 23.809 -28.523 8.455 1.00 69.20 C +ATOM 478 N THR A 163 22.053 -28.607 13.081 1.00 67.15 N +ATOM 479 CA THR A 163 20.697 -28.061 13.069 1.00 64.37 C +ATOM 480 C THR A 163 20.275 -27.446 11.734 1.00 67.87 C +ATOM 481 O THR A 163 19.112 -27.055 11.609 1.00 76.89 O +ATOM 482 CB THR A 163 20.519 -27.013 14.191 1.00 60.44 C +ATOM 483 OG1 THR A 163 21.462 -25.957 14.030 1.00 72.54 O +ATOM 484 CG2 THR A 163 20.719 -27.620 15.568 1.00 58.98 C +ATOM 485 N GLY A 164 21.152 -27.382 10.721 1.00 69.71 N +ATOM 486 CA GLY A 164 20.833 -26.597 9.537 1.00 65.30 C +ATOM 487 C GLY A 164 20.357 -27.336 8.302 1.00 68.53 C +ATOM 488 O GLY A 164 20.593 -26.873 7.176 1.00 72.13 O +ATOM 489 N GLN A 165 19.629 -28.445 8.483 1.00 67.34 N +ATOM 490 CA GLN A 165 19.357 -29.325 7.344 1.00 69.57 C +ATOM 491 C GLN A 165 18.518 -28.625 6.283 1.00 74.30 C +ATOM 492 O GLN A 165 18.762 -28.793 5.082 1.00 75.53 O +ATOM 493 CB GLN A 165 18.672 -30.618 7.785 1.00 65.86 C +ATOM 494 CG GLN A 165 18.653 -31.659 6.672 1.00 70.47 C +ATOM 495 CD GLN A 165 18.112 -33.007 7.115 1.00 73.12 C +ATOM 496 OE1 GLN A 165 17.552 -33.133 8.203 1.00 66.42 O +ATOM 497 NE2 GLN A 165 18.278 -34.026 6.266 1.00 77.08 N +ATOM 498 N VAL A 166 17.525 -27.841 6.703 1.00 74.53 N +ATOM 499 CA VAL A 166 16.723 -27.061 5.766 1.00 74.58 C +ATOM 500 C VAL A 166 16.942 -25.583 6.042 1.00 76.42 C +ATOM 501 O VAL A 166 16.011 -24.777 5.948 1.00 77.76 O +ATOM 502 CB VAL A 166 15.229 -27.428 5.828 1.00 70.88 C +ATOM 503 CG1 VAL A 166 15.019 -28.834 5.303 1.00 72.08 C +ATOM 504 CG2 VAL A 166 14.716 -27.303 7.249 1.00 70.63 C +ATOM 505 N GLY A 167 18.168 -25.227 6.420 1.00 76.19 N +ATOM 506 CA GLY A 167 18.481 -23.824 6.611 1.00 76.21 C +ATOM 507 C GLY A 167 17.554 -23.208 7.632 1.00 72.17 C +ATOM 508 O GLY A 167 17.224 -23.821 8.652 1.00 74.96 O +ATOM 509 N ALA A 168 17.067 -22.010 7.331 1.00 72.98 N +ATOM 510 CA ALA A 168 16.310 -21.226 8.306 1.00 74.63 C +ATOM 511 C ALA A 168 14.826 -21.526 8.235 1.00 77.08 C +ATOM 512 O ALA A 168 13.990 -20.651 8.463 1.00 75.17 O +ATOM 513 CB ALA A 168 16.575 -19.739 8.093 1.00 79.85 C +ATOM 514 N SER A 169 14.477 -22.762 7.892 1.00 78.05 N +ATOM 515 CA SER A 169 13.087 -23.184 7.847 1.00 77.84 C +ATOM 516 C SER A 169 12.617 -23.638 9.224 1.00 81.68 C +ATOM 517 O SER A 169 13.392 -24.079 10.070 1.00 86.11 O +ATOM 518 CB SER A 169 12.874 -24.307 6.829 1.00 73.18 C +ATOM 519 OG SER A 169 11.524 -24.747 6.822 1.00 74.39 O +ATOM 520 N ASN A 170 11.324 -23.564 9.408 1.00 83.60 N +ATOM 521 CA ASN A 170 10.667 -23.515 10.706 1.00 78.14 C +ATOM 522 C ASN A 170 9.408 -24.368 10.778 1.00 74.16 C +ATOM 523 O ASN A 170 8.822 -24.494 11.860 1.00 71.72 O +ATOM 524 CB ASN A 170 10.368 -22.035 11.020 1.00 83.65 C +ATOM 525 CG ASN A 170 11.566 -21.328 11.624 1.00 83.71 C +ATOM 526 OD1 ASN A 170 12.040 -21.746 12.674 1.00 81.73 O +ATOM 527 ND2 ASN A 170 12.186 -20.380 10.863 1.00 94.90 N +ATOM 528 N ARG A 171 9.007 -24.983 9.666 1.00 73.31 N +ATOM 529 CA ARG A 171 7.820 -25.814 9.579 1.00 68.98 C +ATOM 530 C ARG A 171 8.023 -27.143 10.292 1.00 68.67 C +ATOM 531 O ARG A 171 7.126 -27.625 10.992 1.00 66.45 O +ATOM 532 CB ARG A 171 7.485 -26.028 8.103 1.00 69.92 C +ATOM 533 CG ARG A 171 6.352 -26.980 7.845 1.00 66.84 C +ATOM 534 CD ARG A 171 6.148 -27.103 6.363 1.00 68.66 C +ATOM 535 NE ARG A 171 6.021 -25.794 5.741 1.00 71.70 N +ATOM 536 CZ ARG A 171 5.656 -25.619 4.478 1.00 73.28 C +ATOM 537 NH1 ARG A 171 5.388 -26.680 3.728 1.00 71.13 N +ATOM 538 NH2 ARG A 171 5.561 -24.395 3.969 1.00 74.06 N +ATOM 539 N TYR A 172 9.183 -27.760 10.112 1.00 68.16 N +ATOM 540 CA TYR A 172 9.436 -29.075 10.671 1.00 65.43 C +ATOM 541 C TYR A 172 10.671 -29.027 11.557 1.00 62.20 C +ATOM 542 O TYR A 172 11.516 -28.139 11.437 1.00 69.78 O +ATOM 543 CB TYR A 172 9.612 -30.124 9.559 1.00 65.26 C +ATOM 544 CG TYR A 172 8.428 -30.243 8.631 1.00 64.43 C +ATOM 545 CD1 TYR A 172 7.215 -30.740 9.084 1.00 64.83 C +ATOM 546 CD2 TYR A 172 8.523 -29.870 7.305 1.00 66.14 C +ATOM 547 CE1 TYR A 172 6.126 -30.854 8.235 1.00 68.33 C +ATOM 548 CE2 TYR A 172 7.446 -29.984 6.449 1.00 69.37 C +ATOM 549 CZ TYR A 172 6.249 -30.473 6.915 1.00 68.84 C +ATOM 550 OH TYR A 172 5.178 -30.581 6.050 1.00 65.87 O +ATOM 551 N ASP A 173 10.790 -30.005 12.437 1.00 59.35 N +ATOM 552 CA ASP A 173 11.937 -30.089 13.332 1.00 60.14 C +ATOM 553 C ASP A 173 12.902 -31.154 12.810 1.00 60.15 C +ATOM 554 O ASP A 173 12.836 -32.326 13.191 1.00 55.79 O +ATOM 555 CB ASP A 173 11.467 -30.381 14.751 1.00 60.52 C +ATOM 556 CG ASP A 173 11.201 -29.116 15.540 1.00 64.11 C +ATOM 557 OD1 ASP A 173 11.881 -28.109 15.256 1.00 69.21 O +ATOM 558 OD2 ASP A 173 10.300 -29.111 16.415 1.00 66.43 O +ATOM 559 N TYR A 174 13.828 -30.731 11.947 1.00 63.06 N +ATOM 560 CA TYR A 174 14.900 -31.602 11.464 1.00 61.33 C +ATOM 561 C TYR A 174 16.001 -31.684 12.529 1.00 59.98 C +ATOM 562 O TYR A 174 16.652 -30.675 12.823 1.00 64.03 O +ATOM 563 CB TYR A 174 15.487 -31.064 10.161 1.00 62.02 C +ATOM 564 CG TYR A 174 14.565 -30.995 8.970 1.00 63.60 C +ATOM 565 CD1 TYR A 174 14.652 -31.924 7.953 1.00 63.37 C +ATOM 566 CD2 TYR A 174 13.643 -29.953 8.839 1.00 65.43 C +ATOM 567 CE1 TYR A 174 13.824 -31.851 6.859 1.00 68.94 C +ATOM 568 CE2 TYR A 174 12.804 -29.870 7.751 1.00 63.53 C +ATOM 569 CZ TYR A 174 12.902 -30.824 6.763 1.00 69.10 C +ATOM 570 OH TYR A 174 12.082 -30.754 5.663 1.00 69.92 O +ATOM 571 N VAL A 175 16.228 -32.872 13.100 1.00 58.13 N +ATOM 572 CA VAL A 175 17.363 -33.136 13.996 1.00 56.88 C +ATOM 573 C VAL A 175 18.282 -34.177 13.379 1.00 59.26 C +ATOM 574 O VAL A 175 17.903 -35.352 13.276 1.00 61.28 O +ATOM 575 CB VAL A 175 16.909 -33.626 15.374 1.00 56.44 C +ATOM 576 CG1 VAL A 175 18.126 -34.130 16.168 1.00 54.86 C +ATOM 577 CG2 VAL A 175 16.223 -32.515 16.115 1.00 59.71 C +ATOM 578 N VAL A 176 19.513 -33.772 13.062 1.00 56.39 N +ATOM 579 CA VAL A 176 20.528 -34.643 12.468 1.00 57.69 C +ATOM 580 C VAL A 176 21.494 -35.071 13.579 1.00 59.48 C +ATOM 581 O VAL A 176 22.320 -34.277 14.053 1.00 62.60 O +ATOM 582 CB VAL A 176 21.261 -33.926 11.326 1.00 60.92 C +ATOM 583 CG1 VAL A 176 22.198 -34.873 10.561 1.00 62.37 C +ATOM 584 CG2 VAL A 176 20.251 -33.263 10.399 1.00 62.32 C +ATOM 585 N MET A 177 21.427 -36.333 13.995 1.00 57.31 N +ATOM 586 CA MET A 177 22.210 -36.803 15.130 1.00 51.19 C +ATOM 587 C MET A 177 23.394 -37.608 14.620 1.00 52.89 C +ATOM 588 O MET A 177 23.229 -38.550 13.828 1.00 51.52 O +ATOM 589 CB MET A 177 21.346 -37.629 16.083 1.00 51.25 C +ATOM 590 CG MET A 177 20.072 -36.887 16.483 1.00 51.94 C +ATOM 591 SD MET A 177 19.142 -37.607 17.833 1.00 55.70 S +ATOM 592 CE MET A 177 20.133 -37.194 19.273 1.00 55.18 C +ATOM 593 N ARG A 178 24.586 -37.221 15.055 1.00 53.58 N +ATOM 594 CA ARG A 178 25.773 -38.006 14.779 1.00 53.41 C +ATOM 595 C ARG A 178 25.853 -38.379 13.300 1.00 54.82 C +ATOM 596 O ARG A 178 26.302 -39.473 12.939 1.00 54.35 O +ATOM 597 CB ARG A 178 25.816 -39.237 15.683 1.00 51.50 C +ATOM 598 CG ARG A 178 26.141 -38.860 17.128 1.00 50.25 C +ATOM 599 CD ARG A 178 26.413 -40.070 18.020 1.00 51.81 C +ATOM 600 NE ARG A 178 26.805 -39.659 19.375 1.00 54.96 N +ATOM 601 CZ ARG A 178 27.182 -40.488 20.355 1.00 53.89 C +ATOM 602 NH1 ARG A 178 27.214 -41.806 20.156 1.00 52.05 N +ATOM 603 NH2 ARG A 178 27.510 -39.999 21.549 1.00 55.55 N +ATOM 604 N GLY A 179 25.376 -37.468 12.441 1.00 53.48 N +ATOM 605 CA GLY A 179 25.613 -37.524 11.013 1.00 53.82 C +ATOM 606 C GLY A 179 24.504 -38.106 10.164 1.00 52.98 C +ATOM 607 O GLY A 179 24.640 -38.127 8.935 1.00 57.38 O +ATOM 608 N PHE A 180 23.416 -38.570 10.756 1.00 53.98 N +ATOM 609 CA PHE A 180 22.329 -39.167 9.983 1.00 60.03 C +ATOM 610 C PHE A 180 21.271 -38.104 9.712 1.00 66.96 C +ATOM 611 O PHE A 180 20.505 -37.741 10.611 1.00 64.40 O +ATOM 612 CB PHE A 180 21.763 -40.372 10.718 1.00 57.74 C +ATOM 613 CG PHE A 180 22.811 -41.377 11.038 1.00 54.46 C +ATOM 614 CD1 PHE A 180 23.049 -42.445 10.177 1.00 57.19 C +ATOM 615 CD2 PHE A 180 23.615 -41.214 12.156 1.00 52.88 C +ATOM 616 CE1 PHE A 180 24.044 -43.358 10.436 1.00 56.76 C +ATOM 617 CE2 PHE A 180 24.629 -42.118 12.429 1.00 53.79 C +ATOM 618 CZ PHE A 180 24.841 -43.198 11.574 1.00 56.23 C +ATOM 619 N ALA A 181 21.286 -37.560 8.478 1.00 67.20 N +ATOM 620 CA ALA A 181 20.199 -36.713 7.984 1.00 65.25 C +ATOM 621 C ALA A 181 19.019 -37.552 7.521 1.00 71.57 C +ATOM 622 O ALA A 181 17.982 -37.007 7.129 1.00 75.40 O +ATOM 623 CB ALA A 181 20.680 -35.831 6.829 1.00 69.91 C +ATOM 624 N ASP A 182 19.197 -38.872 7.495 1.00 74.44 N +ATOM 625 CA ASP A 182 18.330 -39.854 6.856 1.00 78.08 C +ATOM 626 C ASP A 182 16.855 -39.552 7.023 1.00 75.27 C +ATOM 627 O ASP A 182 16.137 -39.296 6.061 1.00 78.21 O +ATOM 628 CB ASP A 182 18.612 -41.220 7.514 1.00 81.30 C +ATOM 629 CG ASP A 182 19.938 -41.817 7.083 1.00 85.42 C +ATOM 630 OD1 ASP A 182 20.830 -41.031 6.682 1.00 85.90 O +ATOM 631 OD2 ASP A 182 20.139 -43.034 7.254 1.00 88.42 O +ATOM 632 N ASN A 183 16.430 -39.563 8.267 1.00 67.40 N +ATOM 633 CA ASN A 183 15.050 -39.572 8.736 1.00 70.61 C +ATOM 634 C ASN A 183 14.844 -38.527 9.813 1.00 69.52 C +ATOM 635 O ASN A 183 14.073 -38.715 10.762 1.00 69.84 O +ATOM 636 CB ASN A 183 14.654 -40.978 9.192 1.00 74.01 C +ATOM 637 CG ASN A 183 14.061 -41.787 8.071 1.00 76.29 C +ATOM 638 OD1 ASN A 183 13.103 -41.330 7.445 1.00 82.84 O +ATOM 639 ND2 ASN A 183 14.697 -42.929 7.714 1.00 80.63 N +ATOM 640 N SER A 184 15.498 -37.379 9.617 1.00 67.88 N +ATOM 641 CA SER A 184 15.723 -36.408 10.684 1.00 63.28 C +ATOM 642 C SER A 184 14.440 -35.839 11.281 1.00 61.29 C +ATOM 643 O SER A 184 14.459 -35.350 12.418 1.00 59.32 O +ATOM 644 CB SER A 184 16.617 -35.276 10.149 1.00 60.61 C +ATOM 645 OG SER A 184 16.061 -34.670 8.994 1.00 70.17 O +ATOM 646 N VAL A 185 13.317 -35.902 10.564 1.00 64.24 N +ATOM 647 CA VAL A 185 12.087 -35.338 11.113 1.00 62.22 C +ATOM 648 C VAL A 185 11.382 -36.260 12.102 1.00 57.47 C +ATOM 649 O VAL A 185 10.511 -35.782 12.843 1.00 52.34 O +ATOM 650 CB VAL A 185 11.143 -34.941 9.962 1.00 62.19 C +ATOM 651 CG1 VAL A 185 11.761 -33.774 9.180 1.00 66.36 C +ATOM 652 CG2 VAL A 185 10.848 -36.139 9.048 1.00 64.96 C +ATOM 653 N ASP A 186 11.759 -37.550 12.186 1.00 58.13 N +ATOM 654 CA ASP A 186 11.059 -38.548 13.004 1.00 59.44 C +ATOM 655 C ASP A 186 11.860 -38.975 14.235 1.00 58.25 C +ATOM 656 O ASP A 186 11.797 -40.130 14.666 1.00 58.16 O +ATOM 657 CB ASP A 186 10.691 -39.780 12.173 1.00 62.05 C +ATOM 658 CG ASP A 186 9.524 -40.604 12.786 1.00 70.35 C +ATOM 659 OD1 ASP A 186 9.265 -41.728 12.290 1.00 75.75 O +ATOM 660 OD2 ASP A 186 8.875 -40.149 13.763 1.00 69.59 O +ATOM 661 N ASN A 187 12.581 -38.043 14.854 1.00 54.38 N +ATOM 662 CA ASN A 187 13.401 -38.375 16.007 1.00 53.38 C +ATOM 663 C ASN A 187 12.811 -37.903 17.331 1.00 50.79 C +ATOM 664 O ASN A 187 13.402 -38.176 18.383 1.00 50.84 O +ATOM 665 CB ASN A 187 14.793 -37.774 15.823 1.00 56.03 C +ATOM 666 CG ASN A 187 15.660 -38.589 14.873 1.00 54.84 C +ATOM 667 OD1 ASN A 187 15.470 -39.798 14.708 1.00 60.16 O +ATOM 668 ND2 ASN A 187 16.618 -37.926 14.244 1.00 55.37 N +ATOM 669 N ILE A 188 11.660 -37.215 17.324 1.00 47.95 N +ATOM 670 CA ILE A 188 11.161 -36.558 18.531 1.00 47.20 C +ATOM 671 C ILE A 188 10.320 -37.512 19.349 1.00 46.40 C +ATOM 672 O ILE A 188 9.457 -38.227 18.822 1.00 43.57 O +ATOM 673 CB ILE A 188 10.346 -35.299 18.196 1.00 46.08 C +ATOM 674 CG1 ILE A 188 11.183 -34.373 17.331 1.00 48.45 C +ATOM 675 CG2 ILE A 188 9.943 -34.605 19.476 1.00 48.49 C +ATOM 676 CD1 ILE A 188 12.434 -33.957 18.006 1.00 49.28 C +ATOM 677 N TYR A 189 10.533 -37.479 20.652 1.00 46.02 N +ATOM 678 CA TYR A 189 9.642 -38.136 21.588 1.00 43.04 C +ATOM 679 C TYR A 189 9.072 -37.079 22.516 1.00 45.11 C +ATOM 680 O TYR A 189 9.737 -36.083 22.823 1.00 46.75 O +ATOM 681 CB TYR A 189 10.358 -39.240 22.374 1.00 42.11 C +ATOM 682 CG TYR A 189 10.625 -40.448 21.516 1.00 44.52 C +ATOM 683 CD1 TYR A 189 11.622 -40.414 20.541 1.00 49.32 C +ATOM 684 CD2 TYR A 189 9.863 -41.606 21.649 1.00 46.00 C +ATOM 685 CE1 TYR A 189 11.862 -41.506 19.714 1.00 50.04 C +ATOM 686 CE2 TYR A 189 10.098 -42.714 20.834 1.00 51.19 C +ATOM 687 CZ TYR A 189 11.103 -42.657 19.860 1.00 53.91 C +ATOM 688 OH TYR A 189 11.354 -43.734 19.024 1.00 53.88 O +ATOM 689 N LEU A 190 7.820 -37.290 22.908 1.00 48.24 N +ATOM 690 CA LEU A 190 7.059 -36.414 23.786 1.00 49.69 C +ATOM 691 C LEU A 190 6.585 -37.208 24.997 1.00 51.29 C +ATOM 692 O LEU A 190 5.755 -38.120 24.867 1.00 51.00 O +ATOM 693 CB LEU A 190 5.847 -35.819 23.062 1.00 45.73 C +ATOM 694 CG LEU A 190 5.248 -34.795 24.022 1.00 49.39 C +ATOM 695 CD1 LEU A 190 6.343 -33.760 24.400 1.00 51.75 C +ATOM 696 CD2 LEU A 190 4.047 -34.153 23.408 1.00 47.25 C +ATOM 697 N ASP A 191 7.067 -36.842 26.173 1.00 54.53 N +ATOM 698 CA ASP A 191 6.646 -37.530 27.379 1.00 53.75 C +ATOM 699 C ASP A 191 6.746 -39.041 27.182 1.00 51.32 C +ATOM 700 O ASP A 191 5.810 -39.800 27.443 1.00 48.19 O +ATOM 701 CB ASP A 191 5.239 -37.089 27.780 1.00 55.24 C +ATOM 702 CG ASP A 191 5.196 -35.620 28.232 1.00 58.66 C +ATOM 703 OD1 ASP A 191 4.568 -34.787 27.538 1.00 55.93 O +ATOM 704 OD2 ASP A 191 5.769 -35.302 29.302 1.00 60.73 O +ATOM 705 N GLY A 192 7.913 -39.463 26.691 1.00 55.26 N +ATOM 706 CA GLY A 192 8.281 -40.861 26.627 1.00 53.43 C +ATOM 707 C GLY A 192 7.548 -41.667 25.589 1.00 48.07 C +ATOM 708 O GLY A 192 7.635 -42.902 25.614 1.00 52.16 O +ATOM 709 N LEU A 193 6.824 -41.011 24.683 1.00 45.45 N +ATOM 710 CA LEU A 193 6.056 -41.680 23.634 1.00 48.34 C +ATOM 711 C LEU A 193 6.464 -41.111 22.288 1.00 45.05 C +ATOM 712 O LEU A 193 6.673 -39.902 22.171 1.00 46.95 O +ATOM 713 CB LEU A 193 4.541 -41.485 23.805 1.00 45.70 C +ATOM 714 CG LEU A 193 3.981 -42.105 25.069 1.00 44.83 C +ATOM 715 CD1 LEU A 193 2.605 -41.537 25.343 1.00 47.42 C +ATOM 716 CD2 LEU A 193 3.910 -43.593 24.909 1.00 45.96 C +ATOM 717 N LYS A 194 6.558 -41.961 21.268 1.00 45.39 N +ATOM 718 CA LYS A 194 6.926 -41.448 19.959 1.00 42.26 C +ATOM 719 C LYS A 194 5.990 -40.316 19.560 1.00 43.97 C +ATOM 720 O LYS A 194 4.844 -40.248 19.999 1.00 50.04 O +ATOM 721 CB LYS A 194 6.876 -42.544 18.910 1.00 42.67 C +ATOM 722 CG LYS A 194 7.415 -42.109 17.577 1.00 45.74 C +ATOM 723 CD LYS A 194 8.874 -42.475 17.464 1.00 48.38 C +ATOM 724 CE LYS A 194 9.369 -42.374 16.028 1.00 57.06 C +ATOM 725 NZ LYS A 194 10.757 -42.924 15.905 1.00 57.78 N +ATOM 726 N ALA A 195 6.498 -39.391 18.751 1.00 45.75 N +ATOM 727 CA ALA A 195 5.644 -38.313 18.261 1.00 45.74 C +ATOM 728 C ALA A 195 4.617 -38.805 17.244 1.00 50.73 C +ATOM 729 O ALA A 195 3.527 -38.239 17.155 1.00 53.91 O +ATOM 730 CB ALA A 195 6.501 -37.196 17.668 1.00 52.02 C +ATOM 731 N MET A 196 4.940 -39.826 16.451 1.00 53.36 N +ATOM 732 CA MET A 196 3.967 -40.455 15.555 1.00 51.97 C +ATOM 733 C MET A 196 3.607 -39.611 14.342 1.00 55.72 C +ATOM 734 O MET A 196 2.600 -39.875 13.694 1.00 56.80 O +ATOM 735 CB MET A 196 2.670 -40.773 16.314 1.00 49.32 C +ATOM 736 CG MET A 196 2.782 -41.861 17.381 1.00 46.39 C +ATOM 737 SD MET A 196 2.936 -43.492 16.631 1.00 52.46 S +ATOM 738 CE MET A 196 4.688 -43.750 16.830 1.00 51.41 C +ATOM 739 N GLY A 197 4.385 -38.614 13.974 1.00 60.66 N +ATOM 740 CA GLY A 197 4.233 -38.079 12.644 1.00 58.38 C +ATOM 741 C GLY A 197 4.550 -39.142 11.607 1.00 58.84 C +ATOM 742 O GLY A 197 5.050 -40.229 11.914 1.00 59.08 O +ATOM 743 N ASP A 198 4.232 -38.838 10.347 1.00 62.24 N +ATOM 744 CA ASP A 198 4.563 -39.714 9.224 1.00 56.79 C +ATOM 745 C ASP A 198 5.616 -39.017 8.383 1.00 58.70 C +ATOM 746 O ASP A 198 5.291 -38.166 7.552 1.00 60.44 O +ATOM 747 CB ASP A 198 3.336 -40.042 8.395 1.00 59.91 C +ATOM 748 CG ASP A 198 3.508 -41.312 7.587 1.00 61.88 C +ATOM 749 OD1 ASP A 198 2.513 -42.054 7.439 1.00 63.64 O +ATOM 750 OD2 ASP A 198 4.639 -41.568 7.107 1.00 61.52 O +ATOM 751 N SER A 199 6.877 -39.398 8.595 1.00 62.50 N +ATOM 752 CA SER A 199 7.984 -38.784 7.877 1.00 59.76 C +ATOM 753 C SER A 199 7.913 -39.051 6.389 1.00 60.08 C +ATOM 754 O SER A 199 8.660 -38.427 5.626 1.00 67.81 O +ATOM 755 CB SER A 199 9.313 -39.303 8.415 1.00 61.25 C +ATOM 756 OG SER A 199 9.466 -40.673 8.092 1.00 57.85 O +ATOM 757 N GLY A 200 7.089 -40.012 5.973 1.00 57.14 N +ATOM 758 CA GLY A 200 6.779 -40.303 4.585 1.00 59.21 C +ATOM 759 C GLY A 200 5.678 -39.457 3.979 1.00 62.20 C +ATOM 760 O GLY A 200 5.323 -39.614 2.804 1.00 60.76 O +ATOM 761 N THR A 201 5.102 -38.559 4.762 1.00 63.04 N +ATOM 762 CA THR A 201 4.099 -37.631 4.277 1.00 59.12 C +ATOM 763 C THR A 201 4.445 -36.245 4.807 1.00 61.98 C +ATOM 764 O THR A 201 5.494 -36.039 5.438 1.00 64.68 O +ATOM 765 CB THR A 201 2.704 -38.075 4.711 1.00 58.28 C +ATOM 766 OG1 THR A 201 2.591 -37.893 6.124 1.00 61.74 O +ATOM 767 CG2 THR A 201 2.503 -39.541 4.389 1.00 58.16 C +ATOM 768 N PHE A 202 3.570 -35.280 4.540 1.00 61.69 N +ATOM 769 CA PHE A 202 3.751 -33.961 5.131 1.00 64.50 C +ATOM 770 C PHE A 202 3.239 -33.891 6.558 1.00 62.63 C +ATOM 771 O PHE A 202 3.336 -32.831 7.180 1.00 64.79 O +ATOM 772 CB PHE A 202 3.060 -32.893 4.285 1.00 63.50 C +ATOM 773 CG PHE A 202 3.660 -32.735 2.922 1.00 66.94 C +ATOM 774 CD1 PHE A 202 4.718 -31.871 2.714 1.00 68.13 C +ATOM 775 CD2 PHE A 202 3.167 -33.453 1.849 1.00 65.78 C +ATOM 776 CE1 PHE A 202 5.277 -31.729 1.453 1.00 66.89 C +ATOM 777 CE2 PHE A 202 3.717 -33.310 0.595 1.00 63.31 C +ATOM 778 CZ PHE A 202 4.774 -32.447 0.394 1.00 65.05 C +ATOM 779 N SER A 203 2.697 -34.985 7.088 1.00 60.37 N +ATOM 780 CA SER A 203 2.110 -34.976 8.422 1.00 61.28 C +ATOM 781 C SER A 203 3.173 -35.354 9.448 1.00 65.00 C +ATOM 782 O SER A 203 3.232 -36.462 9.987 1.00 65.70 O +ATOM 783 CB SER A 203 0.899 -35.893 8.478 1.00 61.76 C +ATOM 784 OG SER A 203 -0.134 -35.341 7.677 1.00 66.10 O +ATOM 785 N SER A 204 4.046 -34.393 9.696 1.00 63.68 N +ATOM 786 CA SER A 204 4.930 -34.446 10.840 1.00 61.13 C +ATOM 787 C SER A 204 4.587 -33.302 11.779 1.00 65.84 C +ATOM 788 O SER A 204 4.272 -32.184 11.346 1.00 63.03 O +ATOM 789 CB SER A 204 6.397 -34.411 10.425 1.00 60.23 C +ATOM 790 OG SER A 204 6.726 -35.627 9.773 1.00 64.14 O +ATOM 791 N MET A 205 4.623 -33.611 13.063 1.00 64.97 N +ATOM 792 CA MET A 205 4.082 -32.747 14.083 1.00 61.03 C +ATOM 793 C MET A 205 5.183 -31.852 14.619 1.00 58.24 C +ATOM 794 O MET A 205 6.361 -32.035 14.319 1.00 66.31 O +ATOM 795 CB MET A 205 3.451 -33.608 15.172 1.00 65.52 C +ATOM 796 CG MET A 205 2.304 -34.470 14.614 1.00 65.16 C +ATOM 797 SD MET A 205 0.941 -33.526 13.863 1.00 77.44 S +ATOM 798 CE MET A 205 1.180 -33.727 12.087 1.00 63.46 C +ATOM 799 N GLN A 206 4.790 -30.844 15.389 1.00 58.91 N +ATOM 800 CA GLN A 206 5.759 -29.926 15.967 1.00 61.39 C +ATOM 801 C GLN A 206 5.303 -29.508 17.354 1.00 61.41 C +ATOM 802 O GLN A 206 4.163 -29.068 17.530 1.00 64.68 O +ATOM 803 CB GLN A 206 5.950 -28.694 15.082 1.00 58.93 C +ATOM 804 CG GLN A 206 7.161 -27.879 15.468 1.00 60.24 C +ATOM 805 CD GLN A 206 7.484 -26.829 14.435 1.00 65.17 C +ATOM 806 OE1 GLN A 206 6.622 -26.033 14.071 1.00 67.92 O +ATOM 807 NE2 GLN A 206 8.729 -26.817 13.953 1.00 66.49 N +ATOM 808 N VAL A 207 6.190 -29.642 18.330 1.00 62.26 N +ATOM 809 CA VAL A 207 5.910 -29.210 19.694 1.00 61.49 C +ATOM 810 C VAL A 207 6.469 -27.811 19.872 1.00 59.97 C +ATOM 811 O VAL A 207 7.617 -27.531 19.502 1.00 59.27 O +ATOM 812 CB VAL A 207 6.522 -30.169 20.732 1.00 59.90 C +ATOM 813 CG1 VAL A 207 6.065 -29.793 22.122 1.00 59.94 C +ATOM 814 CG2 VAL A 207 6.143 -31.592 20.443 1.00 57.27 C +ATOM 815 N ASP A 208 5.668 -26.941 20.444 1.00 65.25 N +ATOM 816 CA ASP A 208 6.113 -25.588 20.712 1.00 64.05 C +ATOM 817 C ASP A 208 6.909 -25.529 22.015 1.00 65.05 C +ATOM 818 O ASP A 208 6.376 -25.909 23.067 1.00 66.15 O +ATOM 819 CB ASP A 208 4.916 -24.674 20.785 1.00 64.19 C +ATOM 820 CG ASP A 208 5.291 -23.248 20.562 1.00 69.54 C +ATOM 821 OD1 ASP A 208 5.735 -22.612 21.544 1.00 72.02 O +ATOM 822 OD2 ASP A 208 5.179 -22.780 19.404 1.00 68.75 O +ATOM 823 N PRO A 209 8.157 -25.025 22.007 1.00 64.46 N +ATOM 824 CA PRO A 209 8.994 -25.107 23.220 1.00 61.19 C +ATOM 825 C PRO A 209 8.325 -24.567 24.457 1.00 62.94 C +ATOM 826 O PRO A 209 8.639 -25.009 25.568 1.00 69.59 O +ATOM 827 CB PRO A 209 10.225 -24.268 22.859 1.00 60.01 C +ATOM 828 CG PRO A 209 10.276 -24.283 21.381 1.00 62.93 C +ATOM 829 CD PRO A 209 8.860 -24.353 20.901 1.00 63.93 C +ATOM 830 N TYR A 210 7.400 -23.622 24.296 1.00 66.48 N +ATOM 831 CA TYR A 210 6.724 -22.975 25.414 1.00 68.40 C +ATOM 832 C TYR A 210 6.013 -23.954 26.332 1.00 69.82 C +ATOM 833 O TYR A 210 5.632 -23.565 27.446 1.00 71.65 O +ATOM 834 CB TYR A 210 5.719 -21.972 24.869 1.00 71.83 C +ATOM 835 CG TYR A 210 5.161 -20.997 25.865 1.00 79.01 C +ATOM 836 CD1 TYR A 210 5.784 -19.777 26.086 1.00 82.71 C +ATOM 837 CD2 TYR A 210 3.985 -21.269 26.548 1.00 81.14 C +ATOM 838 CE1 TYR A 210 5.264 -18.855 26.980 1.00 84.26 C +ATOM 839 CE2 TYR A 210 3.449 -20.353 27.446 1.00 83.61 C +ATOM 840 CZ TYR A 210 4.097 -19.145 27.659 1.00 87.24 C +ATOM 841 OH TYR A 210 3.589 -18.219 28.551 1.00 95.20 O +ATOM 842 N PHE A 211 5.834 -25.209 25.913 1.00 68.00 N +ATOM 843 CA PHE A 211 5.096 -26.175 26.717 1.00 69.86 C +ATOM 844 C PHE A 211 5.972 -27.215 27.436 1.00 69.03 C +ATOM 845 O PHE A 211 5.428 -28.225 27.890 1.00 70.24 O +ATOM 846 CB PHE A 211 4.065 -26.916 25.857 1.00 65.95 C +ATOM 847 CG PHE A 211 3.083 -26.022 25.148 1.00 67.34 C +ATOM 848 CD1 PHE A 211 1.915 -25.600 25.760 1.00 71.12 C +ATOM 849 CD2 PHE A 211 3.312 -25.650 23.836 1.00 68.80 C +ATOM 850 CE1 PHE A 211 1.004 -24.797 25.081 1.00 70.38 C +ATOM 851 CE2 PHE A 211 2.417 -24.850 23.153 1.00 66.76 C +ATOM 852 CZ PHE A 211 1.264 -24.423 23.773 1.00 70.44 C +ATOM 853 N LEU A 212 7.288 -27.016 27.586 1.00 65.33 N +ATOM 854 CA LEU A 212 8.175 -28.089 28.042 1.00 63.69 C +ATOM 855 C LEU A 212 8.914 -27.660 29.305 1.00 64.44 C +ATOM 856 O LEU A 212 9.221 -26.479 29.473 1.00 67.82 O +ATOM 857 CB LEU A 212 9.217 -28.402 26.952 1.00 63.29 C +ATOM 858 CG LEU A 212 8.736 -28.400 25.505 1.00 61.05 C +ATOM 859 CD1 LEU A 212 9.904 -28.432 24.484 1.00 55.69 C +ATOM 860 CD2 LEU A 212 7.767 -29.532 25.235 1.00 60.34 C +ATOM 861 N GLU A 213 9.275 -28.591 30.188 1.00 63.42 N +ATOM 862 CA GLU A 213 10.346 -28.127 31.048 1.00 63.52 C +ATOM 863 C GLU A 213 11.703 -28.465 30.473 1.00 69.93 C +ATOM 864 O GLU A 213 12.645 -27.678 30.593 1.00 68.51 O +ATOM 865 CB GLU A 213 10.362 -28.702 32.456 1.00 66.60 C +ATOM 866 CG GLU A 213 9.302 -28.698 33.500 1.00 75.25 C +ATOM 867 CD GLU A 213 8.567 -27.388 33.556 1.00 82.98 C +ATOM 868 OE1 GLU A 213 8.826 -26.557 32.538 1.00 86.32 O +ATOM 869 OE2 GLU A 213 8.227 -27.163 34.873 1.00 82.41 O +ATOM 870 N ARG A 214 11.825 -29.618 29.819 1.00 69.06 N +ATOM 871 CA ARG A 214 13.136 -30.058 29.361 1.00 62.07 C +ATOM 872 C ARG A 214 13.140 -30.507 27.908 1.00 59.69 C +ATOM 873 O ARG A 214 12.113 -30.840 27.311 1.00 57.46 O +ATOM 874 CB ARG A 214 13.669 -31.249 30.159 1.00 58.39 C +ATOM 875 CG ARG A 214 13.514 -31.162 31.631 1.00 56.44 C +ATOM 876 CD ARG A 214 13.457 -32.569 32.280 1.00 59.71 C +ATOM 877 NE ARG A 214 14.663 -33.393 32.146 1.00 56.17 N +ATOM 878 CZ ARG A 214 15.522 -33.600 33.144 1.00 52.60 C +ATOM 879 NH1 ARG A 214 15.361 -32.953 34.293 1.00 51.99 N +ATOM 880 NH2 ARG A 214 16.587 -34.385 32.971 1.00 52.96 N +ATOM 881 N ILE A 215 14.353 -30.581 27.377 1.00 57.33 N +ATOM 882 CA ILE A 215 14.652 -31.375 26.202 1.00 52.43 C +ATOM 883 C ILE A 215 15.779 -32.328 26.574 1.00 53.28 C +ATOM 884 O ILE A 215 16.804 -31.907 27.129 1.00 56.60 O +ATOM 885 CB ILE A 215 15.011 -30.494 25.003 1.00 55.36 C +ATOM 886 CG1 ILE A 215 13.762 -29.712 24.583 1.00 55.69 C +ATOM 887 CG2 ILE A 215 15.501 -31.361 23.866 1.00 54.57 C +ATOM 888 CD1 ILE A 215 13.962 -28.858 23.386 1.00 56.23 C +ATOM 889 N ASP A 216 15.576 -33.611 26.311 1.00 51.85 N +ATOM 890 CA ASP A 216 16.538 -34.651 26.648 1.00 49.47 C +ATOM 891 C ASP A 216 16.974 -35.285 25.341 1.00 49.11 C +ATOM 892 O ASP A 216 16.137 -35.544 24.468 1.00 50.08 O +ATOM 893 CB ASP A 216 15.916 -35.697 27.568 1.00 49.71 C +ATOM 894 CG ASP A 216 15.899 -35.274 29.035 1.00 57.73 C +ATOM 895 OD1 ASP A 216 16.925 -34.790 29.549 1.00 62.23 O +ATOM 896 OD2 ASP A 216 14.811 -35.354 29.657 1.00 64.96 O +ATOM 897 N VAL A 217 18.272 -35.509 25.201 1.00 46.96 N +ATOM 898 CA VAL A 217 18.876 -35.904 23.943 1.00 46.34 C +ATOM 899 C VAL A 217 19.748 -37.116 24.211 1.00 48.49 C +ATOM 900 O VAL A 217 20.847 -36.986 24.780 1.00 47.44 O +ATOM 901 CB VAL A 217 19.704 -34.762 23.355 1.00 46.44 C +ATOM 902 CG1 VAL A 217 20.278 -35.162 22.011 1.00 44.48 C +ATOM 903 CG2 VAL A 217 18.838 -33.504 23.266 1.00 47.28 C +ATOM 904 N LEU A 218 19.291 -38.288 23.784 1.00 46.27 N +ATOM 905 CA LEU A 218 20.082 -39.501 23.938 1.00 47.65 C +ATOM 906 C LEU A 218 20.738 -39.817 22.609 1.00 48.94 C +ATOM 907 O LEU A 218 20.076 -39.777 21.568 1.00 45.95 O +ATOM 908 CB LEU A 218 19.221 -40.678 24.388 1.00 49.33 C +ATOM 909 CG LEU A 218 19.813 -42.093 24.336 1.00 48.10 C +ATOM 910 CD1 LEU A 218 20.964 -42.341 25.326 1.00 48.92 C +ATOM 911 CD2 LEU A 218 18.673 -43.046 24.614 1.00 47.04 C +ATOM 912 N LYS A 219 22.022 -40.145 22.647 1.00 51.85 N +ATOM 913 CA LYS A 219 22.799 -40.398 21.443 1.00 50.22 C +ATOM 914 C LYS A 219 22.883 -41.893 21.126 1.00 50.11 C +ATOM 915 O LYS A 219 22.977 -42.743 22.019 1.00 52.10 O +ATOM 916 CB LYS A 219 24.206 -39.827 21.600 1.00 48.53 C +ATOM 917 CG LYS A 219 24.179 -38.358 21.889 1.00 51.00 C +ATOM 918 CD LYS A 219 24.273 -37.531 20.613 1.00 52.28 C +ATOM 919 CE LYS A 219 24.034 -36.065 20.947 1.00 56.39 C +ATOM 920 NZ LYS A 219 25.123 -35.512 21.795 1.00 61.47 N +ATOM 921 N GLY A 220 22.861 -42.200 19.827 1.00 48.96 N +ATOM 922 CA GLY A 220 23.144 -43.534 19.341 1.00 52.73 C +ATOM 923 C GLY A 220 21.932 -44.443 19.347 1.00 57.66 C +ATOM 924 O GLY A 220 20.876 -44.111 19.902 1.00 58.01 O +ATOM 925 N PRO A 221 22.069 -45.627 18.749 1.00 55.88 N +ATOM 926 CA PRO A 221 20.918 -46.536 18.653 1.00 55.98 C +ATOM 927 C PRO A 221 20.315 -46.778 20.023 1.00 56.46 C +ATOM 928 O PRO A 221 21.030 -46.975 21.008 1.00 57.69 O +ATOM 929 CB PRO A 221 21.521 -47.821 18.083 1.00 55.10 C +ATOM 930 CG PRO A 221 22.801 -47.396 17.454 1.00 56.34 C +ATOM 931 CD PRO A 221 23.312 -46.243 18.266 1.00 53.73 C +ATOM 932 N SER A 222 18.981 -46.696 20.092 1.00 55.09 N +ATOM 933 CA SER A 222 18.307 -46.884 21.371 1.00 54.77 C +ATOM 934 C SER A 222 16.958 -47.579 21.235 1.00 56.88 C +ATOM 935 O SER A 222 16.034 -47.296 22.007 1.00 56.43 O +ATOM 936 CB SER A 222 18.163 -45.539 22.081 1.00 52.49 C +ATOM 937 OG SER A 222 19.449 -45.022 22.409 1.00 65.06 O +ATOM 938 N SER A 223 16.807 -48.467 20.262 1.00 57.60 N +ATOM 939 CA SER A 223 15.507 -49.099 20.091 1.00 51.36 C +ATOM 940 C SER A 223 15.125 -49.995 21.256 1.00 54.74 C +ATOM 941 O SER A 223 13.946 -50.344 21.380 1.00 57.76 O +ATOM 942 CB SER A 223 15.498 -49.917 18.808 1.00 54.81 C +ATOM 943 OG SER A 223 15.621 -49.071 17.673 1.00 58.26 O +ATOM 944 N VAL A 224 16.080 -50.363 22.118 1.00 57.47 N +ATOM 945 CA VAL A 224 15.829 -51.432 23.078 1.00 55.34 C +ATOM 946 C VAL A 224 14.673 -51.063 23.999 1.00 54.28 C +ATOM 947 O VAL A 224 14.006 -51.946 24.555 1.00 56.90 O +ATOM 948 CB VAL A 224 17.123 -51.772 23.855 1.00 56.24 C +ATOM 949 CG1 VAL A 224 17.538 -50.634 24.771 1.00 56.48 C +ATOM 950 CG2 VAL A 224 16.970 -53.085 24.619 1.00 55.13 C +ATOM 951 N LEU A 225 14.398 -49.761 24.155 1.00 54.33 N +ATOM 952 CA LEU A 225 13.298 -49.258 24.974 1.00 53.27 C +ATOM 953 C LEU A 225 12.194 -48.579 24.181 1.00 52.83 C +ATOM 954 O LEU A 225 11.110 -48.375 24.729 1.00 54.88 O +ATOM 955 CB LEU A 225 13.816 -48.233 25.989 1.00 53.59 C +ATOM 956 CG LEU A 225 14.689 -48.754 27.115 1.00 54.11 C +ATOM 957 CD1 LEU A 225 15.178 -47.569 27.923 1.00 52.51 C +ATOM 958 CD2 LEU A 225 13.899 -49.725 27.970 1.00 54.35 C +ATOM 959 N TYR A 226 12.448 -48.189 22.928 1.00 52.71 N +ATOM 960 CA TYR A 226 11.531 -47.331 22.182 1.00 49.05 C +ATOM 961 C TYR A 226 11.073 -47.894 20.853 1.00 50.39 C +ATOM 962 O TYR A 226 10.214 -47.281 20.210 1.00 57.46 O +ATOM 963 CB TYR A 226 12.164 -45.958 21.906 1.00 48.12 C +ATOM 964 CG TYR A 226 12.526 -45.212 23.158 1.00 48.06 C +ATOM 965 CD1 TYR A 226 11.565 -44.516 23.872 1.00 46.71 C +ATOM 966 CD2 TYR A 226 13.828 -45.190 23.613 1.00 48.15 C +ATOM 967 CE1 TYR A 226 11.886 -43.826 25.009 1.00 51.72 C +ATOM 968 CE2 TYR A 226 14.166 -44.498 24.757 1.00 51.02 C +ATOM 969 CZ TYR A 226 13.186 -43.819 25.450 1.00 51.99 C +ATOM 970 OH TYR A 226 13.499 -43.131 26.588 1.00 51.43 O +ATOM 971 N GLY A 227 11.648 -48.992 20.389 1.00 49.69 N +ATOM 972 CA GLY A 227 11.228 -49.524 19.110 1.00 57.48 C +ATOM 973 C GLY A 227 11.811 -48.775 17.931 1.00 54.41 C +ATOM 974 O GLY A 227 12.946 -48.296 18.024 1.00 56.41 O +ATOM 975 N ARG A 228 11.056 -48.664 16.830 1.00 49.21 N +ATOM 976 CA ARG A 228 11.606 -48.074 15.613 1.00 54.11 C +ATOM 977 C ARG A 228 12.199 -46.701 15.918 1.00 56.81 C +ATOM 978 O ARG A 228 11.536 -45.846 16.522 1.00 54.62 O +ATOM 979 CB ARG A 228 10.515 -47.984 14.530 1.00 55.33 C +ATOM 980 CG ARG A 228 9.449 -46.930 14.794 1.00 57.01 C +ATOM 981 CD ARG A 228 8.310 -46.940 13.786 1.00 48.79 C +ATOM 982 NE ARG A 228 7.267 -45.960 14.125 1.00 50.02 N +ATOM 983 CZ ARG A 228 7.236 -44.709 13.665 1.00 54.73 C +ATOM 984 NH1 ARG A 228 8.196 -44.285 12.849 1.00 63.73 N +ATOM 985 NH2 ARG A 228 6.260 -43.878 14.027 1.00 49.58 N +ATOM 986 N SER A 229 13.472 -46.513 15.550 1.00 55.90 N +ATOM 987 CA SER A 229 14.131 -45.223 15.746 1.00 56.60 C +ATOM 988 C SER A 229 15.405 -45.192 14.909 1.00 54.59 C +ATOM 989 O SER A 229 15.906 -46.238 14.482 1.00 60.71 O +ATOM 990 CB SER A 229 14.439 -44.941 17.224 1.00 59.19 C +ATOM 991 OG SER A 229 15.498 -45.739 17.721 1.00 60.64 O +ATOM 992 N LEU A 230 15.917 -43.976 14.651 1.00 54.11 N +ATOM 993 CA LEU A 230 17.085 -43.822 13.769 1.00 55.45 C +ATOM 994 C LEU A 230 18.394 -44.052 14.533 1.00 53.90 C +ATOM 995 O LEU A 230 18.394 -44.138 15.767 1.00 57.47 O +ATOM 996 CB LEU A 230 17.088 -42.443 13.122 1.00 58.93 C +ATOM 997 CG LEU A 230 16.100 -42.257 11.966 1.00 61.02 C +ATOM 998 CD1 LEU A 230 16.278 -43.269 10.824 1.00 63.23 C +ATOM 999 CD2 LEU A 230 14.718 -42.277 12.504 1.00 57.07 C +ATOM 1000 N PRO A 231 19.520 -44.214 13.827 1.00 55.87 N +ATOM 1001 CA PRO A 231 20.771 -44.608 14.511 1.00 53.69 C +ATOM 1002 C PRO A 231 21.513 -43.473 15.192 1.00 52.77 C +ATOM 1003 O PRO A 231 22.326 -43.754 16.080 1.00 57.37 O +ATOM 1004 CB PRO A 231 21.641 -45.201 13.385 1.00 50.12 C +ATOM 1005 CG PRO A 231 20.791 -45.183 12.142 1.00 57.21 C +ATOM 1006 CD PRO A 231 19.693 -44.155 12.370 1.00 59.08 C +ATOM 1007 N GLY A 232 21.285 -42.212 14.812 1.00 54.62 N +ATOM 1008 CA GLY A 232 21.940 -41.113 15.510 1.00 52.68 C +ATOM 1009 C GLY A 232 21.464 -40.942 16.945 1.00 51.44 C +ATOM 1010 O GLY A 232 22.241 -40.529 17.816 1.00 45.04 O +ATOM 1011 N GLY A 233 20.191 -41.265 17.218 1.00 54.25 N +ATOM 1012 CA GLY A 233 19.665 -41.208 18.563 1.00 49.82 C +ATOM 1013 C GLY A 233 18.279 -40.616 18.565 1.00 48.85 C +ATOM 1014 O GLY A 233 17.577 -40.655 17.549 1.00 52.46 O +ATOM 1015 N LEU A 234 17.878 -40.060 19.712 1.00 49.16 N +ATOM 1016 CA LEU A 234 16.528 -39.524 19.799 1.00 49.61 C +ATOM 1017 C LEU A 234 16.466 -38.377 20.796 1.00 48.15 C +ATOM 1018 O LEU A 234 17.383 -38.161 21.602 1.00 50.86 O +ATOM 1019 CB LEU A 234 15.525 -40.612 20.167 1.00 47.70 C +ATOM 1020 CG LEU A 234 15.699 -41.251 21.520 1.00 46.21 C +ATOM 1021 CD1 LEU A 234 14.952 -40.397 22.530 1.00 50.68 C +ATOM 1022 CD2 LEU A 234 15.123 -42.637 21.470 1.00 45.64 C +ATOM 1023 N VAL A 235 15.359 -37.642 20.717 1.00 47.93 N +ATOM 1024 CA VAL A 235 15.107 -36.463 21.531 1.00 45.81 C +ATOM 1025 C VAL A 235 13.836 -36.672 22.341 1.00 48.78 C +ATOM 1026 O VAL A 235 12.860 -37.271 21.867 1.00 50.30 O +ATOM 1027 CB VAL A 235 15.010 -35.198 20.661 1.00 44.57 C +ATOM 1028 CG1 VAL A 235 14.652 -34.015 21.518 1.00 47.08 C +ATOM 1029 CG2 VAL A 235 16.362 -34.951 20.020 1.00 48.81 C +ATOM 1030 N ALA A 236 13.856 -36.185 23.577 1.00 50.11 N +ATOM 1031 CA ALA A 236 12.755 -36.396 24.507 1.00 46.58 C +ATOM 1032 C ALA A 236 12.280 -35.046 25.018 1.00 50.23 C +ATOM 1033 O ALA A 236 13.002 -34.375 25.766 1.00 49.82 O +ATOM 1034 CB ALA A 236 13.187 -37.297 25.655 1.00 46.75 C +ATOM 1035 N LEU A 237 11.072 -34.662 24.607 1.00 52.05 N +ATOM 1036 CA LEU A 237 10.420 -33.450 25.078 1.00 49.62 C +ATOM 1037 C LEU A 237 9.659 -33.787 26.347 1.00 52.06 C +ATOM 1038 O LEU A 237 8.776 -34.650 26.335 1.00 54.54 O +ATOM 1039 CB LEU A 237 9.460 -32.904 24.022 1.00 50.42 C +ATOM 1040 CG LEU A 237 10.051 -32.858 22.617 1.00 47.51 C +ATOM 1041 CD1 LEU A 237 9.212 -31.979 21.703 1.00 45.38 C +ATOM 1042 CD2 LEU A 237 11.490 -32.371 22.699 1.00 47.06 C +ATOM 1043 N THR A 238 9.981 -33.110 27.426 1.00 54.82 N +ATOM 1044 CA THR A 238 9.288 -33.318 28.688 1.00 56.66 C +ATOM 1045 C THR A 238 8.392 -32.111 28.924 1.00 57.39 C +ATOM 1046 O THR A 238 8.867 -31.038 29.301 1.00 61.80 O +ATOM 1047 CB THR A 238 10.277 -33.507 29.825 1.00 60.90 C +ATOM 1048 OG1 THR A 238 11.296 -34.431 29.411 1.00 64.31 O +ATOM 1049 CG2 THR A 238 9.549 -34.054 31.031 1.00 58.05 C +ATOM 1050 N SER A 239 7.100 -32.291 28.694 1.00 58.51 N +ATOM 1051 CA SER A 239 6.160 -31.183 28.753 1.00 61.91 C +ATOM 1052 C SER A 239 5.987 -30.685 30.187 1.00 63.94 C +ATOM 1053 O SER A 239 6.357 -31.357 31.155 1.00 68.47 O +ATOM 1054 CB SER A 239 4.820 -31.621 28.171 1.00 58.84 C +ATOM 1055 OG SER A 239 4.312 -32.703 28.935 1.00 68.02 O +ATOM 1056 N LYS A 240 5.430 -29.479 30.313 1.00 64.21 N +ATOM 1057 CA LYS A 240 5.184 -28.893 31.627 1.00 68.76 C +ATOM 1058 C LYS A 240 4.037 -29.612 32.326 1.00 71.84 C +ATOM 1059 O LYS A 240 3.050 -30.007 31.696 1.00 72.82 O +ATOM 1060 CB LYS A 240 4.857 -27.407 31.497 1.00 70.32 C +ATOM 1061 CG LYS A 240 6.055 -26.539 31.166 1.00 70.29 C +ATOM 1062 CD LYS A 240 5.628 -25.307 30.387 1.00 70.64 C +ATOM 1063 CE LYS A 240 6.700 -24.244 30.389 1.00 72.09 C +ATOM 1064 NZ LYS A 240 6.192 -23.104 29.578 1.00 73.50 N +ATOM 1065 N LYS A 241 4.160 -29.760 33.636 1.00 72.01 N +ATOM 1066 CA LYS A 241 3.233 -30.541 34.436 1.00 73.88 C +ATOM 1067 C LYS A 241 2.570 -29.678 35.504 1.00 73.93 C +ATOM 1068 O LYS A 241 3.108 -28.635 35.890 1.00 75.77 O +ATOM 1069 CB LYS A 241 3.969 -31.720 35.090 1.00 74.60 C +ATOM 1070 CG LYS A 241 4.290 -32.834 34.104 1.00 71.71 C +ATOM 1071 CD LYS A 241 3.107 -33.092 33.174 1.00 66.44 C +ATOM 1072 CE LYS A 241 3.444 -34.243 32.279 1.00 68.51 C +ATOM 1073 NZ LYS A 241 4.775 -33.976 31.626 1.00 66.28 N +ATOM 1074 N PRO A 242 1.393 -30.069 35.990 1.00 71.50 N +ATOM 1075 CA PRO A 242 0.697 -29.231 36.974 1.00 77.48 C +ATOM 1076 C PRO A 242 1.533 -29.045 38.233 1.00 79.62 C +ATOM 1077 O PRO A 242 2.014 -30.014 38.827 1.00 78.40 O +ATOM 1078 CB PRO A 242 -0.596 -30.007 37.246 1.00 78.10 C +ATOM 1079 CG PRO A 242 -0.825 -30.794 35.980 1.00 75.55 C +ATOM 1080 CD PRO A 242 0.562 -31.195 35.535 1.00 72.98 C +ATOM 1081 N LEU A 243 1.714 -27.777 38.622 1.00 79.78 N +ATOM 1082 CA LEU A 243 2.476 -27.392 39.808 1.00 82.32 C +ATOM 1083 C LEU A 243 1.563 -27.347 41.024 1.00 90.67 C +ATOM 1084 O LEU A 243 0.426 -26.876 40.938 1.00 95.48 O +ATOM 1085 CB LEU A 243 3.107 -26.012 39.621 1.00 81.06 C +ATOM 1086 CG LEU A 243 3.920 -25.779 38.361 1.00 80.04 C +ATOM 1087 CD1 LEU A 243 4.483 -24.363 38.329 1.00 82.02 C +ATOM 1088 CD2 LEU A 243 5.020 -26.808 38.369 1.00 81.01 C +ATOM 1089 N TYR A 244 2.076 -27.776 42.174 1.00 91.43 N +ATOM 1090 CA TYR A 244 1.231 -27.854 43.360 1.00 94.72 C +ATOM 1091 C TYR A 244 1.251 -26.580 44.208 1.00 98.23 C +ATOM 1092 O TYR A 244 0.764 -26.606 45.341 1.00 93.78 O +ATOM 1093 CB TYR A 244 1.614 -29.088 44.179 1.00 87.68 C +ATOM 1094 CG TYR A 244 1.085 -30.328 43.501 1.00 95.79 C +ATOM 1095 CD1 TYR A 244 1.939 -31.189 42.826 1.00 94.96 C +ATOM 1096 CD2 TYR A 244 -0.274 -30.618 43.498 1.00 98.87 C +ATOM 1097 CE1 TYR A 244 1.457 -32.306 42.177 1.00 92.40 C +ATOM 1098 CE2 TYR A 244 -0.765 -31.742 42.854 1.00 97.55 C +ATOM 1099 CZ TYR A 244 0.108 -32.580 42.195 1.00 94.72 C +ATOM 1100 OH TYR A 244 -0.363 -33.699 41.549 1.00 94.54 O +ATOM 1101 N GLU A 245 1.776 -25.469 43.675 1.00102.03 N +ATOM 1102 CA GLU A 245 1.630 -24.135 44.255 1.00 97.61 C +ATOM 1103 C GLU A 245 1.335 -23.142 43.132 1.00 98.75 C +ATOM 1104 O GLU A 245 1.824 -23.296 42.008 1.00 96.97 O +ATOM 1105 CB GLU A 245 2.888 -23.701 45.048 1.00100.27 C +ATOM 1106 CG GLU A 245 4.175 -23.439 44.212 1.00112.14 C +ATOM 1107 CD GLU A 245 5.479 -23.368 45.054 1.00121.33 C +ATOM 1108 OE1 GLU A 245 5.549 -22.589 46.041 1.00115.23 O +ATOM 1109 OE2 GLU A 245 6.450 -24.082 44.708 1.00124.82 O +ATOM 1110 N ASP A 246 0.532 -22.118 43.433 1.00 94.90 N +ATOM 1111 CA ASP A 246 0.093 -21.205 42.381 1.00 98.35 C +ATOM 1112 C ASP A 246 1.263 -20.561 41.654 1.00 99.34 C +ATOM 1113 O ASP A 246 2.141 -19.944 42.267 1.00 94.22 O +ATOM 1114 CB ASP A 246 -0.806 -20.118 42.946 1.00 97.86 C +ATOM 1115 CG ASP A 246 -2.228 -20.557 43.025 1.00102.53 C +ATOM 1116 OD1 ASP A 246 -2.881 -20.698 41.962 1.00101.46 O +ATOM 1117 OD2 ASP A 246 -2.685 -20.781 44.157 1.00113.21 O +ATOM 1118 N TYR A 247 1.244 -20.685 40.330 1.00 95.31 N +ATOM 1119 CA TYR A 247 2.156 -19.966 39.453 1.00 97.84 C +ATOM 1120 C TYR A 247 1.330 -19.353 38.332 1.00 98.97 C +ATOM 1121 O TYR A 247 0.789 -20.075 37.492 1.00 96.77 O +ATOM 1122 CB TYR A 247 3.238 -20.884 38.888 1.00 99.28 C +ATOM 1123 CG TYR A 247 4.153 -20.161 37.936 1.00100.03 C +ATOM 1124 CD1 TYR A 247 5.030 -19.184 38.400 1.00102.72 C +ATOM 1125 CD2 TYR A 247 4.119 -20.428 36.575 1.00 94.16 C +ATOM 1126 CE1 TYR A 247 5.862 -18.504 37.538 1.00104.98 C +ATOM 1127 CE2 TYR A 247 4.952 -19.756 35.698 1.00 97.50 C +ATOM 1128 CZ TYR A 247 5.820 -18.792 36.186 1.00106.03 C +ATOM 1129 OH TYR A 247 6.651 -18.108 35.326 1.00107.59 O +ATOM 1130 N ARG A 248 1.219 -18.032 38.327 1.00100.11 N +ATOM 1131 CA ARG A 248 0.631 -17.304 37.215 1.00 98.18 C +ATOM 1132 C ARG A 248 1.736 -16.553 36.490 1.00102.08 C +ATOM 1133 O ARG A 248 2.698 -16.092 37.112 1.00107.87 O +ATOM 1134 CB ARG A 248 -0.436 -16.326 37.696 1.00103.49 C +ATOM 1135 CG ARG A 248 -1.710 -16.989 38.170 1.00105.36 C +ATOM 1136 CD ARG A 248 -1.603 -17.447 39.611 1.00108.19 C +ATOM 1137 NE ARG A 248 -2.831 -18.102 40.050 1.00109.72 N +ATOM 1138 CZ ARG A 248 -3.966 -17.456 40.305 1.00117.22 C +ATOM 1139 NH1 ARG A 248 -4.031 -16.137 40.167 1.00117.08 N +ATOM 1140 NH2 ARG A 248 -5.038 -18.127 40.698 1.00124.25 N +ATOM 1141 N GLN A 249 1.608 -16.452 35.166 1.00100.68 N +ATOM 1142 CA GLN A 249 2.605 -15.730 34.385 1.00102.63 C +ATOM 1143 C GLN A 249 2.051 -15.351 33.019 1.00 99.65 C +ATOM 1144 O GLN A 249 1.375 -16.150 32.367 1.00 94.95 O +ATOM 1145 CB GLN A 249 3.888 -16.545 34.196 1.00102.52 C +ATOM 1146 CG GLN A 249 5.045 -15.721 33.649 1.00105.48 C +ATOM 1147 CD GLN A 249 6.074 -16.561 32.942 1.00107.98 C +ATOM 1148 OE1 GLN A 249 5.733 -17.373 32.079 1.00104.89 O +ATOM 1149 NE2 GLN A 249 7.344 -16.378 33.301 1.00109.84 N +ATOM 1150 N ILE A 250 2.379 -14.137 32.587 1.00101.54 N +ATOM 1151 CA ILE A 250 2.082 -13.640 31.253 1.00 95.59 C +ATOM 1152 C ILE A 250 3.407 -13.341 30.579 1.00 96.13 C +ATOM 1153 O ILE A 250 4.410 -13.075 31.249 1.00102.28 O +ATOM 1154 CB ILE A 250 1.213 -12.372 31.311 1.00 97.14 C +ATOM 1155 CG1 ILE A 250 -0.125 -12.694 31.970 1.00 96.51 C +ATOM 1156 CG2 ILE A 250 1.041 -11.795 29.907 1.00 99.21 C +ATOM 1157 CD1 ILE A 250 -0.751 -11.501 32.679 1.00100.40 C +ATOM 1158 N THR A 251 3.417 -13.376 29.253 1.00 93.45 N +ATOM 1159 CA THR A 251 4.601 -12.927 28.536 1.00 98.35 C +ATOM 1160 C THR A 251 4.200 -12.366 27.189 1.00100.29 C +ATOM 1161 O THR A 251 3.394 -12.969 26.477 1.00100.32 O +ATOM 1162 CB THR A 251 5.625 -14.049 28.337 1.00100.47 C +ATOM 1163 OG1 THR A 251 6.193 -14.410 29.604 1.00107.35 O +ATOM 1164 CG2 THR A 251 6.731 -13.583 27.405 1.00100.08 C +ATOM 1165 N GLY A 252 4.757 -11.209 26.862 1.00102.52 N +ATOM 1166 CA GLY A 252 4.699 -10.658 25.520 1.00 98.77 C +ATOM 1167 C GLY A 252 6.098 -10.695 24.930 1.00 99.56 C +ATOM 1168 O GLY A 252 7.084 -10.505 25.650 1.00103.98 O +ATOM 1169 N SER A 253 6.179 -10.973 23.634 1.00 96.19 N +ATOM 1170 CA SER A 253 7.451 -10.930 22.929 1.00 99.21 C +ATOM 1171 C SER A 253 7.245 -10.250 21.588 1.00100.04 C +ATOM 1172 O SER A 253 6.167 -10.333 20.996 1.00100.79 O +ATOM 1173 CB SER A 253 8.057 -12.324 22.735 1.00 98.51 C +ATOM 1174 OG SER A 253 8.502 -12.844 23.975 1.00 99.55 O +ATOM 1175 N ILE A 254 8.290 -9.570 21.116 1.00 98.83 N +ATOM 1176 CA ILE A 254 8.215 -8.807 19.877 1.00 98.30 C +ATOM 1177 C ILE A 254 9.612 -8.726 19.272 1.00 98.96 C +ATOM 1178 O ILE A 254 10.615 -8.683 19.991 1.00 97.87 O +ATOM 1179 CB ILE A 254 7.629 -7.401 20.147 1.00104.83 C +ATOM 1180 CG1 ILE A 254 6.883 -6.860 18.924 1.00107.69 C +ATOM 1181 CG2 ILE A 254 8.719 -6.456 20.589 1.00106.67 C +ATOM 1182 CD1 ILE A 254 5.567 -7.546 18.642 1.00112.82 C +ATOM 1183 N GLY A 255 9.678 -8.696 17.943 1.00102.89 N +ATOM 1184 CA GLY A 255 10.971 -8.602 17.282 1.00103.88 C +ATOM 1185 C GLY A 255 10.861 -8.346 15.795 1.00 99.59 C +ATOM 1186 O GLY A 255 9.771 -8.125 15.262 1.00 98.70 O +ATOM 1187 N ASN A 256 12.014 -8.399 15.128 1.00101.20 N +ATOM 1188 CA ASN A 256 12.081 -8.165 13.694 1.00 96.33 C +ATOM 1189 C ASN A 256 11.295 -9.220 12.914 1.00 97.92 C +ATOM 1190 O ASN A 256 10.767 -10.193 13.462 1.00 98.21 O +ATOM 1191 CB ASN A 256 13.533 -8.140 13.219 1.00 92.86 C +ATOM 1192 CG ASN A 256 14.291 -9.376 13.633 1.00 95.83 C +ATOM 1193 OD1 ASN A 256 13.743 -10.261 14.300 1.00 99.35 O +ATOM 1194 ND2 ASN A 256 15.522 -9.490 13.167 1.00 96.33 N +ATOM 1195 N MET A 257 11.202 -8.988 11.606 1.00 97.22 N +ATOM 1196 CA MET A 257 10.347 -9.773 10.722 1.00 99.19 C +ATOM 1197 C MET A 257 8.923 -9.888 11.274 1.00 99.12 C +ATOM 1198 O MET A 257 8.223 -10.875 11.029 1.00102.65 O +ATOM 1199 CB MET A 257 10.965 -11.144 10.444 1.00 96.50 C +ATOM 1200 CG MET A 257 12.405 -11.012 9.987 1.00 97.42 C +ATOM 1201 SD MET A 257 13.221 -12.590 9.807 1.00101.74 S +ATOM 1202 CE MET A 257 13.378 -12.997 11.546 1.00 95.21 C +ATOM 1203 N GLY A 258 8.466 -8.853 11.986 1.00 96.45 N +ATOM 1204 CA GLY A 258 7.093 -8.770 12.442 1.00 96.02 C +ATOM 1205 C GLY A 258 6.710 -9.890 13.384 1.00 97.95 C +ATOM 1206 O GLY A 258 5.614 -10.452 13.285 1.00 97.75 O +ATOM 1207 N GLN A 259 7.609 -10.207 14.315 1.00 99.66 N +ATOM 1208 CA GLN A 259 7.442 -11.330 15.230 1.00 97.88 C +ATOM 1209 C GLN A 259 6.581 -10.901 16.413 1.00100.68 C +ATOM 1210 O GLN A 259 7.007 -10.083 17.237 1.00103.50 O +ATOM 1211 CB GLN A 259 8.814 -11.818 15.682 1.00 98.73 C +ATOM 1212 CG GLN A 259 9.451 -12.859 14.762 1.00 98.69 C +ATOM 1213 CD GLN A 259 10.863 -13.231 15.192 1.00 97.85 C +ATOM 1214 OE1 GLN A 259 11.757 -12.381 15.238 1.00 95.83 O +ATOM 1215 NE2 GLN A 259 11.057 -14.495 15.550 1.00 92.84 N +ATOM 1216 N LYS A 260 5.368 -11.451 16.499 1.00100.20 N +ATOM 1217 CA LYS A 260 4.458 -11.177 17.605 1.00101.36 C +ATOM 1218 C LYS A 260 4.262 -12.456 18.396 1.00 98.72 C +ATOM 1219 O LYS A 260 4.065 -13.538 17.819 1.00 96.59 O +ATOM 1220 CB LYS A 260 3.090 -10.631 17.139 1.00105.44 C +ATOM 1221 CG LYS A 260 2.013 -10.504 18.245 1.00104.00 C +ATOM 1222 CD LYS A 260 2.150 -9.190 19.017 1.00106.33 C +ATOM 1223 CE LYS A 260 1.303 -9.175 20.277 1.00106.69 C +ATOM 1224 NZ LYS A 260 -0.046 -8.648 19.978 1.00104.05 N +ATOM 1225 N GLU A 261 4.365 -12.329 19.714 1.00 99.95 N +ATOM 1226 CA GLU A 261 4.221 -13.475 20.591 1.00 97.36 C +ATOM 1227 C GLU A 261 3.481 -13.066 21.851 1.00 95.89 C +ATOM 1228 O GLU A 261 3.515 -11.912 22.275 1.00 99.29 O +ATOM 1229 CB GLU A 261 5.570 -14.106 20.920 1.00 96.31 C +ATOM 1230 CG GLU A 261 6.148 -14.882 19.739 1.00 95.80 C +ATOM 1231 CD GLU A 261 7.661 -14.789 19.659 1.00 97.99 C +ATOM 1232 OE1 GLU A 261 8.206 -13.765 20.129 1.00103.20 O +ATOM 1233 OE2 GLU A 261 8.301 -15.731 19.135 1.00 90.51 O +ATOM 1234 N MET A 262 2.716 -14.024 22.359 1.00 94.55 N +ATOM 1235 CA MET A 262 1.538 -13.755 23.178 1.00 98.68 C +ATOM 1236 C MET A 262 1.156 -15.003 23.968 1.00 96.95 C +ATOM 1237 O MET A 262 0.344 -15.805 23.501 1.00 95.52 O +ATOM 1238 CB MET A 262 0.389 -13.278 22.315 1.00103.08 C +ATOM 1239 CG MET A 262 -0.928 -13.157 23.065 1.00108.05 C +ATOM 1240 SD MET A 262 -1.099 -12.168 24.544 1.00120.60 S +ATOM 1241 CE MET A 262 -2.434 -13.064 25.351 1.00110.97 C +ATOM 1242 N GLY A 263 1.603 -15.083 25.218 1.00 96.63 N +ATOM 1243 CA GLY A 263 1.425 -16.305 25.974 1.00 91.09 C +ATOM 1244 C GLY A 263 1.206 -16.110 27.462 1.00 90.80 C +ATOM 1245 O GLY A 263 1.430 -15.033 28.028 1.00 95.31 O +ATOM 1246 N PHE A 264 0.796 -17.207 28.101 1.00 86.19 N +ATOM 1247 CA PHE A 264 0.509 -17.235 29.530 1.00 88.49 C +ATOM 1248 C PHE A 264 0.622 -18.664 30.047 1.00 87.23 C +ATOM 1249 O PHE A 264 0.242 -19.610 29.353 1.00 83.85 O +ATOM 1250 CB PHE A 264 -0.897 -16.736 29.799 1.00 89.50 C +ATOM 1251 CG PHE A 264 -1.928 -17.750 29.464 1.00 88.08 C +ATOM 1252 CD1 PHE A 264 -2.427 -18.593 30.442 1.00 92.03 C +ATOM 1253 CD2 PHE A 264 -2.355 -17.911 28.161 1.00 88.51 C +ATOM 1254 CE1 PHE A 264 -3.370 -19.561 30.132 1.00 87.85 C +ATOM 1255 CE2 PHE A 264 -3.300 -18.871 27.845 1.00 87.14 C +ATOM 1256 CZ PHE A 264 -3.808 -19.697 28.836 1.00 85.78 C +ATOM 1257 N ASP A 265 1.094 -18.809 31.289 1.00 91.38 N +ATOM 1258 CA ASP A 265 1.245 -20.110 31.943 1.00 88.62 C +ATOM 1259 C ASP A 265 0.614 -20.015 33.325 1.00 90.15 C +ATOM 1260 O ASP A 265 1.064 -19.224 34.163 1.00 94.56 O +ATOM 1261 CB ASP A 265 2.731 -20.515 32.036 1.00 86.46 C +ATOM 1262 CG ASP A 265 2.948 -21.960 32.550 1.00 82.91 C +ATOM 1263 OD1 ASP A 265 4.121 -22.344 32.798 1.00 81.24 O +ATOM 1264 OD2 ASP A 265 1.963 -22.719 32.695 1.00 81.43 O +ATOM 1265 N PHE A 266 -0.423 -20.814 33.567 1.00 86.99 N +ATOM 1266 CA PHE A 266 -1.162 -20.765 34.825 1.00 90.98 C +ATOM 1267 C PHE A 266 -1.170 -22.159 35.434 1.00 88.31 C +ATOM 1268 O PHE A 266 -1.433 -23.144 34.734 1.00 84.88 O +ATOM 1269 CB PHE A 266 -2.592 -20.245 34.609 1.00 92.32 C +ATOM 1270 CG PHE A 266 -2.685 -18.735 34.484 1.00 98.16 C +ATOM 1271 CD1 PHE A 266 -3.722 -18.028 35.080 1.00104.54 C +ATOM 1272 CD2 PHE A 266 -1.723 -18.026 33.773 1.00 99.66 C +ATOM 1273 CE1 PHE A 266 -3.801 -16.649 34.953 1.00110.16 C +ATOM 1274 CE2 PHE A 266 -1.790 -16.650 33.651 1.00101.09 C +ATOM 1275 CZ PHE A 266 -2.828 -15.962 34.238 1.00108.47 C +ATOM 1276 N SER A 267 -0.849 -22.248 36.721 1.00 90.42 N +ATOM 1277 CA SER A 267 -0.831 -23.528 37.410 1.00 88.78 C +ATOM 1278 C SER A 267 -1.055 -23.307 38.897 1.00 92.06 C +ATOM 1279 O SER A 267 -0.570 -22.327 39.476 1.00 95.52 O +ATOM 1280 CB SER A 267 0.495 -24.273 37.179 1.00 91.01 C +ATOM 1281 OG SER A 267 0.436 -25.622 37.630 1.00 87.24 O +ATOM 1282 N GLY A 268 -1.794 -24.226 39.504 1.00 90.58 N +ATOM 1283 CA GLY A 268 -1.906 -24.280 40.936 1.00 94.69 C +ATOM 1284 C GLY A 268 -2.774 -25.435 41.386 1.00 96.14 C +ATOM 1285 O GLY A 268 -3.445 -26.098 40.588 1.00 92.35 O +ATOM 1286 N PRO A 269 -2.766 -25.704 42.685 1.00 97.91 N +ATOM 1287 CA PRO A 269 -3.693 -26.694 43.241 1.00 96.12 C +ATOM 1288 C PRO A 269 -5.130 -26.203 43.199 1.00 97.77 C +ATOM 1289 O PRO A 269 -5.406 -25.005 43.108 1.00 99.25 O +ATOM 1290 CB PRO A 269 -3.209 -26.864 44.678 1.00 96.97 C +ATOM 1291 CG PRO A 269 -2.449 -25.591 44.972 1.00 98.68 C +ATOM 1292 CD PRO A 269 -1.841 -25.156 43.690 1.00 94.15 C +ATOM 1293 N LEU A 270 -6.059 -27.162 43.261 1.00 98.54 N +ATOM 1294 CA LEU A 270 -7.483 -26.862 43.237 1.00 97.86 C +ATOM 1295 C LEU A 270 -8.234 -27.340 44.470 1.00107.76 C +ATOM 1296 O LEU A 270 -9.376 -26.907 44.681 1.00110.24 O +ATOM 1297 CB LEU A 270 -8.154 -27.476 41.996 1.00 92.39 C +ATOM 1298 CG LEU A 270 -7.806 -26.914 40.621 1.00 91.40 C +ATOM 1299 CD1 LEU A 270 -8.187 -27.932 39.579 1.00 84.72 C +ATOM 1300 CD2 LEU A 270 -8.508 -25.592 40.366 1.00 89.81 C +ATOM 1301 N ASP A 271 -7.640 -28.205 45.289 1.00108.06 N +ATOM 1302 CA ASP A 271 -8.336 -28.778 46.430 1.00114.87 C +ATOM 1303 C ASP A 271 -7.646 -28.368 47.731 1.00120.59 C +ATOM 1304 O ASP A 271 -6.541 -27.818 47.732 1.00117.49 O +ATOM 1305 CB ASP A 271 -8.417 -30.303 46.302 1.00112.47 C +ATOM 1306 CG ASP A 271 -9.391 -30.919 47.294 1.00123.36 C +ATOM 1307 OD1 ASP A 271 -10.619 -30.901 47.018 1.00117.91 O +ATOM 1308 OD2 ASP A 271 -8.929 -31.420 48.347 1.00128.65 O +ATOM 1309 N GLU A 272 -8.325 -28.665 48.849 1.00121.87 N +ATOM 1310 CA GLU A 272 -7.825 -28.290 50.170 1.00122.26 C +ATOM 1311 C GLU A 272 -6.545 -29.036 50.497 1.00121.29 C +ATOM 1312 O GLU A 272 -5.569 -28.430 50.943 1.00119.14 O +ATOM 1313 CB GLU A 272 -8.885 -28.578 51.240 1.00127.34 C +ATOM 1314 CG GLU A 272 -10.233 -27.899 50.990 1.00130.61 C +ATOM 1315 CD GLU A 272 -11.119 -28.704 50.028 1.00130.85 C +ATOM 1316 OE1 GLU A 272 -10.779 -29.876 49.751 1.00129.57 O +ATOM 1317 OE2 GLU A 272 -12.141 -28.169 49.532 1.00131.72 O +ATOM 1318 N GLU A 273 -6.519 -30.344 50.262 1.00120.98 N +ATOM 1319 CA GLU A 273 -5.327 -31.135 50.524 1.00117.89 C +ATOM 1320 C GLU A 273 -4.349 -31.165 49.359 1.00117.07 C +ATOM 1321 O GLU A 273 -3.493 -32.047 49.315 1.00117.70 O +ATOM 1322 CB GLU A 273 -5.687 -32.560 50.941 1.00118.25 C +ATOM 1323 CG GLU A 273 -6.282 -32.623 52.309 1.00127.00 C +ATOM 1324 CD GLU A 273 -5.294 -32.125 53.340 1.00131.58 C +ATOM 1325 OE1 GLU A 273 -4.077 -32.296 53.105 1.00137.08 O +ATOM 1326 OE2 GLU A 273 -5.724 -31.540 54.363 1.00135.05 O +ATOM 1327 N LYS A 274 -4.437 -30.236 48.416 1.00117.06 N +ATOM 1328 CA LYS A 274 -3.422 -30.114 47.374 1.00108.27 C +ATOM 1329 C LYS A 274 -3.334 -31.359 46.502 1.00108.15 C +ATOM 1330 O LYS A 274 -2.417 -31.464 45.677 1.00106.39 O +ATOM 1331 CB LYS A 274 -2.026 -29.850 47.960 1.00100.15 C +ATOM 1332 CG LYS A 274 -1.847 -28.527 48.689 1.00106.65 C +ATOM 1333 CD LYS A 274 -2.582 -28.548 50.037 1.00115.69 C +ATOM 1334 CE LYS A 274 -2.541 -27.195 50.763 1.00120.06 C +ATOM 1335 NZ LYS A 274 -3.477 -27.152 51.927 1.00115.99 N +ATOM 1336 N ARG A 275 -4.235 -32.331 46.674 1.00104.79 N +ATOM 1337 CA ARG A 275 -4.107 -33.600 45.962 1.00 97.32 C +ATOM 1338 C ARG A 275 -4.569 -33.523 44.516 1.00 89.24 C +ATOM 1339 O ARG A 275 -4.472 -34.522 43.796 1.00 83.83 O +ATOM 1340 CB ARG A 275 -4.869 -34.697 46.710 1.00100.83 C +ATOM 1341 CG ARG A 275 -3.973 -35.528 47.606 1.00101.45 C +ATOM 1342 CD ARG A 275 -4.727 -36.563 48.438 1.00101.64 C +ATOM 1343 NE ARG A 275 -3.796 -37.552 48.980 1.00106.98 N +ATOM 1344 CZ ARG A 275 -4.026 -38.318 50.046 1.00110.00 C +ATOM 1345 NH1 ARG A 275 -5.167 -38.214 50.713 1.00113.95 N +ATOM 1346 NH2 ARG A 275 -3.099 -39.183 50.458 1.00106.57 N +ATOM 1347 N ILE A 276 -5.035 -32.356 44.074 1.00 91.22 N +ATOM 1348 CA ILE A 276 -5.491 -32.143 42.704 1.00 89.44 C +ATOM 1349 C ILE A 276 -4.848 -30.867 42.191 1.00 90.46 C +ATOM 1350 O ILE A 276 -4.973 -29.811 42.821 1.00 91.73 O +ATOM 1351 CB ILE A 276 -7.016 -32.005 42.590 1.00 90.42 C +ATOM 1352 CG1 ILE A 276 -7.708 -33.321 42.922 1.00 86.30 C +ATOM 1353 CG2 ILE A 276 -7.355 -31.572 41.172 1.00 85.24 C +ATOM 1354 CD1 ILE A 276 -9.089 -33.154 43.484 1.00 89.61 C +ATOM 1355 N ALA A 277 -4.194 -30.943 41.045 1.00 87.81 N +ATOM 1356 CA ALA A 277 -3.512 -29.780 40.515 1.00 85.81 C +ATOM 1357 C ALA A 277 -3.766 -29.674 39.026 1.00 81.20 C +ATOM 1358 O ALA A 277 -3.926 -30.683 38.334 1.00 81.93 O +ATOM 1359 CB ALA A 277 -2.011 -29.844 40.799 1.00 84.83 C +ATOM 1360 N TYR A 278 -3.787 -28.437 38.542 1.00 81.67 N +ATOM 1361 CA TYR A 278 -3.993 -28.127 37.136 1.00 78.60 C +ATOM 1362 C TYR A 278 -2.762 -27.423 36.587 1.00 80.03 C +ATOM 1363 O TYR A 278 -1.809 -27.128 37.310 1.00 85.08 O +ATOM 1364 CB TYR A 278 -5.241 -27.250 36.937 1.00 81.67 C +ATOM 1365 CG TYR A 278 -5.060 -25.766 37.239 1.00 86.31 C +ATOM 1366 CD1 TYR A 278 -5.158 -25.280 38.535 1.00 93.04 C +ATOM 1367 CD2 TYR A 278 -4.830 -24.849 36.219 1.00 83.50 C +ATOM 1368 CE1 TYR A 278 -4.999 -23.926 38.811 1.00 94.87 C +ATOM 1369 CE2 TYR A 278 -4.677 -23.490 36.487 1.00 81.86 C +ATOM 1370 CZ TYR A 278 -4.761 -23.042 37.781 1.00 90.21 C +ATOM 1371 OH TYR A 278 -4.608 -21.706 38.063 1.00102.01 O +ATOM 1372 N ARG A 279 -2.779 -27.187 35.278 1.00 78.55 N +ATOM 1373 CA ARG A 279 -1.816 -26.310 34.616 1.00 78.69 C +ATOM 1374 C ARG A 279 -2.333 -25.995 33.217 1.00 75.00 C +ATOM 1375 O ARG A 279 -2.623 -26.920 32.452 1.00 77.10 O +ATOM 1376 CB ARG A 279 -0.426 -26.950 34.549 1.00 79.79 C +ATOM 1377 CG ARG A 279 0.634 -26.079 33.864 1.00 77.17 C +ATOM 1378 CD ARG A 279 2.044 -26.421 34.355 1.00 77.60 C +ATOM 1379 NE ARG A 279 2.994 -25.347 34.087 1.00 77.37 N +ATOM 1380 CZ ARG A 279 4.247 -25.325 34.530 1.00 76.76 C +ATOM 1381 NH1 ARG A 279 4.725 -26.321 35.265 1.00 74.92 N +ATOM 1382 NH2 ARG A 279 5.028 -24.298 34.238 1.00 79.03 N +ATOM 1383 N LEU A 280 -2.479 -24.710 32.868 1.00 76.46 N +ATOM 1384 CA LEU A 280 -3.011 -24.308 31.565 1.00 72.40 C +ATOM 1385 C LEU A 280 -2.107 -23.307 30.865 1.00 75.87 C +ATOM 1386 O LEU A 280 -1.648 -22.334 31.473 1.00 80.68 O +ATOM 1387 CB LEU A 280 -4.397 -23.709 31.696 1.00 74.44 C +ATOM 1388 CG LEU A 280 -5.250 -23.888 30.446 1.00 76.69 C +ATOM 1389 CD1 LEU A 280 -5.341 -25.358 30.063 1.00 73.75 C +ATOM 1390 CD2 LEU A 280 -6.639 -23.324 30.735 1.00 74.25 C +ATOM 1391 N ILE A 281 -1.907 -23.524 29.567 1.00 74.84 N +ATOM 1392 CA ILE A 281 -0.858 -22.843 28.816 1.00 78.31 C +ATOM 1393 C ILE A 281 -1.299 -22.604 27.376 1.00 77.81 C +ATOM 1394 O ILE A 281 -1.490 -23.560 26.611 1.00 76.55 O +ATOM 1395 CB ILE A 281 0.450 -23.665 28.854 1.00 70.17 C +ATOM 1396 CG1 ILE A 281 0.963 -23.806 30.274 1.00 73.61 C +ATOM 1397 CG2 ILE A 281 1.524 -23.021 28.046 1.00 72.16 C +ATOM 1398 CD1 ILE A 281 2.127 -24.742 30.387 1.00 79.11 C +ATOM 1399 N GLY A 282 -1.415 -21.329 26.983 1.00 76.84 N +ATOM 1400 CA GLY A 282 -1.724 -20.988 25.606 1.00 76.45 C +ATOM 1401 C GLY A 282 -0.792 -19.904 25.095 1.00 78.97 C +ATOM 1402 O GLY A 282 -0.206 -19.141 25.873 1.00 81.88 O +ATOM 1403 N LEU A 283 -0.654 -19.845 23.766 1.00 76.73 N +ATOM 1404 CA LEU A 283 0.169 -18.792 23.187 1.00 79.87 C +ATOM 1405 C LEU A 283 -0.318 -18.492 21.777 1.00 80.52 C +ATOM 1406 O LEU A 283 -0.857 -19.370 21.094 1.00 77.46 O +ATOM 1407 CB LEU A 283 1.641 -19.201 23.155 1.00 79.38 C +ATOM 1408 CG LEU A 283 1.955 -20.313 22.159 1.00 74.78 C +ATOM 1409 CD1 LEU A 283 2.319 -19.679 20.811 1.00 78.97 C +ATOM 1410 CD2 LEU A 283 3.035 -21.263 22.648 1.00 74.72 C +ATOM 1411 N GLY A 284 -0.105 -17.255 21.345 1.00 85.58 N +ATOM 1412 CA GLY A 284 -0.322 -16.855 19.960 1.00 81.69 C +ATOM 1413 C GLY A 284 0.959 -16.324 19.376 1.00 83.56 C +ATOM 1414 O GLY A 284 1.692 -15.573 20.030 1.00 89.52 O +ATOM 1415 N LYS A 285 1.254 -16.717 18.136 1.00 81.85 N +ATOM 1416 CA LYS A 285 2.500 -16.352 17.485 1.00 84.99 C +ATOM 1417 C LYS A 285 2.263 -15.967 16.035 1.00 86.29 C +ATOM 1418 O LYS A 285 1.511 -16.637 15.322 1.00 88.13 O +ATOM 1419 CB LYS A 285 3.500 -17.497 17.508 1.00 85.99 C +ATOM 1420 CG LYS A 285 4.100 -17.770 18.851 1.00 85.54 C +ATOM 1421 CD LYS A 285 5.342 -18.627 18.684 1.00 81.58 C +ATOM 1422 CE LYS A 285 6.040 -18.262 17.372 1.00 91.17 C +ATOM 1423 NZ LYS A 285 6.652 -16.888 17.329 1.00 96.04 N +ATOM 1424 N GLY A 286 2.948 -14.912 15.603 1.00 86.61 N +ATOM 1425 CA GLY A 286 2.947 -14.519 14.211 1.00 95.26 C +ATOM 1426 C GLY A 286 4.359 -14.143 13.808 1.00 91.05 C +ATOM 1427 O GLY A 286 5.233 -13.968 14.656 1.00 89.27 O +ATOM 1428 N SER A 287 4.578 -14.066 12.500 1.00 92.18 N +ATOM 1429 CA SER A 287 5.903 -13.704 12.017 1.00 93.82 C +ATOM 1430 C SER A 287 5.889 -13.617 10.501 1.00 97.58 C +ATOM 1431 O SER A 287 5.258 -14.443 9.833 1.00 99.36 O +ATOM 1432 CB SER A 287 6.957 -14.729 12.459 1.00 92.51 C +ATOM 1433 OG SER A 287 8.281 -14.250 12.269 1.00 93.20 O +ATOM 1434 N ASP A 288 6.573 -12.608 9.969 1.00 99.25 N +ATOM 1435 CA ASP A 288 7.051 -12.713 8.606 1.00 97.94 C +ATOM 1436 C ASP A 288 8.437 -13.336 8.705 1.00 98.38 C +ATOM 1437 O ASP A 288 9.077 -13.300 9.756 1.00 99.30 O +ATOM 1438 CB ASP A 288 7.148 -11.348 7.935 1.00 97.21 C +ATOM 1439 CG ASP A 288 5.868 -10.536 8.073 1.00102.90 C +ATOM 1440 OD1 ASP A 288 4.780 -11.122 8.368 1.00104.00 O +ATOM 1441 OD2 ASP A 288 5.945 -9.321 7.808 1.00110.32 O +ATOM 1442 N THR A 289 8.914 -13.921 7.630 1.00 96.68 N +ATOM 1443 CA THR A 289 10.262 -14.443 7.744 1.00 94.92 C +ATOM 1444 C THR A 289 11.231 -13.440 7.149 1.00 94.93 C +ATOM 1445 O THR A 289 10.852 -12.355 6.699 1.00 95.65 O +ATOM 1446 CB THR A 289 10.399 -15.797 7.056 1.00 92.83 C +ATOM 1447 OG1 THR A 289 10.226 -15.617 5.645 1.00 97.52 O +ATOM 1448 CG2 THR A 289 9.354 -16.760 7.600 1.00 89.34 C +ATOM 1449 N GLN A 290 12.504 -13.814 7.156 1.00 93.16 N +ATOM 1450 CA GLN A 290 13.409 -13.131 6.259 1.00 95.61 C +ATOM 1451 C GLN A 290 12.968 -13.312 4.814 1.00 95.87 C +ATOM 1452 O GLN A 290 13.379 -12.535 3.948 1.00 99.37 O +ATOM 1453 CB GLN A 290 14.823 -13.642 6.469 1.00 96.90 C +ATOM 1454 CG GLN A 290 15.028 -15.065 6.055 1.00 92.50 C +ATOM 1455 CD GLN A 290 16.386 -15.556 6.471 1.00 93.04 C +ATOM 1456 OE1 GLN A 290 16.741 -15.492 7.647 1.00 93.33 O +ATOM 1457 NE2 GLN A 290 17.179 -16.003 5.502 1.00 92.44 N +ATOM 1458 N PHE A 291 12.139 -14.319 4.538 1.00 93.95 N +ATOM 1459 CA PHE A 291 11.643 -14.564 3.188 1.00 97.29 C +ATOM 1460 C PHE A 291 10.433 -13.686 2.882 1.00 98.37 C +ATOM 1461 O PHE A 291 9.552 -13.501 3.729 1.00 96.23 O +ATOM 1462 CB PHE A 291 11.276 -16.043 3.011 1.00 92.72 C +ATOM 1463 CG PHE A 291 12.460 -16.960 3.032 1.00 88.44 C +ATOM 1464 CD1 PHE A 291 12.941 -17.451 4.219 1.00 88.54 C +ATOM 1465 CD2 PHE A 291 13.101 -17.315 1.863 1.00 90.05 C +ATOM 1466 CE1 PHE A 291 14.035 -18.278 4.237 1.00 90.61 C +ATOM 1467 CE2 PHE A 291 14.197 -18.145 1.876 1.00 86.87 C +ATOM 1468 CZ PHE A 291 14.664 -18.625 3.061 1.00 87.35 C +ATOM 1469 N ASP A 292 10.391 -13.162 1.654 1.00100.18 N +ATOM 1470 CA ASP A 292 9.303 -12.284 1.235 1.00101.39 C +ATOM 1471 C ASP A 292 7.996 -13.041 1.059 1.00100.49 C +ATOM 1472 O ASP A 292 7.970 -14.165 0.555 1.00101.31 O +ATOM 1473 CB ASP A 292 9.638 -11.592 -0.080 1.00 99.49 C +ATOM 1474 CG ASP A 292 10.848 -10.717 0.022 1.00101.83 C +ATOM 1475 OD1 ASP A 292 11.281 -10.427 1.157 1.00104.53 O +ATOM 1476 OD2 ASP A 292 11.352 -10.300 -1.035 1.00102.34 O +ATOM 1477 N HIS A 293 6.901 -12.394 1.450 1.00 98.88 N +ATOM 1478 CA HIS A 293 5.543 -12.842 1.183 1.00102.65 C +ATOM 1479 C HIS A 293 5.110 -14.034 2.012 1.00101.37 C +ATOM 1480 O HIS A 293 4.058 -14.613 1.716 1.00103.87 O +ATOM 1481 CB HIS A 293 5.337 -13.223 -0.282 1.00107.14 C +ATOM 1482 CG HIS A 293 5.445 -12.074 -1.222 1.00108.69 C +ATOM 1483 ND1 HIS A 293 6.631 -11.412 -1.449 1.00112.85 N +ATOM 1484 CD2 HIS A 293 4.516 -11.465 -1.993 1.00102.97 C +ATOM 1485 CE1 HIS A 293 6.428 -10.445 -2.325 1.00107.69 C +ATOM 1486 NE2 HIS A 293 5.154 -10.456 -2.669 1.00105.74 N +ATOM 1487 N VAL A 294 5.874 -14.447 3.019 1.00 99.83 N +ATOM 1488 CA VAL A 294 5.488 -15.612 3.808 1.00 99.29 C +ATOM 1489 C VAL A 294 5.097 -15.115 5.188 1.00 97.11 C +ATOM 1490 O VAL A 294 5.609 -14.101 5.682 1.00 97.61 O +ATOM 1491 CB VAL A 294 6.580 -16.696 3.974 1.00 95.59 C +ATOM 1492 CG1 VAL A 294 7.081 -17.230 2.632 1.00 95.59 C +ATOM 1493 CG2 VAL A 294 7.703 -16.206 4.864 1.00 94.11 C +ATOM 1494 N LYS A 295 4.197 -15.854 5.824 1.00 94.63 N +ATOM 1495 CA LYS A 295 3.767 -15.578 7.188 1.00 93.66 C +ATOM 1496 C LYS A 295 3.891 -16.861 7.993 1.00 89.08 C +ATOM 1497 O LYS A 295 3.911 -17.964 7.440 1.00 89.39 O +ATOM 1498 CB LYS A 295 2.303 -15.067 7.266 1.00 94.88 C +ATOM 1499 CG LYS A 295 2.058 -13.572 6.945 1.00 95.79 C +ATOM 1500 CD LYS A 295 2.393 -12.585 8.083 1.00100.59 C +ATOM 1501 CE LYS A 295 1.502 -12.724 9.334 1.00101.31 C +ATOM 1502 NZ LYS A 295 2.078 -12.072 10.578 1.00 96.94 N +ATOM 1503 N GLU A 296 4.003 -16.700 9.307 1.00 87.73 N +ATOM 1504 CA GLU A 296 3.954 -17.815 10.242 1.00 84.93 C +ATOM 1505 C GLU A 296 3.006 -17.422 11.362 1.00 84.31 C +ATOM 1506 O GLU A 296 3.248 -16.417 12.042 1.00 84.39 O +ATOM 1507 CB GLU A 296 5.341 -18.163 10.803 1.00 86.65 C +ATOM 1508 CG GLU A 296 6.317 -18.874 9.858 1.00 88.38 C +ATOM 1509 CD GLU A 296 7.674 -19.165 10.537 1.00 93.63 C +ATOM 1510 OE1 GLU A 296 7.907 -18.661 11.661 1.00 94.85 O +ATOM 1511 OE2 GLU A 296 8.497 -19.914 9.957 1.00 89.70 O +ATOM 1512 N GLU A 297 1.916 -18.186 11.526 1.00 84.58 N +ATOM 1513 CA GLU A 297 0.920 -17.938 12.561 1.00 83.26 C +ATOM 1514 C GLU A 297 0.705 -19.216 13.361 1.00 80.84 C +ATOM 1515 O GLU A 297 0.595 -20.310 12.790 1.00 79.22 O +ATOM 1516 CB GLU A 297 -0.421 -17.462 11.945 1.00 83.18 C +ATOM 1517 CG GLU A 297 -1.359 -16.687 12.888 1.00 87.06 C +ATOM 1518 CD GLU A 297 -2.655 -16.282 12.193 1.00 92.62 C +ATOM 1519 OE1 GLU A 297 -2.619 -16.040 10.969 1.00 97.90 O +ATOM 1520 OE2 GLU A 297 -3.698 -16.169 12.867 1.00 92.24 O +ATOM 1521 N ARG A 298 0.632 -19.086 14.681 1.00 78.56 N +ATOM 1522 CA ARG A 298 0.412 -20.264 15.501 1.00 76.33 C +ATOM 1523 C ARG A 298 -0.459 -19.888 16.687 1.00 75.81 C +ATOM 1524 O ARG A 298 -0.201 -18.882 17.353 1.00 73.89 O +ATOM 1525 CB ARG A 298 1.741 -20.852 15.970 1.00 77.83 C +ATOM 1526 CG ARG A 298 1.575 -22.022 16.909 1.00 73.44 C +ATOM 1527 CD ARG A 298 2.905 -22.666 17.241 1.00 70.32 C +ATOM 1528 NE ARG A 298 3.266 -23.766 16.352 1.00 70.36 N +ATOM 1529 CZ ARG A 298 4.456 -24.375 16.368 1.00 68.75 C +ATOM 1530 NH1 ARG A 298 5.395 -23.996 17.229 1.00 64.53 N +ATOM 1531 NH2 ARG A 298 4.718 -25.374 15.528 1.00 64.69 N +ATOM 1532 N TYR A 299 -1.490 -20.686 16.940 1.00 74.63 N +ATOM 1533 CA TYR A 299 -2.266 -20.575 18.168 1.00 76.46 C +ATOM 1534 C TYR A 299 -2.339 -21.955 18.805 1.00 74.80 C +ATOM 1535 O TYR A 299 -2.548 -22.953 18.104 1.00 72.68 O +ATOM 1536 CB TYR A 299 -3.666 -20.024 17.892 1.00 76.45 C +ATOM 1537 CG TYR A 299 -3.664 -18.707 17.150 1.00 76.78 C +ATOM 1538 CD1 TYR A 299 -3.376 -17.513 17.796 1.00 80.90 C +ATOM 1539 CD2 TYR A 299 -3.927 -18.664 15.800 1.00 78.60 C +ATOM 1540 CE1 TYR A 299 -3.379 -16.307 17.109 1.00 80.85 C +ATOM 1541 CE2 TYR A 299 -3.926 -17.480 15.116 1.00 81.20 C +ATOM 1542 CZ TYR A 299 -3.646 -16.300 15.767 1.00 82.41 C +ATOM 1543 OH TYR A 299 -3.647 -15.112 15.065 1.00 88.56 O +ATOM 1544 N ALA A 300 -2.130 -22.022 20.118 1.00 70.87 N +ATOM 1545 CA ALA A 300 -2.087 -23.300 20.808 1.00 67.99 C +ATOM 1546 C ALA A 300 -2.562 -23.143 22.249 1.00 68.85 C +ATOM 1547 O ALA A 300 -2.629 -22.036 22.786 1.00 72.24 O +ATOM 1548 CB ALA A 300 -0.677 -23.896 20.770 1.00 69.73 C +ATOM 1549 N ILE A 301 -2.904 -24.279 22.865 1.00 69.75 N +ATOM 1550 CA ILE A 301 -3.326 -24.362 24.262 1.00 68.47 C +ATOM 1551 C ILE A 301 -2.996 -25.744 24.805 1.00 70.61 C +ATOM 1552 O ILE A 301 -2.851 -26.713 24.057 1.00 72.75 O +ATOM 1553 CB ILE A 301 -4.832 -24.170 24.417 1.00 68.46 C +ATOM 1554 CG1 ILE A 301 -5.479 -25.302 23.628 1.00 64.58 C +ATOM 1555 CG2 ILE A 301 -5.255 -22.821 23.914 1.00 69.86 C +ATOM 1556 CD1 ILE A 301 -6.951 -25.456 23.870 1.00 73.07 C +ATOM 1557 N ALA A 302 -2.962 -25.855 26.129 1.00 69.39 N +ATOM 1558 CA ALA A 302 -2.731 -27.172 26.702 1.00 66.72 C +ATOM 1559 C ALA A 302 -3.270 -27.289 28.122 1.00 66.79 C +ATOM 1560 O ALA A 302 -2.674 -26.735 29.057 1.00 70.01 O +ATOM 1561 CB ALA A 302 -1.236 -27.481 26.674 1.00 67.44 C +ATOM 1562 N PRO A 303 -4.341 -28.052 28.346 1.00 64.88 N +ATOM 1563 CA PRO A 303 -4.728 -28.369 29.719 1.00 63.99 C +ATOM 1564 C PRO A 303 -4.003 -29.591 30.247 1.00 68.83 C +ATOM 1565 O PRO A 303 -3.734 -30.562 29.535 1.00 70.64 O +ATOM 1566 CB PRO A 303 -6.229 -28.646 29.612 1.00 65.19 C +ATOM 1567 CG PRO A 303 -6.437 -29.078 28.255 1.00 63.52 C +ATOM 1568 CD PRO A 303 -5.269 -28.663 27.388 1.00 68.01 C +ATOM 1569 N THR A 304 -3.698 -29.526 31.528 1.00 69.25 N +ATOM 1570 CA THR A 304 -3.019 -30.592 32.222 1.00 67.96 C +ATOM 1571 C THR A 304 -3.649 -30.724 33.595 1.00 70.16 C +ATOM 1572 O THR A 304 -3.993 -29.723 34.236 1.00 67.12 O +ATOM 1573 CB THR A 304 -1.562 -30.271 32.312 1.00 68.01 C +ATOM 1574 OG1 THR A 304 -1.091 -30.068 30.967 1.00 65.62 O +ATOM 1575 CG2 THR A 304 -0.808 -31.416 33.012 1.00 66.30 C +ATOM 1576 N LEU A 305 -3.837 -31.957 34.036 1.00 70.42 N +ATOM 1577 CA LEU A 305 -4.543 -32.191 35.281 1.00 66.79 C +ATOM 1578 C LEU A 305 -3.901 -33.336 36.030 1.00 71.95 C +ATOM 1579 O LEU A 305 -3.919 -34.477 35.556 1.00 72.37 O +ATOM 1580 CB LEU A 305 -6.008 -32.497 35.015 1.00 70.02 C +ATOM 1581 CG LEU A 305 -6.688 -32.880 36.327 1.00 82.67 C +ATOM 1582 CD1 LEU A 305 -8.107 -32.394 36.355 1.00 74.64 C +ATOM 1583 CD2 LEU A 305 -6.673 -34.398 36.484 1.00 81.60 C +ATOM 1584 N ALA A 306 -3.375 -33.040 37.208 1.00 75.06 N +ATOM 1585 CA ALA A 306 -2.768 -34.032 38.073 1.00 72.95 C +ATOM 1586 C ALA A 306 -3.729 -34.358 39.201 1.00 77.77 C +ATOM 1587 O ALA A 306 -4.386 -33.466 39.746 1.00 79.00 O +ATOM 1588 CB ALA A 306 -1.447 -33.534 38.651 1.00 74.68 C +ATOM 1589 N ILE A 307 -3.816 -35.639 39.533 1.00 76.32 N +ATOM 1590 CA ILE A 307 -4.728 -36.128 40.558 1.00 74.90 C +ATOM 1591 C ILE A 307 -4.041 -37.232 41.334 1.00 74.98 C +ATOM 1592 O ILE A 307 -3.473 -38.150 40.736 1.00 77.33 O +ATOM 1593 CB ILE A 307 -6.057 -36.637 39.971 1.00 76.99 C +ATOM 1594 CG1 ILE A 307 -6.916 -35.476 39.451 1.00 82.70 C +ATOM 1595 CG2 ILE A 307 -6.762 -37.506 40.970 1.00 77.61 C +ATOM 1596 CD1 ILE A 307 -8.200 -35.924 38.675 1.00 76.76 C +ATOM 1597 N ASP A 308 -4.093 -37.146 42.655 1.00 76.07 N +ATOM 1598 CA ASP A 308 -3.465 -38.155 43.498 1.00 82.95 C +ATOM 1599 C ASP A 308 -4.559 -38.885 44.285 1.00 86.22 C +ATOM 1600 O ASP A 308 -5.044 -38.370 45.299 1.00 90.59 O +ATOM 1601 CB ASP A 308 -2.466 -37.520 44.456 1.00 88.31 C +ATOM 1602 CG ASP A 308 -1.513 -36.574 43.739 1.00 90.43 C +ATOM 1603 OD1 ASP A 308 -1.465 -36.621 42.470 1.00 91.83 O +ATOM 1604 OD2 ASP A 308 -0.722 -35.907 44.451 1.00 93.29 O +ATOM 1605 N PHE A 309 -4.941 -40.085 43.819 1.00 83.08 N +ATOM 1606 CA PHE A 309 -5.963 -40.881 44.508 1.00 87.63 C +ATOM 1607 C PHE A 309 -5.547 -41.122 45.954 1.00 91.66 C +ATOM 1608 O PHE A 309 -6.303 -40.871 46.904 1.00 92.84 O +ATOM 1609 CB PHE A 309 -6.128 -42.254 43.825 1.00 86.13 C +ATOM 1610 CG PHE A 309 -6.666 -42.223 42.405 1.00 88.66 C +ATOM 1611 CD1 PHE A 309 -6.588 -43.371 41.621 1.00 91.03 C +ATOM 1612 CD2 PHE A 309 -7.235 -41.083 41.847 1.00 89.63 C +ATOM 1613 CE1 PHE A 309 -7.042 -43.392 40.308 1.00 86.68 C +ATOM 1614 CE2 PHE A 309 -7.701 -41.103 40.521 1.00 89.59 C +ATOM 1615 CZ PHE A 309 -7.603 -42.257 39.760 1.00 83.13 C +ATOM 1616 N SER A 310 -4.328 -41.630 46.111 1.00 92.27 N +ATOM 1617 CA SER A 310 -3.610 -41.871 47.347 1.00 92.66 C +ATOM 1618 C SER A 310 -2.161 -41.494 47.077 1.00 91.51 C +ATOM 1619 O SER A 310 -1.814 -41.087 45.966 1.00 91.77 O +ATOM 1620 CB SER A 310 -3.758 -43.341 47.767 1.00 93.44 C +ATOM 1621 OG SER A 310 -2.846 -44.162 47.054 1.00 91.01 O +ATOM 1622 N ASP A 311 -1.291 -41.634 48.069 1.00 94.10 N +ATOM 1623 CA ASP A 311 0.120 -41.387 47.783 1.00 96.72 C +ATOM 1624 C ASP A 311 0.762 -42.530 46.996 1.00 93.97 C +ATOM 1625 O ASP A 311 1.987 -42.555 46.839 1.00 93.81 O +ATOM 1626 CB ASP A 311 0.895 -41.112 49.078 1.00 95.83 C +ATOM 1627 CG ASP A 311 0.948 -42.313 49.989 1.00101.82 C +ATOM 1628 OD1 ASP A 311 1.642 -42.241 51.026 1.00104.52 O +ATOM 1629 OD2 ASP A 311 0.269 -43.319 49.682 1.00103.06 O +ATOM 1630 N ASP A 312 -0.047 -43.455 46.484 1.00 92.00 N +ATOM 1631 CA ASP A 312 0.425 -44.570 45.683 1.00 88.78 C +ATOM 1632 C ASP A 312 -0.041 -44.517 44.242 1.00 80.60 C +ATOM 1633 O ASP A 312 0.333 -45.400 43.463 1.00 78.21 O +ATOM 1634 CB ASP A 312 -0.035 -45.891 46.305 1.00 89.63 C +ATOM 1635 CG ASP A 312 0.865 -46.350 47.410 1.00 93.32 C +ATOM 1636 OD1 ASP A 312 1.943 -45.738 47.586 1.00 95.78 O +ATOM 1637 OD2 ASP A 312 0.490 -47.318 48.104 1.00 96.93 O +ATOM 1638 N THR A 313 -0.859 -43.536 43.862 1.00 79.67 N +ATOM 1639 CA THR A 313 -1.393 -43.506 42.505 1.00 73.23 C +ATOM 1640 C THR A 313 -1.604 -42.063 42.080 1.00 72.20 C +ATOM 1641 O THR A 313 -2.265 -41.301 42.793 1.00 79.57 O +ATOM 1642 CB THR A 313 -2.736 -44.242 42.415 1.00 76.36 C +ATOM 1643 OG1 THR A 313 -2.597 -45.566 42.949 1.00 76.87 O +ATOM 1644 CG2 THR A 313 -3.163 -44.358 40.968 1.00 76.18 C +ATOM 1645 N THR A 314 -1.096 -41.697 40.909 1.00 71.17 N +ATOM 1646 CA THR A 314 -1.310 -40.359 40.374 1.00 71.81 C +ATOM 1647 C THR A 314 -1.694 -40.451 38.909 1.00 70.84 C +ATOM 1648 O THR A 314 -0.891 -40.906 38.084 1.00 69.90 O +ATOM 1649 CB THR A 314 -0.064 -39.497 40.548 1.00 66.06 C +ATOM 1650 OG1 THR A 314 0.032 -39.115 41.916 1.00 76.90 O +ATOM 1651 CG2 THR A 314 -0.137 -38.271 39.680 1.00 68.12 C +ATOM 1652 N LEU A 315 -2.906 -39.988 38.593 1.00 66.37 N +ATOM 1653 CA LEU A 315 -3.396 -39.906 37.226 1.00 64.60 C +ATOM 1654 C LEU A 315 -3.107 -38.506 36.702 1.00 64.80 C +ATOM 1655 O LEU A 315 -3.383 -37.519 37.390 1.00 66.06 O +ATOM 1656 CB LEU A 315 -4.895 -40.161 37.177 1.00 67.03 C +ATOM 1657 CG LEU A 315 -5.321 -40.193 35.718 1.00 68.47 C +ATOM 1658 CD1 LEU A 315 -4.773 -41.466 35.077 1.00 64.52 C +ATOM 1659 CD2 LEU A 315 -6.824 -40.006 35.539 1.00 69.58 C +ATOM 1660 N THR A 316 -2.525 -38.408 35.516 1.00 66.54 N +ATOM 1661 CA THR A 316 -2.301 -37.107 34.906 1.00 65.30 C +ATOM 1662 C THR A 316 -2.947 -37.099 33.537 1.00 65.17 C +ATOM 1663 O THR A 316 -2.833 -38.074 32.790 1.00 65.85 O +ATOM 1664 CB THR A 316 -0.827 -36.763 34.803 1.00 66.43 C +ATOM 1665 OG1 THR A 316 -0.225 -36.910 36.106 1.00 61.64 O +ATOM 1666 CG2 THR A 316 -0.678 -35.324 34.277 1.00 64.33 C +ATOM 1667 N LEU A 317 -3.650 -36.017 33.227 1.00 64.83 N +ATOM 1668 CA LEU A 317 -4.441 -35.926 32.011 1.00 61.37 C +ATOM 1669 C LEU A 317 -4.000 -34.694 31.242 1.00 63.60 C +ATOM 1670 O LEU A 317 -3.791 -33.627 31.829 1.00 65.29 O +ATOM 1671 CB LEU A 317 -5.915 -35.851 32.353 1.00 62.70 C +ATOM 1672 CG LEU A 317 -6.336 -37.137 33.079 1.00 64.08 C +ATOM 1673 CD1 LEU A 317 -7.648 -36.920 33.794 1.00 67.36 C +ATOM 1674 CD2 LEU A 317 -6.444 -38.315 32.129 1.00 62.52 C +ATOM 1675 N GLN A 318 -3.854 -34.844 29.932 1.00 59.70 N +ATOM 1676 CA GLN A 318 -3.222 -33.818 29.127 1.00 60.94 C +ATOM 1677 C GLN A 318 -3.994 -33.644 27.840 1.00 63.59 C +ATOM 1678 O GLN A 318 -4.607 -34.588 27.332 1.00 58.94 O +ATOM 1679 CB GLN A 318 -1.776 -34.179 28.804 1.00 59.36 C +ATOM 1680 CG GLN A 318 -1.015 -34.561 30.021 1.00 67.44 C +ATOM 1681 CD GLN A 318 -0.021 -35.630 29.722 1.00 68.98 C +ATOM 1682 OE1 GLN A 318 -0.305 -36.816 29.924 1.00 69.86 O +ATOM 1683 NE2 GLN A 318 1.160 -35.236 29.247 1.00 66.71 N +ATOM 1684 N GLY A 319 -3.953 -32.412 27.330 1.00 66.03 N +ATOM 1685 CA GLY A 319 -4.459 -32.108 26.007 1.00 61.01 C +ATOM 1686 C GLY A 319 -3.525 -31.130 25.320 1.00 66.45 C +ATOM 1687 O GLY A 319 -2.738 -30.431 25.963 1.00 67.67 O +ATOM 1688 N TYR A 320 -3.617 -31.093 23.987 1.00 68.14 N +ATOM 1689 CA TYR A 320 -2.810 -30.170 23.190 1.00 66.98 C +ATOM 1690 C TYR A 320 -3.547 -29.911 21.883 1.00 64.27 C +ATOM 1691 O TYR A 320 -3.610 -30.793 21.026 1.00 65.67 O +ATOM 1692 CB TYR A 320 -1.438 -30.755 22.935 1.00 70.21 C +ATOM 1693 CG TYR A 320 -0.399 -29.815 22.374 1.00 71.72 C +ATOM 1694 CD1 TYR A 320 -0.215 -28.543 22.881 1.00 73.28 C +ATOM 1695 CD2 TYR A 320 0.427 -30.228 21.350 1.00 76.04 C +ATOM 1696 CE1 TYR A 320 0.775 -27.712 22.361 1.00 73.72 C +ATOM 1697 CE2 TYR A 320 1.403 -29.429 20.842 1.00 77.34 C +ATOM 1698 CZ TYR A 320 1.580 -28.175 21.337 1.00 73.55 C +ATOM 1699 OH TYR A 320 2.574 -27.405 20.780 1.00 74.19 O +ATOM 1700 N LEU A 321 -4.122 -28.723 21.757 1.00 65.79 N +ATOM 1701 CA LEU A 321 -4.648 -28.223 20.499 1.00 63.21 C +ATOM 1702 C LEU A 321 -3.669 -27.223 19.913 1.00 64.90 C +ATOM 1703 O LEU A 321 -3.195 -26.323 20.611 1.00 68.95 O +ATOM 1704 CB LEU A 321 -5.989 -27.541 20.704 1.00 66.62 C +ATOM 1705 CG LEU A 321 -6.472 -26.878 19.418 1.00 72.10 C +ATOM 1706 CD1 LEU A 321 -7.266 -27.876 18.589 1.00 69.73 C +ATOM 1707 CD2 LEU A 321 -7.266 -25.580 19.689 1.00 68.42 C +ATOM 1708 N GLN A 322 -3.371 -27.373 18.631 1.00 63.34 N +ATOM 1709 CA GLN A 322 -2.466 -26.441 17.970 1.00 65.75 C +ATOM 1710 C GLN A 322 -2.900 -26.276 16.533 1.00 71.36 C +ATOM 1711 O GLN A 322 -3.024 -27.265 15.805 1.00 71.27 O +ATOM 1712 CB GLN A 322 -1.031 -26.913 18.014 1.00 69.57 C +ATOM 1713 CG GLN A 322 -0.049 -25.862 17.565 1.00 71.03 C +ATOM 1714 CD GLN A 322 1.382 -26.374 17.606 1.00 71.18 C +ATOM 1715 OE1 GLN A 322 1.974 -26.517 18.676 1.00 71.27 O +ATOM 1716 NE2 GLN A 322 1.942 -26.659 16.440 1.00 72.10 N +ATOM 1717 N HIS A 323 -3.117 -25.029 16.141 1.00 74.23 N +ATOM 1718 CA HIS A 323 -3.536 -24.688 14.794 1.00 73.20 C +ATOM 1719 C HIS A 323 -2.491 -23.732 14.242 1.00 75.75 C +ATOM 1720 O HIS A 323 -2.343 -22.610 14.743 1.00 77.37 O +ATOM 1721 CB HIS A 323 -4.936 -24.083 14.801 1.00 69.20 C +ATOM 1722 CG HIS A 323 -5.336 -23.500 13.490 1.00 74.95 C +ATOM 1723 ND1 HIS A 323 -5.143 -24.165 12.298 1.00 71.90 N +ATOM 1724 CD2 HIS A 323 -5.953 -22.337 13.179 1.00 82.33 C +ATOM 1725 CE1 HIS A 323 -5.602 -23.424 11.306 1.00 76.96 C +ATOM 1726 NE2 HIS A 323 -6.103 -22.312 11.814 1.00 81.68 N +ATOM 1727 N ASP A 324 -1.724 -24.204 13.262 1.00 72.06 N +ATOM 1728 CA ASP A 324 -0.754 -23.369 12.570 1.00 73.19 C +ATOM 1729 C ASP A 324 -1.318 -22.985 11.221 1.00 75.14 C +ATOM 1730 O ASP A 324 -1.069 -23.685 10.233 1.00 74.30 O +ATOM 1731 CB ASP A 324 0.565 -24.099 12.362 1.00 73.49 C +ATOM 1732 CG ASP A 324 1.112 -24.657 13.635 1.00 76.19 C +ATOM 1733 OD1 ASP A 324 1.171 -25.902 13.757 1.00 76.30 O +ATOM 1734 OD2 ASP A 324 1.479 -23.847 14.514 1.00 76.06 O +ATOM 1735 N PRO A 325 -2.058 -21.879 11.133 1.00 78.61 N +ATOM 1736 CA PRO A 325 -2.692 -21.515 9.856 1.00 76.10 C +ATOM 1737 C PRO A 325 -1.706 -21.133 8.756 1.00 79.43 C +ATOM 1738 O PRO A 325 -2.105 -21.114 7.588 1.00 79.37 O +ATOM 1739 CB PRO A 325 -3.598 -20.336 10.236 1.00 79.87 C +ATOM 1740 CG PRO A 325 -2.977 -19.749 11.459 1.00 81.79 C +ATOM 1741 CD PRO A 325 -2.332 -20.901 12.201 1.00 80.99 C +ATOM 1742 N ASN A 326 -0.438 -20.861 9.068 1.00 83.10 N +ATOM 1743 CA ASN A 326 0.554 -20.556 8.036 1.00 79.81 C +ATOM 1744 C ASN A 326 1.865 -21.215 8.433 1.00 80.84 C +ATOM 1745 O ASN A 326 2.378 -20.948 9.525 1.00 83.40 O +ATOM 1746 CB ASN A 326 0.760 -19.045 7.876 1.00 83.74 C +ATOM 1747 CG ASN A 326 -0.353 -18.368 7.087 1.00 87.52 C +ATOM 1748 OD1 ASN A 326 -1.532 -18.529 7.399 1.00 88.76 O +ATOM 1749 ND2 ASN A 326 0.023 -17.582 6.074 1.00 84.34 N +ATOM 1750 N GLY A 327 2.388 -22.088 7.571 1.00 78.44 N +ATOM 1751 CA GLY A 327 3.673 -22.723 7.815 1.00 82.13 C +ATOM 1752 C GLY A 327 4.904 -22.092 7.176 1.00 83.38 C +ATOM 1753 O GLY A 327 5.670 -22.789 6.499 1.00 82.78 O +ATOM 1754 N GLY A 328 5.115 -20.790 7.387 1.00 82.22 N +ATOM 1755 CA GLY A 328 6.320 -20.111 6.946 1.00 80.56 C +ATOM 1756 C GLY A 328 6.860 -20.506 5.585 1.00 81.35 C +ATOM 1757 O GLY A 328 6.117 -20.572 4.600 1.00 81.17 O +ATOM 1758 N TYR A 329 8.165 -20.758 5.524 1.00 79.64 N +ATOM 1759 CA TYR A 329 8.850 -21.085 4.287 1.00 79.60 C +ATOM 1760 C TYR A 329 9.494 -22.450 4.418 1.00 74.87 C +ATOM 1761 O TYR A 329 10.077 -22.771 5.453 1.00 77.01 O +ATOM 1762 CB TYR A 329 9.908 -20.044 3.947 1.00 82.13 C +ATOM 1763 CG TYR A 329 10.554 -20.294 2.620 1.00 80.90 C +ATOM 1764 CD1 TYR A 329 9.912 -19.967 1.442 1.00 81.03 C +ATOM 1765 CD2 TYR A 329 11.803 -20.881 2.547 1.00 80.38 C +ATOM 1766 CE1 TYR A 329 10.507 -20.205 0.226 1.00 83.29 C +ATOM 1767 CE2 TYR A 329 12.408 -21.119 1.339 1.00 78.94 C +ATOM 1768 CZ TYR A 329 11.761 -20.785 0.184 1.00 81.59 C +ATOM 1769 OH TYR A 329 12.385 -21.042 -1.015 1.00 83.12 O +ATOM 1770 N HIS A 330 9.373 -23.261 3.373 1.00 75.74 N +ATOM 1771 CA HIS A 330 9.983 -24.583 3.389 1.00 72.40 C +ATOM 1772 C HIS A 330 10.563 -24.920 2.022 1.00 73.77 C +ATOM 1773 O HIS A 330 10.642 -26.092 1.639 1.00 77.78 O +ATOM 1774 CB HIS A 330 8.976 -25.644 3.825 1.00 68.81 C +ATOM 1775 CG HIS A 330 9.576 -26.997 4.030 1.00 68.24 C +ATOM 1776 ND1 HIS A 330 9.376 -28.034 3.143 1.00 70.90 N +ATOM 1777 CD2 HIS A 330 10.328 -27.502 5.039 1.00 68.61 C +ATOM 1778 CE1 HIS A 330 10.009 -29.109 3.580 1.00 70.44 C +ATOM 1779 NE2 HIS A 330 10.589 -28.815 4.732 1.00 68.25 N +ATOM 1780 N GLY A 331 10.967 -23.911 1.272 1.00 73.50 N +ATOM 1781 CA GLY A 331 11.576 -24.125 -0.017 1.00 77.41 C +ATOM 1782 C GLY A 331 13.088 -24.179 0.080 1.00 76.95 C +ATOM 1783 O GLY A 331 13.693 -23.913 1.112 1.00 74.58 O +ATOM 1784 N GLY A 332 13.697 -24.550 -1.033 1.00 78.47 N +ATOM 1785 CA GLY A 332 15.136 -24.511 -1.157 1.00 76.61 C +ATOM 1786 C GLY A 332 15.485 -24.118 -2.573 1.00 82.54 C +ATOM 1787 O GLY A 332 14.772 -24.484 -3.514 1.00 86.06 O +ATOM 1788 N VAL A 333 16.548 -23.348 -2.755 1.00 83.90 N +ATOM 1789 CA VAL A 333 16.898 -22.927 -4.109 1.00 87.41 C +ATOM 1790 C VAL A 333 18.166 -23.637 -4.564 1.00 89.45 C +ATOM 1791 O VAL A 333 18.930 -24.169 -3.742 1.00 91.25 O +ATOM 1792 CB VAL A 333 17.066 -21.403 -4.217 1.00 86.96 C +ATOM 1793 CG1 VAL A 333 15.799 -20.704 -3.767 1.00 89.63 C +ATOM 1794 CG2 VAL A 333 18.257 -20.937 -3.408 1.00 89.75 C +ATOM 1795 N PRO A 334 18.412 -23.674 -5.868 1.00 91.22 N +ATOM 1796 CA PRO A 334 19.607 -24.346 -6.386 1.00 91.69 C +ATOM 1797 C PRO A 334 20.869 -23.773 -5.777 1.00 96.27 C +ATOM 1798 O PRO A 334 20.901 -22.639 -5.297 1.00 98.28 O +ATOM 1799 CB PRO A 334 19.563 -24.066 -7.893 1.00 92.19 C +ATOM 1800 CG PRO A 334 18.224 -23.442 -8.174 1.00 94.79 C +ATOM 1801 CD PRO A 334 17.432 -23.345 -6.915 1.00 94.47 C +ATOM 1802 N ALA A 335 21.929 -24.580 -5.814 1.00 98.63 N +ATOM 1803 CA ALA A 335 23.217 -24.128 -5.307 1.00100.10 C +ATOM 1804 C ALA A 335 23.904 -23.162 -6.265 1.00103.30 C +ATOM 1805 O ALA A 335 24.595 -22.238 -5.818 1.00106.72 O +ATOM 1806 CB ALA A 335 24.118 -25.329 -5.026 1.00 98.26 C +ATOM 1807 N ASP A 336 23.741 -23.359 -7.573 1.00107.66 N +ATOM 1808 CA ASP A 336 24.263 -22.410 -8.552 1.00110.14 C +ATOM 1809 C ASP A 336 23.597 -21.059 -8.343 1.00111.80 C +ATOM 1810 O ASP A 336 22.386 -20.920 -8.546 1.00109.41 O +ATOM 1811 CB ASP A 336 24.034 -22.918 -9.981 1.00112.07 C +ATOM 1812 CG ASP A 336 24.875 -22.180 -11.018 1.00118.47 C +ATOM 1813 OD1 ASP A 336 26.069 -22.515 -11.181 1.00121.55 O +ATOM 1814 OD2 ASP A 336 24.330 -21.271 -11.685 1.00121.47 O +ATOM 1815 N GLY A 337 24.372 -20.061 -7.928 1.00115.16 N +ATOM 1816 CA GLY A 337 23.834 -18.760 -7.600 1.00117.24 C +ATOM 1817 C GLY A 337 23.623 -18.517 -6.122 1.00114.47 C +ATOM 1818 O GLY A 337 23.386 -17.365 -5.731 1.00119.26 O +ATOM 1819 N THR A 338 23.695 -19.562 -5.295 1.00109.91 N +ATOM 1820 CA THR A 338 23.708 -19.432 -3.840 1.00107.51 C +ATOM 1821 C THR A 338 25.084 -19.678 -3.241 1.00106.01 C +ATOM 1822 O THR A 338 25.449 -19.034 -2.253 1.00104.50 O +ATOM 1823 CB THR A 338 22.700 -20.401 -3.199 1.00104.58 C +ATOM 1824 OG1 THR A 338 22.958 -21.735 -3.646 1.00104.38 O +ATOM 1825 CG2 THR A 338 21.272 -20.025 -3.572 1.00104.52 C +ATOM 1826 N LEU A 339 25.862 -20.592 -3.819 1.00106.59 N +ATOM 1827 CA LEU A 339 27.230 -20.838 -3.386 1.00107.10 C +ATOM 1828 C LEU A 339 28.277 -20.315 -4.359 1.00113.68 C +ATOM 1829 O LEU A 339 29.398 -20.014 -3.943 1.00119.32 O +ATOM 1830 CB LEU A 339 27.452 -22.339 -3.156 1.00108.51 C +ATOM 1831 CG LEU A 339 26.610 -23.049 -2.083 1.00103.65 C +ATOM 1832 CD1 LEU A 339 26.902 -24.547 -2.083 1.00101.12 C +ATOM 1833 CD2 LEU A 339 26.845 -22.463 -0.685 1.00100.64 C +ATOM 1834 N SER A 340 27.933 -20.188 -5.640 1.00118.19 N +ATOM 1835 CA SER A 340 28.805 -19.611 -6.655 1.00119.34 C +ATOM 1836 C SER A 340 28.136 -18.366 -7.219 1.00125.29 C +ATOM 1837 O SER A 340 27.188 -17.839 -6.627 1.00123.06 O +ATOM 1838 CB SER A 340 29.110 -20.614 -7.769 1.00118.23 C +ATOM 1839 OG SER A 340 27.938 -20.943 -8.490 1.00119.65 O +ATOM 1840 N HIS A 341 28.649 -17.900 -8.349 1.00129.71 N +ATOM 1841 CA HIS A 341 28.041 -16.709 -8.977 1.00129.37 C +ATOM 1842 C HIS A 341 27.160 -17.199 -10.104 1.00131.30 C +ATOM 1843 O HIS A 341 27.620 -18.065 -10.834 1.00135.49 O +ATOM 1844 CB HIS A 341 29.129 -15.765 -9.473 1.00128.67 C +ATOM 1845 CG HIS A 341 29.420 -14.707 -8.473 1.00133.02 C +ATOM 1846 ND1 HIS A 341 28.672 -13.564 -8.393 1.00134.31 N +ATOM 1847 CD2 HIS A 341 30.326 -14.642 -7.478 1.00133.12 C +ATOM 1848 CE1 HIS A 341 29.131 -12.807 -7.424 1.00137.63 C +ATOM 1849 NE2 HIS A 341 30.147 -13.446 -6.850 1.00138.46 N +ATOM 1850 N HIS A 342 25.915 -16.747 -10.166 1.00130.88 N +ATOM 1851 CA HIS A 342 25.127 -17.157 -11.351 1.00133.90 C +ATOM 1852 C HIS A 342 25.202 -15.971 -12.306 1.00131.79 C +ATOM 1853 O HIS A 342 24.799 -14.879 -11.871 1.00133.27 O +ATOM 1854 CB HIS A 342 23.708 -17.596 -10.992 1.00126.57 C +ATOM 1855 CG HIS A 342 23.088 -18.383 -12.089 1.00127.27 C +ATOM 1856 ND1 HIS A 342 23.586 -19.601 -12.483 1.00127.53 N +ATOM 1857 CD2 HIS A 342 22.046 -18.116 -12.895 1.00128.04 C +ATOM 1858 CE1 HIS A 342 22.870 -20.065 -13.480 1.00128.49 C +ATOM 1859 NE2 HIS A 342 21.923 -19.170 -13.749 1.00128.87 N +ATOM 1860 N ASN A 343 25.720 -16.200 -13.517 1.00128.53 N +ATOM 1861 CA ASN A 343 25.961 -15.073 -14.447 1.00135.58 C +ATOM 1862 C ASN A 343 26.876 -14.165 -13.628 1.00143.08 C +ATOM 1863 O ASN A 343 27.966 -14.626 -13.261 1.00148.18 O +ATOM 1864 CB ASN A 343 24.676 -14.507 -15.047 1.00130.96 C +ATOM 1865 CG ASN A 343 23.990 -15.524 -15.927 1.00132.41 C +ATOM 1866 OD1 ASN A 343 24.621 -16.466 -16.391 1.00133.65 O +ATOM 1867 ND2 ASN A 343 22.698 -15.359 -16.144 1.00128.67 N +ATOM 1868 N GLY A 344 26.443 -12.942 -13.337 1.00143.28 N +ATOM 1869 CA GLY A 344 27.224 -12.063 -12.452 1.00140.33 C +ATOM 1870 C GLY A 344 26.464 -11.785 -11.174 1.00136.31 C +ATOM 1871 O GLY A 344 26.813 -10.819 -10.501 1.00138.37 O +ATOM 1872 N ARG A 345 25.476 -12.608 -10.822 1.00135.98 N +ATOM 1873 CA ARG A 345 24.636 -12.246 -9.650 1.00135.20 C +ATOM 1874 C ARG A 345 24.534 -13.354 -8.587 1.00133.01 C +ATOM 1875 O ARG A 345 24.949 -14.492 -8.868 1.00130.87 O +ATOM 1876 CB ARG A 345 23.254 -11.893 -10.200 1.00132.17 C +ATOM 1877 CG ARG A 345 22.460 -10.926 -9.343 1.00128.91 C +ATOM 1878 CD ARG A 345 23.395 -10.038 -8.572 1.00133.43 C +ATOM 1879 NE ARG A 345 22.672 -9.481 -7.451 1.00133.25 N +ATOM 1880 CZ ARG A 345 23.259 -9.014 -6.368 1.00134.95 C +ATOM 1881 NH1 ARG A 345 22.533 -8.501 -5.392 1.00133.35 N +ATOM 1882 NH2 ARG A 345 24.572 -9.061 -6.266 1.00136.95 N +ATOM 1883 N HIS A 346 24.037 -12.979 -7.390 1.00133.67 N +ATOM 1884 CA HIS A 346 23.754 -13.892 -6.283 1.00125.89 C +ATOM 1885 C HIS A 346 22.235 -13.957 -6.049 1.00121.70 C +ATOM 1886 O HIS A 346 21.447 -13.306 -6.741 1.00131.89 O +ATOM 1887 CB HIS A 346 24.496 -13.427 -5.027 1.00128.27 C +ATOM 1888 CG HIS A 346 25.928 -13.870 -4.947 1.00133.20 C +ATOM 1889 ND1 HIS A 346 26.360 -15.105 -5.379 1.00131.25 N +ATOM 1890 CD2 HIS A 346 27.029 -13.228 -4.486 1.00136.01 C +ATOM 1891 CE1 HIS A 346 27.662 -15.210 -5.176 1.00135.43 C +ATOM 1892 NE2 HIS A 346 28.093 -14.083 -4.638 1.00136.72 N +ATOM 1893 N ILE A 347 21.807 -14.741 -5.062 1.00113.64 N +ATOM 1894 CA ILE A 347 20.381 -14.920 -4.780 1.00110.67 C +ATOM 1895 C ILE A 347 20.042 -14.331 -3.413 1.00109.94 C +ATOM 1896 O ILE A 347 20.861 -14.342 -2.488 1.00110.93 O +ATOM 1897 CB ILE A 347 19.961 -16.405 -4.852 1.00105.25 C +ATOM 1898 CG1 ILE A 347 19.994 -16.894 -6.298 1.00106.98 C +ATOM 1899 CG2 ILE A 347 18.577 -16.612 -4.251 1.00102.80 C +ATOM 1900 CD1 ILE A 347 19.303 -18.210 -6.510 1.00 98.88 C +ATOM 1901 N SER A 348 18.819 -13.818 -3.283 1.00107.17 N +ATOM 1902 CA SER A 348 18.403 -13.166 -2.049 1.00101.09 C +ATOM 1903 C SER A 348 17.953 -14.169 -1.003 1.00 98.73 C +ATOM 1904 O SER A 348 17.197 -15.101 -1.298 1.00 97.32 O +ATOM 1905 CB SER A 348 17.259 -12.197 -2.306 1.00106.37 C +ATOM 1906 OG SER A 348 16.812 -11.667 -1.070 1.00108.73 O +ATOM 1907 N ARG A 349 18.391 -13.942 0.236 1.00 98.30 N +ATOM 1908 CA ARG A 349 17.949 -14.773 1.348 1.00100.13 C +ATOM 1909 C ARG A 349 16.523 -14.455 1.764 1.00101.67 C +ATOM 1910 O ARG A 349 15.934 -15.205 2.560 1.00 98.22 O +ATOM 1911 CB ARG A 349 18.857 -14.580 2.545 1.00 98.97 C +ATOM 1912 CG ARG A 349 18.775 -13.193 3.073 1.00103.20 C +ATOM 1913 CD ARG A 349 19.858 -12.988 4.053 1.00110.56 C +ATOM 1914 NE ARG A 349 19.470 -11.999 5.038 1.00115.05 N +ATOM 1915 CZ ARG A 349 20.329 -11.341 5.799 1.00117.20 C +ATOM 1916 NH1 ARG A 349 19.882 -10.449 6.669 1.00116.42 N +ATOM 1917 NH2 ARG A 349 21.630 -11.584 5.701 1.00118.62 N +ATOM 1918 N GLU A 350 15.981 -13.343 1.271 1.00100.29 N +ATOM 1919 CA GLU A 350 14.590 -12.961 1.461 1.00100.19 C +ATOM 1920 C GLU A 350 13.705 -13.428 0.311 1.00 97.85 C +ATOM 1921 O GLU A 350 12.544 -13.008 0.214 1.00 96.45 O +ATOM 1922 CB GLU A 350 14.493 -11.444 1.622 1.00101.70 C +ATOM 1923 CG GLU A 350 15.344 -10.890 2.759 1.00104.54 C +ATOM 1924 CD GLU A 350 15.047 -9.431 3.046 1.00111.34 C +ATOM 1925 OE1 GLU A 350 15.808 -8.555 2.571 1.00117.05 O +ATOM 1926 OE2 GLU A 350 14.045 -9.163 3.745 1.00109.62 O +ATOM 1927 N PHE A 351 14.230 -14.298 -0.544 1.00 96.60 N +ATOM 1928 CA PHE A 351 13.585 -14.665 -1.790 1.00 95.46 C +ATOM 1929 C PHE A 351 12.471 -15.686 -1.576 1.00 95.08 C +ATOM 1930 O PHE A 351 12.546 -16.551 -0.703 1.00 96.20 O +ATOM 1931 CB PHE A 351 14.626 -15.229 -2.750 1.00 95.13 C +ATOM 1932 CG PHE A 351 14.037 -15.881 -3.949 1.00 96.07 C +ATOM 1933 CD1 PHE A 351 13.591 -15.116 -5.009 1.00100.53 C +ATOM 1934 CD2 PHE A 351 13.916 -17.256 -4.020 1.00 95.17 C +ATOM 1935 CE1 PHE A 351 13.047 -15.707 -6.125 1.00101.12 C +ATOM 1936 CE2 PHE A 351 13.367 -17.858 -5.132 1.00 94.49 C +ATOM 1937 CZ PHE A 351 12.935 -17.083 -6.187 1.00 97.64 C +ATOM 1938 N PHE A 352 11.443 -15.587 -2.409 1.00 93.69 N +ATOM 1939 CA PHE A 352 10.311 -16.503 -2.412 1.00 94.24 C +ATOM 1940 C PHE A 352 10.312 -17.281 -3.727 1.00 93.77 C +ATOM 1941 O PHE A 352 10.273 -16.676 -4.801 1.00 98.27 O +ATOM 1942 CB PHE A 352 9.009 -15.720 -2.236 1.00 96.25 C +ATOM 1943 CG PHE A 352 7.850 -16.571 -1.873 1.00 99.38 C +ATOM 1944 CD1 PHE A 352 7.371 -16.594 -0.585 1.00 99.91 C +ATOM 1945 CD2 PHE A 352 7.239 -17.360 -2.824 1.00 98.97 C +ATOM 1946 CE1 PHE A 352 6.306 -17.382 -0.259 1.00 99.28 C +ATOM 1947 CE2 PHE A 352 6.178 -18.155 -2.493 1.00 97.96 C +ATOM 1948 CZ PHE A 352 5.713 -18.166 -1.210 1.00 97.10 C +ATOM 1949 N ASP A 353 10.339 -18.614 -3.654 1.00 93.31 N +ATOM 1950 CA ASP A 353 10.452 -19.428 -4.862 1.00 89.64 C +ATOM 1951 C ASP A 353 9.101 -19.877 -5.407 1.00 88.72 C +ATOM 1952 O ASP A 353 9.058 -20.605 -6.405 1.00 88.53 O +ATOM 1953 CB ASP A 353 11.389 -20.627 -4.620 1.00 87.89 C +ATOM 1954 CG ASP A 353 10.896 -21.575 -3.536 1.00 90.09 C +ATOM 1955 OD1 ASP A 353 10.360 -21.084 -2.515 1.00 92.68 O +ATOM 1956 OD2 ASP A 353 11.109 -22.805 -3.673 1.00 87.69 O +ATOM 1957 N GLY A 354 8.001 -19.411 -4.817 1.00 89.32 N +ATOM 1958 CA GLY A 354 6.671 -19.816 -5.237 1.00 89.52 C +ATOM 1959 C GLY A 354 5.720 -18.670 -5.525 1.00 94.52 C +ATOM 1960 O GLY A 354 6.154 -17.531 -5.724 1.00 97.38 O +ATOM 1961 N GLU A 355 4.414 -18.962 -5.557 1.00 93.57 N +ATOM 1962 CA GLU A 355 3.397 -17.954 -5.840 1.00 93.26 C +ATOM 1963 C GLU A 355 2.753 -17.495 -4.550 1.00 94.99 C +ATOM 1964 O GLU A 355 2.151 -18.321 -3.847 1.00 92.59 O +ATOM 1965 CB GLU A 355 2.320 -18.502 -6.764 1.00 94.15 C +ATOM 1966 CG GLU A 355 2.773 -18.753 -8.166 1.00 96.48 C +ATOM 1967 CD GLU A 355 3.526 -17.591 -8.735 1.00 98.12 C +ATOM 1968 OE1 GLU A 355 4.760 -17.548 -8.547 1.00 98.54 O +ATOM 1969 OE2 GLU A 355 2.889 -16.739 -9.381 1.00 98.33 O +ATOM 1970 N PRO A 356 2.804 -16.208 -4.217 1.00 98.43 N +ATOM 1971 CA PRO A 356 1.989 -15.734 -3.089 1.00 95.83 C +ATOM 1972 C PRO A 356 0.530 -16.116 -3.249 1.00 94.56 C +ATOM 1973 O PRO A 356 -0.092 -16.590 -2.293 1.00 94.81 O +ATOM 1974 CB PRO A 356 2.190 -14.213 -3.110 1.00 97.43 C +ATOM 1975 CG PRO A 356 3.385 -13.967 -3.954 1.00101.65 C +ATOM 1976 CD PRO A 356 3.609 -15.148 -4.842 1.00 98.96 C +ATOM 1977 N SER A 357 -0.019 -15.998 -4.457 1.00 96.92 N +ATOM 1978 CA SER A 357 -1.377 -16.476 -4.652 1.00 94.42 C +ATOM 1979 C SER A 357 -1.501 -17.964 -4.370 1.00 94.06 C +ATOM 1980 O SER A 357 -2.630 -18.446 -4.228 1.00 94.03 O +ATOM 1981 CB SER A 357 -1.855 -16.194 -6.072 1.00 92.68 C +ATOM 1982 OG SER A 357 -1.301 -17.140 -6.964 1.00 92.26 O +ATOM 1983 N LYS A 358 -0.396 -18.711 -4.330 1.00 91.85 N +ATOM 1984 CA LYS A 358 -0.501 -20.152 -4.126 1.00 90.21 C +ATOM 1985 C LYS A 358 0.617 -20.715 -3.247 1.00 92.47 C +ATOM 1986 O LYS A 358 1.192 -21.765 -3.542 1.00 88.28 O +ATOM 1987 CB LYS A 358 -0.569 -20.870 -5.469 1.00 89.84 C +ATOM 1988 CG LYS A 358 -1.850 -20.499 -6.182 1.00 94.73 C +ATOM 1989 CD LYS A 358 -2.031 -21.274 -7.453 1.00 93.82 C +ATOM 1990 CE LYS A 358 -2.264 -22.712 -7.030 1.00 94.42 C +ATOM 1991 NZ LYS A 358 -3.504 -22.768 -6.213 1.00100.97 N +ATOM 1992 N ASP A 359 0.927 -20.029 -2.143 1.00 94.22 N +ATOM 1993 CA ASP A 359 1.785 -20.536 -1.066 1.00 91.67 C +ATOM 1994 C ASP A 359 0.973 -20.705 0.202 1.00 93.00 C +ATOM 1995 O ASP A 359 0.613 -19.704 0.828 1.00 93.97 O +ATOM 1996 CB ASP A 359 2.957 -19.603 -0.775 1.00 94.12 C +ATOM 1997 CG ASP A 359 3.765 -20.049 0.457 1.00 99.31 C +ATOM 1998 OD1 ASP A 359 4.484 -21.069 0.392 1.00 99.42 O +ATOM 1999 OD2 ASP A 359 3.694 -19.351 1.495 1.00100.96 O +ATOM 2000 N ASP A 360 0.727 -21.959 0.605 1.00 92.13 N +ATOM 2001 CA ASP A 360 -0.108 -22.246 1.767 1.00 87.25 C +ATOM 2002 C ASP A 360 0.384 -23.481 2.499 1.00 82.40 C +ATOM 2003 O ASP A 360 0.970 -24.393 1.908 1.00 80.19 O +ATOM 2004 CB ASP A 360 -1.554 -22.497 1.375 1.00 88.42 C +ATOM 2005 CG ASP A 360 -2.131 -21.386 0.528 1.00 97.78 C +ATOM 2006 OD1 ASP A 360 -1.569 -20.276 0.461 1.00 98.46 O +ATOM 2007 OD2 ASP A 360 -3.159 -21.638 -0.120 1.00105.71 O +ATOM 2008 N PHE A 361 0.109 -23.503 3.801 1.00 80.72 N +ATOM 2009 CA PHE A 361 0.369 -24.668 4.637 1.00 77.38 C +ATOM 2010 C PHE A 361 -0.422 -24.580 5.935 1.00 74.99 C +ATOM 2011 O PHE A 361 -0.099 -23.755 6.796 1.00 77.63 O +ATOM 2012 CB PHE A 361 1.863 -24.787 4.933 1.00 76.51 C +ATOM 2013 CG PHE A 361 2.213 -25.961 5.777 1.00 71.80 C +ATOM 2014 CD1 PHE A 361 2.229 -25.863 7.158 1.00 70.91 C +ATOM 2015 CD2 PHE A 361 2.501 -27.177 5.190 1.00 68.62 C +ATOM 2016 CE1 PHE A 361 2.547 -26.963 7.932 1.00 69.02 C +ATOM 2017 CE2 PHE A 361 2.818 -28.279 5.951 1.00 69.42 C +ATOM 2018 CZ PHE A 361 2.844 -28.175 7.324 1.00 69.20 C +ATOM 2019 N ASP A 362 -1.431 -25.433 6.108 1.00 70.26 N +ATOM 2020 CA ASP A 362 -2.285 -25.400 7.293 1.00 70.72 C +ATOM 2021 C ASP A 362 -2.144 -26.718 8.047 1.00 69.93 C +ATOM 2022 O ASP A 362 -2.548 -27.769 7.537 1.00 70.97 O +ATOM 2023 CB ASP A 362 -3.741 -25.151 6.908 1.00 68.80 C +ATOM 2024 CG ASP A 362 -4.613 -24.820 8.112 1.00 79.13 C +ATOM 2025 OD1 ASP A 362 -5.303 -23.771 8.068 1.00 84.56 O +ATOM 2026 OD2 ASP A 362 -4.592 -25.601 9.106 1.00 78.09 O +ATOM 2027 N ARG A 363 -1.592 -26.665 9.261 1.00 66.44 N +ATOM 2028 CA ARG A 363 -1.452 -27.839 10.114 1.00 64.27 C +ATOM 2029 C ARG A 363 -2.304 -27.672 11.361 1.00 65.87 C +ATOM 2030 O ARG A 363 -2.133 -26.707 12.113 1.00 70.57 O +ATOM 2031 CB ARG A 363 -0.002 -28.070 10.519 1.00 65.16 C +ATOM 2032 CG ARG A 363 0.129 -29.173 11.538 1.00 66.32 C +ATOM 2033 CD ARG A 363 1.570 -29.505 11.849 1.00 67.77 C +ATOM 2034 NE ARG A 363 2.307 -28.317 12.251 1.00 67.02 N +ATOM 2035 CZ ARG A 363 3.427 -27.901 11.673 1.00 65.61 C +ATOM 2036 NH1 ARG A 363 3.973 -28.621 10.705 1.00 68.34 N +ATOM 2037 NH2 ARG A 363 4.035 -26.799 12.099 1.00 65.87 N +ATOM 2038 N THR A 364 -3.209 -28.610 11.587 1.00 63.94 N +ATOM 2039 CA THR A 364 -3.970 -28.672 12.822 1.00 62.66 C +ATOM 2040 C THR A 364 -3.620 -29.981 13.496 1.00 60.19 C +ATOM 2041 O THR A 364 -3.700 -31.040 12.869 1.00 61.63 O +ATOM 2042 CB THR A 364 -5.471 -28.600 12.557 1.00 62.91 C +ATOM 2043 OG1 THR A 364 -5.759 -27.450 11.751 1.00 63.64 O +ATOM 2044 CG2 THR A 364 -6.243 -28.536 13.855 1.00 63.44 C +ATOM 2045 N GLN A 365 -3.211 -29.917 14.751 1.00 60.75 N +ATOM 2046 CA GLN A 365 -2.928 -31.126 15.501 1.00 59.08 C +ATOM 2047 C GLN A 365 -3.618 -31.051 16.850 1.00 59.45 C +ATOM 2048 O GLN A 365 -3.404 -30.101 17.611 1.00 60.10 O +ATOM 2049 CB GLN A 365 -1.435 -31.328 15.675 1.00 62.10 C +ATOM 2050 CG GLN A 365 -0.705 -30.134 16.117 1.00 67.61 C +ATOM 2051 CD GLN A 365 0.785 -30.322 15.933 1.00 67.34 C +ATOM 2052 OE1 GLN A 365 1.346 -29.977 14.892 1.00 67.74 O +ATOM 2053 NE2 GLN A 365 1.430 -30.902 16.932 1.00 64.82 N +ATOM 2054 N ARG A 366 -4.451 -32.046 17.134 1.00 58.62 N +ATOM 2055 CA ARG A 366 -5.113 -32.198 18.416 1.00 58.23 C +ATOM 2056 C ARG A 366 -4.580 -33.465 19.065 1.00 58.01 C +ATOM 2057 O ARG A 366 -4.400 -34.479 18.388 1.00 58.27 O +ATOM 2058 CB ARG A 366 -6.628 -32.310 18.232 1.00 63.95 C +ATOM 2059 CG ARG A 366 -7.244 -31.279 17.297 1.00 67.65 C +ATOM 2060 CD ARG A 366 -8.792 -31.303 17.374 1.00 71.71 C +ATOM 2061 NE ARG A 366 -9.421 -30.723 16.186 1.00 72.83 N +ATOM 2062 CZ ARG A 366 -9.216 -31.157 14.946 1.00 78.00 C +ATOM 2063 NH1 ARG A 366 -8.379 -32.169 14.726 1.00 74.46 N +ATOM 2064 NH2 ARG A 366 -9.838 -30.571 13.923 1.00 78.03 N +ATOM 2065 N MET A 367 -4.337 -33.412 20.372 1.00 61.33 N +ATOM 2066 CA MET A 367 -3.822 -34.565 21.093 1.00 57.08 C +ATOM 2067 C MET A 367 -4.485 -34.641 22.456 1.00 58.83 C +ATOM 2068 O MET A 367 -4.910 -33.620 22.995 1.00 64.14 O +ATOM 2069 CB MET A 367 -2.332 -34.471 21.314 1.00 52.02 C +ATOM 2070 CG MET A 367 -1.550 -34.340 20.110 1.00 54.54 C +ATOM 2071 SD MET A 367 0.134 -34.418 20.670 1.00 65.14 S +ATOM 2072 CE MET A 367 0.315 -33.077 21.829 1.00 68.00 C +ATOM 2073 N PHE A 368 -4.575 -35.850 23.019 1.00 55.35 N +ATOM 2074 CA PHE A 368 -4.643 -35.871 24.476 1.00 64.04 C +ATOM 2075 C PHE A 368 -4.150 -37.226 24.960 1.00 59.37 C +ATOM 2076 O PHE A 368 -4.125 -38.212 24.207 1.00 52.41 O +ATOM 2077 CB PHE A 368 -6.057 -35.707 25.007 1.00 69.37 C +ATOM 2078 CG PHE A 368 -6.756 -37.009 25.203 1.00 66.79 C +ATOM 2079 CD1 PHE A 368 -7.211 -37.734 24.134 1.00 63.78 C +ATOM 2080 CD2 PHE A 368 -7.073 -37.441 26.507 1.00 70.39 C +ATOM 2081 CE1 PHE A 368 -7.866 -38.942 24.327 1.00 67.44 C +ATOM 2082 CE2 PHE A 368 -7.766 -38.639 26.719 1.00 69.42 C +ATOM 2083 CZ PHE A 368 -8.160 -39.395 25.614 1.00 72.38 C +ATOM 2084 N GLY A 369 -3.847 -37.280 26.250 1.00 56.59 N +ATOM 2085 CA GLY A 369 -3.500 -38.550 26.845 1.00 56.02 C +ATOM 2086 C GLY A 369 -3.446 -38.438 28.345 1.00 58.13 C +ATOM 2087 O GLY A 369 -3.953 -37.491 28.934 1.00 61.08 O +ATOM 2088 N TYR A 370 -2.817 -39.420 28.965 1.00 57.67 N +ATOM 2089 CA TYR A 370 -2.764 -39.467 30.414 1.00 57.46 C +ATOM 2090 C TYR A 370 -1.628 -40.388 30.783 1.00 61.19 C +ATOM 2091 O TYR A 370 -1.250 -41.271 30.003 1.00 62.19 O +ATOM 2092 CB TYR A 370 -4.047 -40.012 31.010 1.00 60.41 C +ATOM 2093 CG TYR A 370 -4.286 -41.463 30.615 1.00 58.60 C +ATOM 2094 CD1 TYR A 370 -3.632 -42.531 31.263 1.00 58.05 C +ATOM 2095 CD2 TYR A 370 -5.228 -41.772 29.652 1.00 58.66 C +ATOM 2096 CE1 TYR A 370 -3.893 -43.863 30.902 1.00 57.41 C +ATOM 2097 CE2 TYR A 370 -5.491 -43.078 29.292 1.00 58.46 C +ATOM 2098 CZ TYR A 370 -4.830 -44.122 29.920 1.00 62.18 C +ATOM 2099 OH TYR A 370 -5.108 -45.422 29.560 1.00 66.98 O +ATOM 2100 N GLN A 371 -1.146 -40.243 32.004 1.00 65.62 N +ATOM 2101 CA GLN A 371 -0.027 -41.063 32.393 1.00 63.34 C +ATOM 2102 C GLN A 371 -0.419 -41.518 33.780 1.00 62.52 C +ATOM 2103 O GLN A 371 -0.513 -40.698 34.699 1.00 61.90 O +ATOM 2104 CB GLN A 371 1.219 -40.223 32.440 1.00 61.69 C +ATOM 2105 CG GLN A 371 1.186 -39.157 31.349 1.00 61.03 C +ATOM 2106 CD GLN A 371 2.503 -38.584 31.164 1.00 69.08 C +ATOM 2107 OE1 GLN A 371 3.472 -39.109 31.743 1.00 74.14 O +ATOM 2108 NE2 GLN A 371 2.580 -37.399 30.497 1.00 70.42 N +ATOM 2109 N LEU A 372 -0.736 -42.776 33.916 1.00 60.93 N +ATOM 2110 CA LEU A 372 -1.188 -43.316 35.175 1.00 58.41 C +ATOM 2111 C LEU A 372 -0.008 -43.928 35.911 1.00 59.05 C +ATOM 2112 O LEU A 372 0.640 -44.851 35.402 1.00 56.65 O +ATOM 2113 CB LEU A 372 -2.267 -44.341 34.894 1.00 59.88 C +ATOM 2114 CG LEU A 372 -2.786 -45.060 36.097 1.00 63.17 C +ATOM 2115 CD1 LEU A 372 -3.720 -44.148 36.880 1.00 65.05 C +ATOM 2116 CD2 LEU A 372 -3.497 -46.321 35.573 1.00 64.74 C +ATOM 2117 N GLU A 373 0.263 -43.419 37.101 1.00 66.31 N +ATOM 2118 CA GLU A 373 1.394 -43.895 37.926 1.00 65.46 C +ATOM 2119 C GLU A 373 0.856 -44.613 39.155 1.00 66.64 C +ATOM 2120 O GLU A 373 0.198 -43.981 39.936 1.00 70.94 O +ATOM 2121 CB GLU A 373 2.214 -42.683 38.340 1.00 64.95 C +ATOM 2122 CG GLU A 373 2.772 -41.949 37.151 1.00 67.81 C +ATOM 2123 CD GLU A 373 2.796 -40.449 37.289 1.00 74.59 C +ATOM 2124 OE1 GLU A 373 3.735 -39.922 37.874 1.00 70.10 O +ATOM 2125 OE2 GLU A 373 1.859 -39.822 36.814 1.00 75.92 O +ATOM 2126 N HIS A 374 1.107 -45.903 39.276 1.00 66.66 N +ATOM 2127 CA HIS A 374 0.614 -46.606 40.477 1.00 70.53 C +ATOM 2128 C HIS A 374 1.754 -47.327 41.196 1.00 70.68 C +ATOM 2129 O HIS A 374 2.292 -48.258 40.644 1.00 69.50 O +ATOM 2130 CB HIS A 374 -0.528 -47.553 40.104 1.00 66.78 C +ATOM 2131 CG HIS A 374 -0.959 -48.370 41.260 1.00 74.10 C +ATOM 2132 ND1 HIS A 374 -1.421 -47.807 42.411 1.00 80.11 N +ATOM 2133 CD2 HIS A 374 -0.939 -49.693 41.467 1.00 75.94 C +ATOM 2134 CE1 HIS A 374 -1.677 -48.753 43.273 1.00 76.79 C +ATOM 2135 NE2 HIS A 374 -1.394 -49.909 42.720 1.00 79.18 N +ATOM 2136 N ARG A 375 2.033 -46.945 42.437 1.00 71.80 N +ATOM 2137 CA ARG A 375 3.091 -47.633 43.210 1.00 76.66 C +ATOM 2138 C ARG A 375 2.446 -48.769 43.975 1.00 80.82 C +ATOM 2139 O ARG A 375 1.496 -48.532 44.661 1.00 83.76 O +ATOM 2140 CB ARG A 375 3.754 -46.730 44.250 1.00 83.39 C +ATOM 2141 CG ARG A 375 4.609 -47.503 45.249 1.00 85.82 C +ATOM 2142 CD ARG A 375 5.584 -46.740 46.111 1.00 93.23 C +ATOM 2143 NE ARG A 375 4.982 -45.535 46.633 1.00 96.47 N +ATOM 2144 CZ ARG A 375 5.510 -44.798 47.576 1.00 98.67 C +ATOM 2145 NH1 ARG A 375 6.661 -45.152 48.108 1.00 97.45 N +ATOM 2146 NH2 ARG A 375 4.889 -43.714 47.983 1.00100.05 N +ATOM 2147 N ILE A 376 3.008 -49.948 43.873 1.00 79.21 N +ATOM 2148 CA ILE A 376 2.466 -51.107 44.574 1.00 76.26 C +ATOM 2149 C ILE A 376 3.144 -51.228 45.936 1.00 82.81 C +ATOM 2150 O ILE A 376 2.512 -51.032 46.980 1.00 86.75 O +ATOM 2151 CB ILE A 376 2.665 -52.376 43.722 1.00 77.08 C +ATOM 2152 CG1 ILE A 376 1.901 -52.260 42.401 1.00 75.71 C +ATOM 2153 CG2 ILE A 376 2.218 -53.602 44.461 1.00 76.81 C +ATOM 2154 CD1 ILE A 376 2.055 -53.487 41.506 1.00 73.89 C +ATOM 2155 N ASP A 377 4.451 -51.482 45.930 1.00 82.45 N +ATOM 2156 CA ASP A 377 5.260 -51.688 47.124 1.00 82.49 C +ATOM 2157 C ASP A 377 6.332 -50.609 47.231 1.00 86.17 C +ATOM 2158 O ASP A 377 6.413 -49.683 46.417 1.00 87.94 O +ATOM 2159 CB ASP A 377 5.939 -53.063 47.105 1.00 82.58 C +ATOM 2160 CG ASP A 377 4.965 -54.201 46.948 1.00 88.30 C +ATOM 2161 OD1 ASP A 377 5.397 -55.306 46.542 1.00 94.21 O +ATOM 2162 OD2 ASP A 377 3.774 -53.997 47.259 1.00 99.48 O +ATOM 2163 N ASP A 378 7.181 -50.761 48.244 1.00 83.94 N +ATOM 2164 CA ASP A 378 8.522 -50.237 48.105 1.00 79.61 C +ATOM 2165 C ASP A 378 9.265 -50.951 46.971 1.00 80.35 C +ATOM 2166 O ASP A 378 10.398 -50.578 46.646 1.00 89.27 O +ATOM 2167 CB ASP A 378 9.270 -50.373 49.444 1.00 84.90 C +ATOM 2168 CG ASP A 378 8.646 -49.524 50.563 1.00 93.27 C +ATOM 2169 OD1 ASP A 378 9.233 -49.453 51.673 1.00 93.77 O +ATOM 2170 OD2 ASP A 378 7.557 -48.946 50.337 1.00 93.96 O +ATOM 2171 N VAL A 379 8.629 -51.935 46.329 1.00 71.01 N +ATOM 2172 CA VAL A 379 9.298 -52.754 45.325 1.00 71.53 C +ATOM 2173 C VAL A 379 8.673 -52.635 43.939 1.00 75.49 C +ATOM 2174 O VAL A 379 9.373 -52.381 42.954 1.00 78.19 O +ATOM 2175 CB VAL A 379 9.313 -54.229 45.750 1.00 72.31 C +ATOM 2176 CG1 VAL A 379 9.733 -55.080 44.559 1.00 69.85 C +ATOM 2177 CG2 VAL A 379 10.254 -54.429 46.908 1.00 74.17 C +ATOM 2178 N TRP A 380 7.371 -52.859 43.825 1.00 72.70 N +ATOM 2179 CA TRP A 380 6.745 -52.958 42.513 1.00 71.54 C +ATOM 2180 C TRP A 380 6.030 -51.663 42.147 1.00 75.16 C +ATOM 2181 O TRP A 380 5.154 -51.205 42.885 1.00 72.72 O +ATOM 2182 CB TRP A 380 5.757 -54.122 42.491 1.00 73.42 C +ATOM 2183 CG TRP A 380 6.411 -55.455 42.615 1.00 75.93 C +ATOM 2184 CD1 TRP A 380 6.696 -56.125 43.768 1.00 77.83 C +ATOM 2185 CD2 TRP A 380 6.860 -56.289 41.540 1.00 73.58 C +ATOM 2186 NE1 TRP A 380 7.297 -57.328 43.477 1.00 80.50 N +ATOM 2187 CE2 TRP A 380 7.408 -57.452 42.116 1.00 79.07 C +ATOM 2188 CE3 TRP A 380 6.855 -56.163 40.151 1.00 71.67 C +ATOM 2189 CZ2 TRP A 380 7.937 -58.485 41.348 1.00 75.92 C +ATOM 2190 CZ3 TRP A 380 7.378 -57.189 39.392 1.00 71.46 C +ATOM 2191 CH2 TRP A 380 7.911 -58.337 39.995 1.00 72.22 C +ATOM 2192 N SER A 381 6.360 -51.112 40.974 1.00 75.22 N +ATOM 2193 CA SER A 381 5.717 -49.885 40.436 1.00 69.30 C +ATOM 2194 C SER A 381 5.211 -50.167 39.030 1.00 68.14 C +ATOM 2195 O SER A 381 5.871 -50.875 38.330 1.00 71.03 O +ATOM 2196 CB SER A 381 6.663 -48.756 40.378 1.00 68.28 C +ATOM 2197 OG SER A 381 7.135 -48.436 41.663 1.00 84.82 O +ATOM 2198 N ALA A 382 4.091 -49.583 38.637 1.00 64.14 N +ATOM 2199 CA ALA A 382 3.586 -49.804 37.273 1.00 62.43 C +ATOM 2200 C ALA A 382 3.192 -48.465 36.672 1.00 60.14 C +ATOM 2201 O ALA A 382 2.966 -47.539 37.410 1.00 60.37 O +ATOM 2202 CB ALA A 382 2.458 -50.786 37.288 1.00 60.26 C +ATOM 2203 N ARG A 383 3.186 -48.373 35.356 1.00 55.15 N +ATOM 2204 CA ARG A 383 2.861 -47.070 34.753 1.00 54.00 C +ATOM 2205 C ARG A 383 2.249 -47.268 33.379 1.00 53.22 C +ATOM 2206 O ARG A 383 2.664 -48.182 32.721 1.00 52.36 O +ATOM 2207 CB ARG A 383 4.145 -46.257 34.604 1.00 53.76 C +ATOM 2208 CG ARG A 383 3.920 -44.798 34.261 1.00 54.08 C +ATOM 2209 CD ARG A 383 5.174 -44.034 33.981 1.00 57.75 C +ATOM 2210 NE ARG A 383 4.858 -42.735 33.448 1.00 56.18 N +ATOM 2211 CZ ARG A 383 5.248 -41.605 33.958 1.00 60.00 C +ATOM 2212 NH1 ARG A 383 5.990 -41.584 35.038 1.00 61.08 N +ATOM 2213 NH2 ARG A 383 4.893 -40.484 33.394 1.00 64.78 N +ATOM 2214 N GLN A 384 1.253 -46.453 33.032 1.00 53.55 N +ATOM 2215 CA GLN A 384 0.720 -46.477 31.670 1.00 52.66 C +ATOM 2216 C GLN A 384 0.717 -45.074 31.088 1.00 53.15 C +ATOM 2217 O GLN A 384 -0.027 -44.208 31.562 1.00 55.09 O +ATOM 2218 CB GLN A 384 -0.692 -47.041 31.622 1.00 54.70 C +ATOM 2219 CG GLN A 384 -1.234 -47.053 30.220 1.00 58.14 C +ATOM 2220 CD GLN A 384 -2.380 -48.026 30.070 1.00 60.70 C +ATOM 2221 OE1 GLN A 384 -3.549 -47.635 30.099 1.00 60.09 O +ATOM 2222 NE2 GLN A 384 -2.053 -49.311 29.956 1.00 66.03 N +ATOM 2223 N ASN A 385 1.523 -44.866 30.051 1.00 53.34 N +ATOM 2224 CA ASN A 385 1.522 -43.647 29.258 1.00 50.72 C +ATOM 2225 C ASN A 385 0.733 -43.895 27.992 1.00 51.84 C +ATOM 2226 O ASN A 385 0.882 -44.941 27.355 1.00 51.03 O +ATOM 2227 CB ASN A 385 2.932 -43.232 28.861 1.00 53.35 C +ATOM 2228 CG ASN A 385 3.747 -42.869 30.027 1.00 54.75 C +ATOM 2229 OD1 ASN A 385 3.207 -42.439 31.044 1.00 56.19 O +ATOM 2230 ND2 ASN A 385 5.054 -43.074 29.926 1.00 55.00 N +ATOM 2231 N PHE A 386 -0.080 -42.914 27.616 1.00 54.65 N +ATOM 2232 CA PHE A 386 -0.965 -43.023 26.466 1.00 49.52 C +ATOM 2233 C PHE A 386 -1.206 -41.632 25.897 1.00 52.09 C +ATOM 2234 O PHE A 386 -1.223 -40.640 26.638 1.00 54.85 O +ATOM 2235 CB PHE A 386 -2.285 -43.682 26.868 1.00 51.74 C +ATOM 2236 CG PHE A 386 -3.400 -43.489 25.879 1.00 51.96 C +ATOM 2237 CD1 PHE A 386 -4.414 -42.571 26.126 1.00 52.65 C +ATOM 2238 CD2 PHE A 386 -3.460 -44.257 24.723 1.00 52.13 C +ATOM 2239 CE1 PHE A 386 -5.466 -42.408 25.219 1.00 53.39 C +ATOM 2240 CE2 PHE A 386 -4.494 -44.094 23.813 1.00 51.30 C +ATOM 2241 CZ PHE A 386 -5.502 -43.169 24.065 1.00 53.39 C +ATOM 2242 N ARG A 387 -1.348 -41.570 24.575 1.00 49.96 N +ATOM 2243 CA ARG A 387 -1.647 -40.347 23.847 1.00 51.47 C +ATOM 2244 C ARG A 387 -2.333 -40.709 22.548 1.00 51.18 C +ATOM 2245 O ARG A 387 -1.895 -41.647 21.877 1.00 49.92 O +ATOM 2246 CB ARG A 387 -0.383 -39.544 23.510 1.00 46.52 C +ATOM 2247 CG ARG A 387 -0.694 -38.108 23.048 1.00 45.77 C +ATOM 2248 CD ARG A 387 0.576 -37.275 22.771 1.00 46.95 C +ATOM 2249 NE ARG A 387 1.679 -38.000 22.132 1.00 47.37 N +ATOM 2250 CZ ARG A 387 2.858 -38.210 22.720 1.00 48.97 C +ATOM 2251 NH1 ARG A 387 3.068 -37.794 23.966 1.00 47.40 N +ATOM 2252 NH2 ARG A 387 3.835 -38.855 22.076 1.00 49.63 N +ATOM 2253 N TYR A 388 -3.376 -39.951 22.179 1.00 49.97 N +ATOM 2254 CA TYR A 388 -3.994 -40.069 20.864 1.00 51.54 C +ATOM 2255 C TYR A 388 -3.814 -38.757 20.091 1.00 51.89 C +ATOM 2256 O TYR A 388 -3.722 -37.673 20.684 1.00 51.56 O +ATOM 2257 CB TYR A 388 -5.489 -40.456 20.968 1.00 54.34 C +ATOM 2258 CG TYR A 388 -6.157 -40.589 19.608 1.00 55.41 C +ATOM 2259 CD1 TYR A 388 -6.047 -41.762 18.863 1.00 57.01 C +ATOM 2260 CD2 TYR A 388 -6.898 -39.539 19.063 1.00 58.59 C +ATOM 2261 CE1 TYR A 388 -6.651 -41.880 17.596 1.00 52.32 C +ATOM 2262 CE2 TYR A 388 -7.512 -39.649 17.789 1.00 58.02 C +ATOM 2263 CZ TYR A 388 -7.377 -40.822 17.061 1.00 53.73 C +ATOM 2264 OH TYR A 388 -7.974 -40.960 15.810 1.00 64.49 O +ATOM 2265 N LEU A 389 -3.686 -38.860 18.767 1.00 51.13 N +ATOM 2266 CA LEU A 389 -3.334 -37.720 17.932 1.00 53.27 C +ATOM 2267 C LEU A 389 -4.195 -37.727 16.693 1.00 52.40 C +ATOM 2268 O LEU A 389 -4.625 -38.786 16.237 1.00 50.81 O +ATOM 2269 CB LEU A 389 -1.861 -37.736 17.517 1.00 55.30 C +ATOM 2270 CG LEU A 389 -1.354 -36.854 16.367 1.00 48.16 C +ATOM 2271 CD1 LEU A 389 -1.205 -35.416 16.828 1.00 46.13 C +ATOM 2272 CD2 LEU A 389 0.006 -37.349 15.826 1.00 48.03 C +ATOM 2273 N ASP A 390 -4.457 -36.525 16.182 1.00 56.58 N +ATOM 2274 CA ASP A 390 -5.372 -36.302 15.066 1.00 57.62 C +ATOM 2275 C ASP A 390 -4.962 -34.987 14.423 1.00 61.01 C +ATOM 2276 O ASP A 390 -5.216 -33.916 14.994 1.00 62.83 O +ATOM 2277 CB ASP A 390 -6.830 -36.256 15.526 1.00 56.08 C +ATOM 2278 CG ASP A 390 -7.790 -36.143 14.371 1.00 62.94 C +ATOM 2279 OD1 ASP A 390 -7.601 -35.182 13.586 1.00 62.78 O +ATOM 2280 OD2 ASP A 390 -8.730 -36.983 14.277 1.00 66.78 O +ATOM 2281 N SER A 391 -4.358 -35.072 13.236 1.00 57.03 N +ATOM 2282 CA SER A 391 -3.754 -33.923 12.597 1.00 53.51 C +ATOM 2283 C SER A 391 -4.300 -33.780 11.194 1.00 59.17 C +ATOM 2284 O SER A 391 -4.375 -34.751 10.438 1.00 56.69 O +ATOM 2285 CB SER A 391 -2.264 -34.054 12.492 1.00 54.33 C +ATOM 2286 OG SER A 391 -1.985 -34.914 11.407 1.00 65.12 O +ATOM 2287 N ASP A 392 -4.635 -32.556 10.850 1.00 61.94 N +ATOM 2288 CA ASP A 392 -4.999 -32.182 9.503 1.00 55.71 C +ATOM 2289 C ASP A 392 -3.854 -31.370 8.951 1.00 60.02 C +ATOM 2290 O ASP A 392 -3.403 -30.424 9.605 1.00 61.47 O +ATOM 2291 CB ASP A 392 -6.284 -31.387 9.526 1.00 55.95 C +ATOM 2292 CG ASP A 392 -7.458 -32.276 9.479 1.00 66.83 C +ATOM 2293 OD1 ASP A 392 -7.508 -33.083 8.534 1.00 77.34 O +ATOM 2294 OD2 ASP A 392 -8.276 -32.241 10.413 1.00 76.01 O +ATOM 2295 N VAL A 393 -3.343 -31.782 7.797 1.00 60.51 N +ATOM 2296 CA VAL A 393 -2.321 -31.028 7.092 1.00 59.02 C +ATOM 2297 C VAL A 393 -2.883 -30.597 5.752 1.00 60.85 C +ATOM 2298 O VAL A 393 -3.842 -31.173 5.234 1.00 63.33 O +ATOM 2299 CB VAL A 393 -1.021 -31.816 6.914 1.00 59.50 C +ATOM 2300 CG1 VAL A 393 -0.038 -31.010 6.075 1.00 60.61 C +ATOM 2301 CG2 VAL A 393 -0.449 -32.138 8.276 1.00 61.93 C +ATOM 2302 N ASP A 394 -2.309 -29.525 5.206 1.00 66.86 N +ATOM 2303 CA ASP A 394 -2.993 -28.824 4.125 1.00 66.25 C +ATOM 2304 C ASP A 394 -2.008 -27.940 3.352 1.00 66.50 C +ATOM 2305 O ASP A 394 -1.652 -26.858 3.827 1.00 72.81 O +ATOM 2306 CB ASP A 394 -4.110 -28.025 4.742 1.00 68.73 C +ATOM 2307 CG ASP A 394 -5.266 -27.920 3.854 1.00 79.09 C +ATOM 2308 OD1 ASP A 394 -6.365 -28.319 4.301 1.00 81.76 O +ATOM 2309 OD2 ASP A 394 -5.068 -27.448 2.715 1.00 84.03 O +ATOM 2310 N LEU A 395 -1.595 -28.376 2.169 1.00 61.80 N +ATOM 2311 CA LEU A 395 -0.387 -27.840 1.558 1.00 66.66 C +ATOM 2312 C LEU A 395 -0.661 -27.331 0.157 1.00 69.29 C +ATOM 2313 O LEU A 395 -1.415 -27.940 -0.598 1.00 70.08 O +ATOM 2314 CB LEU A 395 0.716 -28.907 1.479 1.00 62.54 C +ATOM 2315 CG LEU A 395 2.104 -28.430 1.085 1.00 59.12 C +ATOM 2316 CD1 LEU A 395 2.761 -27.812 2.276 1.00 67.01 C +ATOM 2317 CD2 LEU A 395 2.904 -29.604 0.614 1.00 63.75 C +ATOM 2318 N SER A 396 -0.011 -26.225 -0.205 1.00 72.65 N +ATOM 2319 CA SER A 396 0.024 -25.820 -1.611 1.00 72.33 C +ATOM 2320 C SER A 396 1.302 -25.010 -1.816 1.00 77.30 C +ATOM 2321 O SER A 396 1.357 -23.830 -1.474 1.00 82.86 O +ATOM 2322 CB SER A 396 -1.184 -25.025 -1.991 1.00 77.65 C +ATOM 2323 OG SER A 396 -2.321 -25.820 -1.785 1.00 81.86 O +ATOM 2324 N GLN A 397 2.309 -25.657 -2.369 1.00 74.18 N +ATOM 2325 CA GLN A 397 3.606 -25.022 -2.487 1.00 77.35 C +ATOM 2326 C GLN A 397 4.014 -25.037 -3.952 1.00 78.98 C +ATOM 2327 O GLN A 397 3.974 -26.088 -4.605 1.00 75.68 O +ATOM 2328 CB GLN A 397 4.629 -25.712 -1.581 1.00 76.59 C +ATOM 2329 CG GLN A 397 5.767 -24.814 -1.159 1.00 78.57 C +ATOM 2330 CD GLN A 397 6.851 -25.594 -0.507 1.00 76.48 C +ATOM 2331 OE1 GLN A 397 6.814 -26.822 -0.511 1.00 73.49 O +ATOM 2332 NE2 GLN A 397 7.859 -24.900 0.014 1.00 79.45 N +ATOM 2333 N VAL A 398 4.345 -23.860 -4.474 1.00 81.72 N +ATOM 2334 CA VAL A 398 5.000 -23.713 -5.765 1.00 79.60 C +ATOM 2335 C VAL A 398 6.479 -23.540 -5.456 1.00 82.67 C +ATOM 2336 O VAL A 398 6.876 -22.548 -4.832 1.00 84.35 O +ATOM 2337 CB VAL A 398 4.470 -22.501 -6.532 1.00 81.48 C +ATOM 2338 CG1 VAL A 398 5.135 -22.438 -7.895 1.00 82.58 C +ATOM 2339 CG2 VAL A 398 2.949 -22.500 -6.582 1.00 82.23 C +ATOM 2340 N TYR A 399 7.313 -24.483 -5.871 1.00 81.32 N +ATOM 2341 CA TYR A 399 8.704 -24.445 -5.461 1.00 81.02 C +ATOM 2342 C TYR A 399 9.632 -24.457 -6.663 1.00 82.70 C +ATOM 2343 O TYR A 399 9.343 -25.063 -7.699 1.00 83.17 O +ATOM 2344 CB TYR A 399 9.037 -25.604 -4.532 1.00 78.77 C +ATOM 2345 CG TYR A 399 8.930 -26.960 -5.176 1.00 75.22 C +ATOM 2346 CD1 TYR A 399 10.063 -27.671 -5.510 1.00 78.95 C +ATOM 2347 CD2 TYR A 399 7.698 -27.540 -5.429 1.00 75.00 C +ATOM 2348 CE1 TYR A 399 9.984 -28.916 -6.086 1.00 78.45 C +ATOM 2349 CE2 TYR A 399 7.606 -28.792 -6.003 1.00 73.88 C +ATOM 2350 CZ TYR A 399 8.758 -29.474 -6.331 1.00 74.92 C +ATOM 2351 OH TYR A 399 8.698 -30.722 -6.904 1.00 73.05 O +ATOM 2352 N ALA A 400 10.753 -23.767 -6.502 1.00 84.15 N +ATOM 2353 CA ALA A 400 11.782 -23.725 -7.524 1.00 85.39 C +ATOM 2354 C ALA A 400 12.575 -25.020 -7.489 1.00 84.83 C +ATOM 2355 O ALA A 400 13.192 -25.341 -6.470 1.00 86.90 O +ATOM 2356 CB ALA A 400 12.699 -22.531 -7.285 1.00 88.03 C +ATOM 2357 N TYR A 401 12.580 -25.761 -8.602 1.00 88.28 N +ATOM 2358 CA TYR A 401 13.354 -27.006 -8.673 1.00 91.21 C +ATOM 2359 C TYR A 401 14.093 -27.041 -10.001 1.00 96.05 C +ATOM 2360 O TYR A 401 13.642 -27.666 -10.963 1.00101.33 O +ATOM 2361 CB TYR A 401 12.445 -28.219 -8.507 1.00 93.19 C +ATOM 2362 CG TYR A 401 13.059 -29.575 -8.824 1.00 96.40 C +ATOM 2363 CD1 TYR A 401 14.371 -29.873 -8.474 1.00 98.75 C +ATOM 2364 CD2 TYR A 401 12.277 -30.607 -9.332 1.00 98.69 C +ATOM 2365 CE1 TYR A 401 14.913 -31.134 -8.706 1.00 99.82 C +ATOM 2366 CE2 TYR A 401 12.807 -31.870 -9.559 1.00103.87 C +ATOM 2367 CZ TYR A 401 14.125 -32.127 -9.243 1.00103.05 C +ATOM 2368 OH TYR A 401 14.654 -33.378 -9.475 1.00106.41 O +ATOM 2369 N GLY A 402 15.266 -26.413 -10.023 1.00 95.73 N +ATOM 2370 CA GLY A 402 16.067 -26.386 -11.228 1.00 98.33 C +ATOM 2371 C GLY A 402 16.196 -25.034 -11.913 1.00103.91 C +ATOM 2372 O GLY A 402 15.447 -24.088 -11.645 1.00104.26 O +ATOM 2373 N TRP A 403 17.150 -24.946 -12.825 1.00101.78 N +ATOM 2374 CA TRP A 403 17.370 -23.756 -13.622 1.00104.40 C +ATOM 2375 C TRP A 403 16.735 -23.981 -14.983 1.00108.94 C +ATOM 2376 O TRP A 403 17.076 -24.950 -15.668 1.00112.28 O +ATOM 2377 CB TRP A 403 18.863 -23.493 -13.770 1.00111.70 C +ATOM 2378 CG TRP A 403 19.398 -22.559 -12.765 1.00111.93 C +ATOM 2379 CD1 TRP A 403 20.466 -22.765 -11.948 1.00109.90 C +ATOM 2380 CD2 TRP A 403 18.906 -21.251 -12.470 1.00113.34 C +ATOM 2381 NE1 TRP A 403 20.664 -21.668 -11.149 1.00112.86 N +ATOM 2382 CE2 TRP A 403 19.721 -20.721 -11.453 1.00115.34 C +ATOM 2383 CE3 TRP A 403 17.852 -20.476 -12.967 1.00114.27 C +ATOM 2384 CZ2 TRP A 403 19.515 -19.448 -10.918 1.00118.86 C +ATOM 2385 CZ3 TRP A 403 17.649 -19.207 -12.436 1.00116.34 C +ATOM 2386 CH2 TRP A 403 18.478 -18.709 -11.423 1.00117.02 C +ATOM 2387 N SER A 404 15.812 -23.102 -15.372 1.00111.02 N +ATOM 2388 CA SER A 404 15.211 -23.232 -16.694 1.00107.52 C +ATOM 2389 C SER A 404 16.300 -23.418 -17.733 1.00109.22 C +ATOM 2390 O SER A 404 17.106 -22.512 -17.950 1.00113.54 O +ATOM 2391 CB SER A 404 14.370 -22.015 -17.049 1.00112.66 C +ATOM 2392 OG SER A 404 13.680 -22.238 -18.265 1.00118.14 O +ATOM 2393 N ALA A 405 16.319 -24.572 -18.398 1.00110.03 N +ATOM 2394 CA ALA A 405 17.352 -24.827 -19.392 1.00110.85 C +ATOM 2395 C ALA A 405 17.343 -23.800 -20.500 1.00119.11 C +ATOM 2396 O ALA A 405 18.347 -23.669 -21.214 1.00121.32 O +ATOM 2397 CB ALA A 405 17.188 -26.211 -20.011 1.00106.93 C +ATOM 2398 N SER A 406 16.233 -23.092 -20.686 1.00124.48 N +ATOM 2399 CA SER A 406 16.198 -22.032 -21.681 1.00125.93 C +ATOM 2400 C SER A 406 16.316 -20.637 -21.080 1.00130.70 C +ATOM 2401 O SER A 406 17.265 -19.912 -21.385 1.00127.63 O +ATOM 2402 CB SER A 406 14.897 -22.157 -22.480 1.00121.02 C +ATOM 2403 OG SER A 406 13.799 -21.747 -21.688 1.00125.76 O +ATOM 2404 N GLU A 407 15.378 -20.258 -20.213 1.00136.41 N +ATOM 2405 CA GLU A 407 15.263 -18.853 -19.840 1.00136.61 C +ATOM 2406 C GLU A 407 16.417 -18.542 -18.881 1.00139.06 C +ATOM 2407 O GLU A 407 16.647 -19.309 -17.930 1.00132.99 O +ATOM 2408 CB GLU A 407 13.911 -18.569 -19.184 1.00135.65 C +ATOM 2409 CG GLU A 407 12.701 -19.074 -19.998 1.00133.11 C +ATOM 2410 CD GLU A 407 11.360 -18.676 -19.394 1.00134.52 C +ATOM 2411 OE1 GLU A 407 11.357 -17.850 -18.450 1.00133.12 O +ATOM 2412 OE2 GLU A 407 10.347 -19.348 -19.723 1.00132.45 O +ATOM 2413 N PRO A 408 17.177 -17.463 -19.092 1.00130.87 N +ATOM 2414 CA PRO A 408 18.488 -17.395 -18.423 1.00128.18 C +ATOM 2415 C PRO A 408 18.390 -17.310 -16.911 1.00125.85 C +ATOM 2416 O PRO A 408 19.026 -18.097 -16.201 1.00116.94 O +ATOM 2417 CB PRO A 408 19.106 -16.129 -19.034 1.00127.06 C +ATOM 2418 CG PRO A 408 18.367 -15.953 -20.341 1.00125.59 C +ATOM 2419 CD PRO A 408 16.959 -16.279 -19.936 1.00128.80 C +ATOM 2420 N ASN A 409 17.624 -16.357 -16.393 1.00129.28 N +ATOM 2421 CA ASN A 409 17.566 -16.165 -14.922 1.00121.86 C +ATOM 2422 C ASN A 409 16.219 -16.602 -14.354 1.00117.40 C +ATOM 2423 O ASN A 409 15.709 -15.933 -13.441 1.00115.12 O +ATOM 2424 CB ASN A 409 17.811 -14.709 -14.545 1.00124.65 C +ATOM 2425 CG ASN A 409 18.912 -14.081 -15.364 1.00127.82 C +ATOM 2426 OD1 ASN A 409 19.895 -14.738 -15.695 1.00126.11 O +ATOM 2427 ND2 ASN A 409 18.747 -12.814 -15.699 1.00126.75 N +ATOM 2428 N LYS A 410 15.643 -17.653 -14.916 1.00116.80 N +ATOM 2429 CA LYS A 410 14.380 -18.156 -14.383 1.00115.31 C +ATOM 2430 C LYS A 410 14.492 -19.615 -13.950 1.00108.10 C +ATOM 2431 O LYS A 410 15.164 -20.432 -14.592 1.00110.39 O +ATOM 2432 CB LYS A 410 13.215 -17.959 -15.395 1.00116.48 C +ATOM 2433 CG LYS A 410 12.553 -16.574 -15.214 1.00112.61 C +ATOM 2434 CD LYS A 410 11.638 -16.113 -16.347 1.00115.66 C +ATOM 2435 CE LYS A 410 10.834 -14.864 -15.942 1.00114.68 C +ATOM 2436 NZ LYS A 410 11.365 -13.590 -16.548 1.00114.96 N +ATOM 2437 N LEU A 411 13.851 -19.900 -12.824 1.00106.02 N +ATOM 2438 CA LEU A 411 13.899 -21.192 -12.158 1.00102.48 C +ATOM 2439 C LEU A 411 12.708 -22.009 -12.629 1.00101.63 C +ATOM 2440 O LEU A 411 11.560 -21.583 -12.453 1.00103.51 O +ATOM 2441 CB LEU A 411 13.812 -20.987 -10.647 1.00100.35 C +ATOM 2442 CG LEU A 411 14.912 -20.258 -9.878 1.00102.21 C +ATOM 2443 CD1 LEU A 411 14.478 -19.980 -8.433 1.00 97.91 C +ATOM 2444 CD2 LEU A 411 16.155 -21.116 -9.901 1.00103.82 C +ATOM 2445 N ASN A 412 12.952 -23.173 -13.214 1.00100.19 N +ATOM 2446 CA ASN A 412 11.803 -23.965 -13.632 1.00101.75 C +ATOM 2447 C ASN A 412 11.134 -24.521 -12.374 1.00 95.25 C +ATOM 2448 O ASN A 412 11.707 -25.326 -11.637 1.00 93.77 O +ATOM 2449 CB ASN A 412 12.204 -25.039 -14.648 1.00101.30 C +ATOM 2450 CG ASN A 412 13.066 -26.134 -14.061 1.00102.20 C +ATOM 2451 OD1 ASN A 412 13.705 -25.953 -13.027 1.00102.71 O +ATOM 2452 ND2 ASN A 412 13.096 -27.283 -14.732 1.00 99.70 N +ATOM 2453 N ARG A 413 9.946 -24.033 -12.087 1.00 90.75 N +ATOM 2454 CA ARG A 413 9.276 -24.362 -10.849 1.00 85.37 C +ATOM 2455 C ARG A 413 8.300 -25.504 -11.069 1.00 83.86 C +ATOM 2456 O ARG A 413 7.864 -25.790 -12.190 1.00 84.26 O +ATOM 2457 CB ARG A 413 8.544 -23.137 -10.317 1.00 88.91 C +ATOM 2458 CG ARG A 413 9.475 -22.070 -9.844 1.00 90.55 C +ATOM 2459 CD ARG A 413 8.672 -20.989 -9.206 1.00 92.15 C +ATOM 2460 NE ARG A 413 7.570 -20.578 -10.063 1.00 85.82 N +ATOM 2461 CZ ARG A 413 6.660 -19.687 -9.691 1.00 89.07 C +ATOM 2462 NH1 ARG A 413 6.722 -19.154 -8.478 1.00 88.42 N +ATOM 2463 NH2 ARG A 413 5.682 -19.337 -10.518 1.00 92.65 N +ATOM 2464 N TYR A 414 7.975 -26.169 -9.978 1.00 79.43 N +ATOM 2465 CA TYR A 414 6.925 -27.164 -9.951 1.00 76.04 C +ATOM 2466 C TYR A 414 5.951 -26.806 -8.841 1.00 76.71 C +ATOM 2467 O TYR A 414 6.189 -25.898 -8.036 1.00 77.66 O +ATOM 2468 CB TYR A 414 7.495 -28.562 -9.715 1.00 74.25 C +ATOM 2469 CG TYR A 414 8.151 -29.190 -10.915 1.00 81.04 C +ATOM 2470 CD1 TYR A 414 8.055 -30.553 -11.143 1.00 83.24 C +ATOM 2471 CD2 TYR A 414 8.868 -28.426 -11.820 1.00 89.05 C +ATOM 2472 CE1 TYR A 414 8.670 -31.138 -12.229 1.00 88.57 C +ATOM 2473 CE2 TYR A 414 9.474 -28.999 -12.911 1.00 91.18 C +ATOM 2474 CZ TYR A 414 9.374 -30.355 -13.108 1.00 92.00 C +ATOM 2475 OH TYR A 414 9.981 -30.929 -14.193 1.00 97.62 O +ATOM 2476 N PHE A 415 4.847 -27.545 -8.793 1.00 75.58 N +ATOM 2477 CA PHE A 415 3.827 -27.342 -7.779 1.00 75.04 C +ATOM 2478 C PHE A 415 3.511 -28.654 -7.090 1.00 73.00 C +ATOM 2479 O PHE A 415 3.392 -29.700 -7.733 1.00 69.58 O +ATOM 2480 CB PHE A 415 2.553 -26.780 -8.367 1.00 75.54 C +ATOM 2481 CG PHE A 415 1.390 -26.807 -7.415 1.00 75.25 C +ATOM 2482 CD1 PHE A 415 1.227 -25.804 -6.470 1.00 75.45 C +ATOM 2483 CD2 PHE A 415 0.455 -27.833 -7.469 1.00 73.80 C +ATOM 2484 CE1 PHE A 415 0.149 -25.818 -5.592 1.00 77.29 C +ATOM 2485 CE2 PHE A 415 -0.624 -27.853 -6.604 1.00 70.84 C +ATOM 2486 CZ PHE A 415 -0.777 -26.841 -5.658 1.00 75.06 C +ATOM 2487 N SER A 416 3.343 -28.585 -5.781 1.00 72.85 N +ATOM 2488 CA SER A 416 3.038 -29.765 -4.999 1.00 73.49 C +ATOM 2489 C SER A 416 1.928 -29.384 -4.033 1.00 70.05 C +ATOM 2490 O SER A 416 2.029 -28.358 -3.346 1.00 70.52 O +ATOM 2491 CB SER A 416 4.289 -30.270 -4.273 1.00 70.10 C +ATOM 2492 OG SER A 416 4.062 -31.566 -3.770 1.00 68.36 O +ATOM 2493 N GLY A 417 0.851 -30.160 -4.036 1.00 65.73 N +ATOM 2494 CA GLY A 417 -0.275 -29.924 -3.136 1.00 66.41 C +ATOM 2495 C GLY A 417 -0.723 -31.189 -2.476 1.00 63.43 C +ATOM 2496 O GLY A 417 -0.684 -32.278 -3.061 1.00 67.11 O +ATOM 2497 N ALA A 418 -1.176 -31.073 -1.224 1.00 62.51 N +ATOM 2498 CA ALA A 418 -1.558 -32.230 -0.433 1.00 63.42 C +ATOM 2499 C ALA A 418 -2.677 -31.858 0.529 1.00 61.94 C +ATOM 2500 O ALA A 418 -2.737 -30.729 1.029 1.00 61.10 O +ATOM 2501 CB ALA A 418 -0.366 -32.778 0.360 1.00 61.43 C +ATOM 2502 N ARG A 419 -3.568 -32.816 0.783 1.00 58.75 N +ATOM 2503 CA ARG A 419 -4.433 -32.782 1.957 1.00 58.07 C +ATOM 2504 C ARG A 419 -4.249 -34.103 2.683 1.00 58.11 C +ATOM 2505 O ARG A 419 -4.427 -35.169 2.083 1.00 58.75 O +ATOM 2506 CB ARG A 419 -5.901 -32.560 1.594 1.00 55.72 C +ATOM 2507 CG ARG A 419 -6.750 -32.383 2.845 1.00 70.67 C +ATOM 2508 CD ARG A 419 -8.222 -32.110 2.563 1.00 75.82 C +ATOM 2509 NE ARG A 419 -8.873 -33.249 1.917 1.00 85.58 N +ATOM 2510 CZ ARG A 419 -10.190 -33.449 1.897 1.00 93.79 C +ATOM 2511 NH1 ARG A 419 -11.000 -32.585 2.498 1.00 93.32 N +ATOM 2512 NH2 ARG A 419 -10.696 -34.513 1.277 1.00 95.06 N +ATOM 2513 N GLU A 420 -3.855 -34.040 3.949 1.00 54.43 N +ATOM 2514 CA GLU A 420 -3.532 -35.236 4.703 1.00 56.11 C +ATOM 2515 C GLU A 420 -4.314 -35.248 6.008 1.00 58.46 C +ATOM 2516 O GLU A 420 -4.589 -34.201 6.604 1.00 57.13 O +ATOM 2517 CB GLU A 420 -2.031 -35.346 5.011 1.00 58.82 C +ATOM 2518 CG GLU A 420 -1.085 -35.337 3.805 1.00 60.00 C +ATOM 2519 CD GLU A 420 0.419 -35.406 4.209 1.00 65.06 C +ATOM 2520 OE1 GLU A 420 0.828 -34.723 5.180 1.00 66.70 O +ATOM 2521 OE2 GLU A 420 1.201 -36.122 3.535 1.00 66.57 O +ATOM 2522 N HIS A 421 -4.678 -36.448 6.446 1.00 58.15 N +ATOM 2523 CA HIS A 421 -5.373 -36.641 7.713 1.00 55.86 C +ATOM 2524 C HIS A 421 -4.655 -37.770 8.437 1.00 55.69 C +ATOM 2525 O HIS A 421 -4.671 -38.918 7.978 1.00 54.75 O +ATOM 2526 CB HIS A 421 -6.853 -36.957 7.488 1.00 56.76 C +ATOM 2527 CG HIS A 421 -7.633 -37.198 8.748 1.00 63.35 C +ATOM 2528 ND1 HIS A 421 -7.417 -36.487 9.912 1.00 66.62 N +ATOM 2529 CD2 HIS A 421 -8.663 -38.041 9.009 1.00 66.79 C +ATOM 2530 CE1 HIS A 421 -8.263 -36.899 10.842 1.00 68.14 C +ATOM 2531 NE2 HIS A 421 -9.031 -37.841 10.319 1.00 70.67 N +ATOM 2532 N LEU A 422 -3.991 -37.446 9.534 1.00 53.82 N +ATOM 2533 CA LEU A 422 -3.229 -38.429 10.285 1.00 52.73 C +ATOM 2534 C LEU A 422 -3.985 -38.825 11.543 1.00 54.95 C +ATOM 2535 O LEU A 422 -4.651 -37.998 12.168 1.00 54.93 O +ATOM 2536 CB LEU A 422 -1.860 -37.878 10.663 1.00 55.11 C +ATOM 2537 CG LEU A 422 -1.015 -38.785 11.534 1.00 51.64 C +ATOM 2538 CD1 LEU A 422 -0.375 -39.838 10.675 1.00 51.13 C +ATOM 2539 CD2 LEU A 422 0.043 -37.947 12.223 1.00 59.25 C +ATOM 2540 N GLN A 423 -3.891 -40.097 11.905 1.00 54.44 N +ATOM 2541 CA GLN A 423 -4.463 -40.603 13.147 1.00 48.94 C +ATOM 2542 C GLN A 423 -3.514 -41.656 13.679 1.00 53.15 C +ATOM 2543 O GLN A 423 -2.988 -42.480 12.918 1.00 57.30 O +ATOM 2544 CB GLN A 423 -5.852 -41.218 12.943 1.00 50.30 C +ATOM 2545 CG GLN A 423 -7.008 -40.279 12.640 1.00 63.29 C +ATOM 2546 CD GLN A 423 -8.260 -41.051 12.256 1.00 75.26 C +ATOM 2547 OE1 GLN A 423 -8.238 -42.277 12.193 1.00 78.61 O +ATOM 2548 NE2 GLN A 423 -9.347 -40.332 11.980 1.00 80.21 N +ATOM 2549 N ALA A 424 -3.244 -41.581 14.970 1.00 53.30 N +ATOM 2550 CA ALA A 424 -2.327 -42.506 15.597 1.00 51.87 C +ATOM 2551 C ALA A 424 -2.633 -42.481 17.072 1.00 51.15 C +ATOM 2552 O ALA A 424 -3.131 -41.466 17.587 1.00 52.92 O +ATOM 2553 CB ALA A 424 -0.871 -42.126 15.335 1.00 49.26 C +ATOM 2554 N TYR A 425 -2.365 -43.612 17.739 1.00 45.57 N +ATOM 2555 CA TYR A 425 -2.350 -43.614 19.185 1.00 54.08 C +ATOM 2556 C TYR A 425 -1.161 -44.481 19.591 1.00 51.81 C +ATOM 2557 O TYR A 425 -0.687 -45.324 18.813 1.00 48.72 O +ATOM 2558 CB TYR A 425 -3.632 -44.187 19.784 1.00 57.59 C +ATOM 2559 CG TYR A 425 -3.700 -45.684 19.972 1.00 62.45 C +ATOM 2560 CD1 TYR A 425 -3.963 -46.572 18.938 1.00 79.18 C +ATOM 2561 CD2 TYR A 425 -3.661 -46.190 21.273 1.00 62.68 C +ATOM 2562 CE1 TYR A 425 -4.063 -47.959 19.195 1.00 95.39 C +ATOM 2563 CE2 TYR A 425 -3.772 -47.535 21.540 1.00 72.32 C +ATOM 2564 CZ TYR A 425 -3.974 -48.428 20.513 1.00 94.21 C +ATOM 2565 OH TYR A 425 -4.084 -49.775 20.828 1.00101.96 O +ATOM 2566 N ILE A 426 -0.661 -44.261 20.798 1.00 49.39 N +ATOM 2567 CA ILE A 426 0.468 -45.011 21.315 1.00 47.72 C +ATOM 2568 C ILE A 426 0.188 -45.208 22.800 1.00 45.94 C +ATOM 2569 O ILE A 426 -0.357 -44.308 23.449 1.00 45.97 O +ATOM 2570 CB ILE A 426 1.786 -44.248 21.039 1.00 49.23 C +ATOM 2571 CG1 ILE A 426 3.021 -44.925 21.655 1.00 48.07 C +ATOM 2572 CG2 ILE A 426 1.665 -42.770 21.425 1.00 50.07 C +ATOM 2573 CD1 ILE A 426 4.329 -44.485 20.974 1.00 45.25 C +ATOM 2574 N VAL A 427 0.454 -46.413 23.312 1.00 46.80 N +ATOM 2575 CA VAL A 427 0.323 -46.713 24.738 1.00 49.46 C +ATOM 2576 C VAL A 427 1.565 -47.473 25.199 1.00 47.56 C +ATOM 2577 O VAL A 427 2.144 -48.262 24.442 1.00 46.91 O +ATOM 2578 CB VAL A 427 -0.938 -47.531 25.041 1.00 50.88 C +ATOM 2579 CG1 VAL A 427 -0.880 -48.864 24.348 1.00 49.59 C +ATOM 2580 CG2 VAL A 427 -1.038 -47.765 26.533 1.00 52.49 C +ATOM 2581 N ASP A 428 1.989 -47.222 26.430 1.00 48.52 N +ATOM 2582 CA ASP A 428 3.181 -47.848 26.977 1.00 51.08 C +ATOM 2583 C ASP A 428 2.831 -48.435 28.336 1.00 49.07 C +ATOM 2584 O ASP A 428 2.530 -47.693 29.274 1.00 51.44 O +ATOM 2585 CB ASP A 428 4.310 -46.831 27.076 1.00 53.94 C +ATOM 2586 CG ASP A 428 5.623 -47.464 27.448 1.00 57.38 C +ATOM 2587 OD1 ASP A 428 5.632 -48.704 27.582 1.00 60.25 O +ATOM 2588 OD2 ASP A 428 6.643 -46.738 27.574 1.00 57.24 O +ATOM 2589 N ASN A 429 2.856 -49.756 28.462 1.00 49.29 N +ATOM 2590 CA ASN A 429 2.640 -50.381 29.756 1.00 53.43 C +ATOM 2591 C ASN A 429 3.968 -50.810 30.343 1.00 56.60 C +ATOM 2592 O ASN A 429 4.752 -51.497 29.676 1.00 55.92 O +ATOM 2593 CB ASN A 429 1.721 -51.580 29.647 1.00 55.87 C +ATOM 2594 CG ASN A 429 0.516 -51.287 28.834 1.00 56.73 C +ATOM 2595 OD1 ASN A 429 -0.474 -50.758 29.333 1.00 62.22 O +ATOM 2596 ND2 ASN A 429 0.591 -51.602 27.560 1.00 57.80 N +ATOM 2597 N MET A 430 4.202 -50.420 31.594 1.00 53.16 N +ATOM 2598 CA MET A 430 5.490 -50.576 32.248 1.00 56.35 C +ATOM 2599 C MET A 430 5.256 -51.177 33.618 1.00 62.87 C +ATOM 2600 O MET A 430 4.289 -50.822 34.296 1.00 63.42 O +ATOM 2601 CB MET A 430 6.233 -49.241 32.424 1.00 53.95 C +ATOM 2602 CG MET A 430 6.812 -48.652 31.154 1.00 57.53 C +ATOM 2603 SD MET A 430 7.277 -46.915 31.376 1.00 65.73 S +ATOM 2604 CE MET A 430 5.773 -46.113 30.814 1.00 59.81 C +ATOM 2605 N LEU A 431 6.155 -52.072 34.024 1.00 62.30 N +ATOM 2606 CA LEU A 431 6.141 -52.665 35.353 1.00 61.43 C +ATOM 2607 C LEU A 431 7.581 -52.774 35.830 1.00 67.10 C +ATOM 2608 O LEU A 431 8.403 -53.406 35.159 1.00 68.47 O +ATOM 2609 CB LEU A 431 5.456 -54.032 35.327 1.00 64.32 C +ATOM 2610 CG LEU A 431 5.392 -54.841 36.623 1.00 68.79 C +ATOM 2611 CD1 LEU A 431 4.336 -54.311 37.599 1.00 63.12 C +ATOM 2612 CD2 LEU A 431 5.137 -56.299 36.260 1.00 62.26 C +ATOM 2613 N GLN A 432 7.892 -52.145 36.971 1.00 66.21 N +ATOM 2614 CA GLN A 432 9.251 -52.081 37.498 1.00 65.14 C +ATOM 2615 C GLN A 432 9.313 -52.731 38.874 1.00 65.97 C +ATOM 2616 O GLN A 432 8.527 -52.393 39.770 1.00 66.44 O +ATOM 2617 CB GLN A 432 9.773 -50.630 37.562 1.00 64.89 C +ATOM 2618 CG GLN A 432 11.313 -50.540 37.465 1.00 64.84 C +ATOM 2619 CD GLN A 432 11.833 -49.161 37.072 1.00 65.19 C +ATOM 2620 OE1 GLN A 432 12.493 -49.007 36.036 1.00 67.66 O +ATOM 2621 NE2 GLN A 432 11.567 -48.161 37.906 1.00 62.15 N +ATOM 2622 N ALA A 433 10.237 -53.683 39.026 1.00 68.32 N +ATOM 2623 CA ALA A 433 10.553 -54.308 40.305 1.00 70.07 C +ATOM 2624 C ALA A 433 11.907 -53.811 40.791 1.00 68.55 C +ATOM 2625 O ALA A 433 12.890 -53.798 40.045 1.00 68.75 O +ATOM 2626 CB ALA A 433 10.575 -55.839 40.206 1.00 69.10 C +ATOM 2627 N GLU A 434 11.949 -53.420 42.053 1.00 70.80 N +ATOM 2628 CA GLU A 434 13.123 -52.827 42.682 1.00 69.97 C +ATOM 2629 C GLU A 434 13.454 -53.582 43.957 1.00 67.55 C +ATOM 2630 O GLU A 434 12.664 -53.562 44.904 1.00 70.91 O +ATOM 2631 CB GLU A 434 12.902 -51.341 42.941 1.00 71.32 C +ATOM 2632 CG GLU A 434 13.930 -50.745 43.870 1.00 82.14 C +ATOM 2633 CD GLU A 434 15.367 -50.975 43.436 1.00 88.07 C +ATOM 2634 OE1 GLU A 434 15.608 -51.206 42.223 1.00 86.18 O +ATOM 2635 OE2 GLU A 434 16.252 -50.940 44.340 1.00 85.45 O +ATOM 2636 N PHE A 435 14.617 -54.249 43.961 1.00 65.53 N +ATOM 2637 CA PHE A 435 14.957 -55.245 44.971 1.00 68.00 C +ATOM 2638 C PHE A 435 16.464 -55.501 44.977 1.00 66.93 C +ATOM 2639 O PHE A 435 17.201 -55.054 44.093 1.00 71.08 O +ATOM 2640 CB PHE A 435 14.170 -56.545 44.736 1.00 70.50 C +ATOM 2641 CG PHE A 435 14.516 -57.251 43.456 1.00 68.28 C +ATOM 2642 CD1 PHE A 435 15.329 -58.371 43.476 1.00 69.35 C +ATOM 2643 CD2 PHE A 435 14.032 -56.797 42.238 1.00 67.54 C +ATOM 2644 CE1 PHE A 435 15.649 -59.024 42.311 1.00 67.95 C +ATOM 2645 CE2 PHE A 435 14.353 -57.443 41.063 1.00 62.94 C +ATOM 2646 CZ PHE A 435 15.166 -58.557 41.100 1.00 64.23 C +ATOM 2647 N ALA A 436 16.909 -56.239 45.993 1.00 67.46 N +ATOM 2648 CA ALA A 436 18.308 -56.558 46.205 1.00 68.68 C +ATOM 2649 C ALA A 436 18.461 -58.062 46.369 1.00 70.23 C +ATOM 2650 O ALA A 436 17.670 -58.707 47.068 1.00 72.33 O +ATOM 2651 CB ALA A 436 18.859 -55.857 47.460 1.00 68.65 C +ATOM 2652 N THR A 437 19.499 -58.612 45.747 1.00 70.60 N +ATOM 2653 CA THR A 437 19.925 -59.992 45.973 1.00 71.84 C +ATOM 2654 C THR A 437 21.375 -59.940 46.444 1.00 72.21 C +ATOM 2655 O THR A 437 22.286 -59.725 45.643 1.00 70.99 O +ATOM 2656 CB THR A 437 19.735 -60.825 44.709 1.00 71.36 C +ATOM 2657 OG1 THR A 437 20.669 -60.399 43.702 1.00 73.14 O +ATOM 2658 CG2 THR A 437 18.297 -60.692 44.197 1.00 72.82 C +ATOM 2659 N GLY A 438 21.591 -60.084 47.749 1.00 74.46 N +ATOM 2660 CA GLY A 438 22.944 -59.876 48.226 1.00 74.74 C +ATOM 2661 C GLY A 438 23.421 -58.514 47.771 1.00 79.11 C +ATOM 2662 O GLY A 438 22.635 -57.569 47.634 1.00 78.47 O +ATOM 2663 N ALA A 439 24.716 -58.420 47.459 1.00 83.74 N +ATOM 2664 CA ALA A 439 25.313 -57.127 47.120 1.00 81.05 C +ATOM 2665 C ALA A 439 24.694 -56.508 45.884 1.00 77.90 C +ATOM 2666 O ALA A 439 24.825 -55.295 45.672 1.00 80.29 O +ATOM 2667 CB ALA A 439 26.810 -57.270 46.864 1.00 82.71 C +ATOM 2668 N ALA A 440 24.078 -57.328 45.044 1.00 77.41 N +ATOM 2669 CA ALA A 440 23.485 -56.849 43.816 1.00 72.77 C +ATOM 2670 C ALA A 440 22.201 -56.121 44.145 1.00 74.67 C +ATOM 2671 O ALA A 440 21.590 -56.342 45.196 1.00 79.22 O +ATOM 2672 CB ALA A 440 23.240 -58.006 42.849 1.00 71.54 C +ATOM 2673 N ARG A 441 21.958 -55.040 43.404 1.00 76.98 N +ATOM 2674 CA ARG A 441 20.793 -54.128 43.570 1.00 74.70 C +ATOM 2675 C ARG A 441 20.210 -53.917 42.176 1.00 69.55 C +ATOM 2676 O ARG A 441 20.839 -53.269 41.383 1.00 70.20 O +ATOM 2677 CB ARG A 441 21.271 -52.814 44.181 1.00 79.24 C +ATOM 2678 CG ARG A 441 20.411 -52.270 45.307 1.00 83.16 C +ATOM 2679 CD ARG A 441 21.231 -51.495 46.321 1.00 89.40 C +ATOM 2680 NE ARG A 441 20.488 -50.317 46.744 1.00102.66 N +ATOM 2681 CZ ARG A 441 20.869 -49.446 47.672 1.00106.45 C +ATOM 2682 NH1 ARG A 441 22.012 -49.609 48.313 1.00101.99 N +ATOM 2683 NH2 ARG A 441 20.102 -48.411 47.964 1.00102.06 N +ATOM 2684 N HIS A 442 19.001 -54.402 41.945 1.00 72.72 N +ATOM 2685 CA HIS A 442 18.433 -54.509 40.597 1.00 70.55 C +ATOM 2686 C HIS A 442 17.273 -53.539 40.377 1.00 67.86 C +ATOM 2687 O HIS A 442 16.322 -53.533 41.165 1.00 67.71 O +ATOM 2688 CB HIS A 442 17.850 -55.903 40.333 1.00 65.35 C +ATOM 2689 CG HIS A 442 18.783 -57.052 40.538 1.00 65.72 C +ATOM 2690 ND1 HIS A 442 19.292 -57.778 39.485 1.00 65.78 N +ATOM 2691 CD2 HIS A 442 19.239 -57.651 41.666 1.00 67.52 C +ATOM 2692 CE1 HIS A 442 20.042 -58.761 39.954 1.00 73.85 C +ATOM 2693 NE2 HIS A 442 20.032 -58.703 41.274 1.00 69.88 N +ATOM 2694 N THR A 443 17.279 -52.823 39.249 1.00 68.64 N +ATOM 2695 CA THR A 443 16.145 -51.981 38.839 1.00 64.58 C +ATOM 2696 C THR A 443 15.536 -52.590 37.572 1.00 62.15 C +ATOM 2697 O THR A 443 15.770 -52.130 36.447 1.00 63.39 O +ATOM 2698 CB THR A 443 16.584 -50.538 38.569 1.00 68.56 C +ATOM 2699 OG1 THR A 443 17.451 -50.072 39.611 1.00 74.13 O +ATOM 2700 CG2 THR A 443 15.365 -49.649 38.516 1.00 63.29 C +ATOM 2701 N LEU A 444 14.686 -53.588 37.766 1.00 63.34 N +ATOM 2702 CA LEU A 444 14.222 -54.409 36.655 1.00 64.45 C +ATOM 2703 C LEU A 444 12.950 -53.842 36.031 1.00 62.28 C +ATOM 2704 O LEU A 444 11.981 -53.562 36.737 1.00 64.44 O +ATOM 2705 CB LEU A 444 13.967 -55.826 37.145 1.00 56.93 C +ATOM 2706 CG LEU A 444 13.950 -56.812 35.996 1.00 56.16 C +ATOM 2707 CD1 LEU A 444 14.073 -58.183 36.605 1.00 64.00 C +ATOM 2708 CD2 LEU A 444 12.695 -56.674 35.138 1.00 61.22 C +ATOM 2709 N LEU A 445 12.926 -53.723 34.706 1.00 59.46 N +ATOM 2710 CA LEU A 445 11.800 -53.112 34.010 1.00 59.04 C +ATOM 2711 C LEU A 445 11.327 -54.036 32.901 1.00 59.06 C +ATOM 2712 O LEU A 445 12.149 -54.586 32.160 1.00 61.58 O +ATOM 2713 CB LEU A 445 12.191 -51.736 33.448 1.00 62.00 C +ATOM 2714 CG LEU A 445 11.366 -51.084 32.339 1.00 59.83 C +ATOM 2715 CD1 LEU A 445 9.922 -50.831 32.768 1.00 57.75 C +ATOM 2716 CD2 LEU A 445 12.051 -49.786 31.878 1.00 59.15 C +ATOM 2717 N THR A 446 10.008 -54.217 32.801 1.00 61.13 N +ATOM 2718 CA THR A 446 9.380 -54.954 31.708 1.00 64.21 C +ATOM 2719 C THR A 446 8.266 -54.104 31.121 1.00 63.91 C +ATOM 2720 O THR A 446 7.548 -53.406 31.846 1.00 64.11 O +ATOM 2721 CB THR A 446 8.777 -56.277 32.154 1.00 60.56 C +ATOM 2722 OG1 THR A 446 7.641 -56.005 32.976 1.00 66.07 O +ATOM 2723 CG2 THR A 446 9.766 -57.032 32.989 1.00 60.38 C +ATOM 2724 N GLY A 447 8.102 -54.189 29.814 1.00 61.93 N +ATOM 2725 CA GLY A 447 7.297 -53.220 29.104 1.00 58.90 C +ATOM 2726 C GLY A 447 6.542 -53.861 27.968 1.00 57.18 C +ATOM 2727 O GLY A 447 6.900 -54.928 27.462 1.00 57.90 O +ATOM 2728 N LEU A 448 5.476 -53.188 27.582 1.00 54.71 N +ATOM 2729 CA LEU A 448 4.713 -53.565 26.422 1.00 52.15 C +ATOM 2730 C LEU A 448 4.102 -52.291 25.878 1.00 53.34 C +ATOM 2731 O LEU A 448 3.373 -51.604 26.606 1.00 52.94 O +ATOM 2732 CB LEU A 448 3.638 -54.556 26.816 1.00 52.26 C +ATOM 2733 CG LEU A 448 2.744 -54.901 25.657 1.00 55.38 C +ATOM 2734 CD1 LEU A 448 3.579 -55.637 24.645 1.00 56.38 C +ATOM 2735 CD2 LEU A 448 1.642 -55.762 26.208 1.00 55.29 C +ATOM 2736 N ASP A 449 4.393 -51.971 24.618 1.00 50.53 N +ATOM 2737 CA ASP A 449 3.846 -50.763 24.034 1.00 50.01 C +ATOM 2738 C ASP A 449 3.306 -51.087 22.651 1.00 51.32 C +ATOM 2739 O ASP A 449 3.702 -52.078 22.023 1.00 52.05 O +ATOM 2740 CB ASP A 449 4.897 -49.666 23.950 1.00 50.56 C +ATOM 2741 CG ASP A 449 6.115 -50.102 23.177 1.00 54.75 C +ATOM 2742 OD1 ASP A 449 6.026 -51.161 22.507 1.00 59.38 O +ATOM 2743 OD2 ASP A 449 7.151 -49.386 23.232 1.00 54.47 O +ATOM 2744 N TYR A 450 2.415 -50.224 22.166 1.00 48.56 N +ATOM 2745 CA TYR A 450 1.772 -50.451 20.882 1.00 47.84 C +ATOM 2746 C TYR A 450 1.713 -49.136 20.121 1.00 47.32 C +ATOM 2747 O TYR A 450 1.714 -48.062 20.722 1.00 45.40 O +ATOM 2748 CB TYR A 450 0.358 -51.043 21.089 1.00 48.95 C +ATOM 2749 CG TYR A 450 -0.356 -51.409 19.796 1.00 55.53 C +ATOM 2750 CD1 TYR A 450 0.074 -52.479 19.013 1.00 56.91 C +ATOM 2751 CD2 TYR A 450 -1.474 -50.700 19.370 1.00 57.57 C +ATOM 2752 CE1 TYR A 450 -0.579 -52.810 17.831 1.00 61.66 C +ATOM 2753 CE2 TYR A 450 -2.135 -51.026 18.182 1.00 58.19 C +ATOM 2754 CZ TYR A 450 -1.687 -52.080 17.421 1.00 63.05 C +ATOM 2755 OH TYR A 450 -2.355 -52.389 16.250 1.00 71.85 O +ATOM 2756 N GLN A 451 1.647 -49.230 18.790 1.00 52.26 N +ATOM 2757 CA GLN A 451 1.322 -48.078 17.952 1.00 49.43 C +ATOM 2758 C GLN A 451 0.472 -48.495 16.759 1.00 50.83 C +ATOM 2759 O GLN A 451 0.854 -49.402 16.017 1.00 53.42 O +ATOM 2760 CB GLN A 451 2.566 -47.373 17.406 1.00 48.44 C +ATOM 2761 CG GLN A 451 3.773 -47.256 18.309 1.00 45.46 C +ATOM 2762 CD GLN A 451 4.977 -46.726 17.521 1.00 48.01 C +ATOM 2763 OE1 GLN A 451 4.899 -46.549 16.303 1.00 55.87 O +ATOM 2764 NE2 GLN A 451 6.056 -46.406 18.210 1.00 46.50 N +ATOM 2765 N ARG A 452 -0.630 -47.776 16.537 1.00 50.52 N +ATOM 2766 CA ARG A 452 -1.378 -47.831 15.288 1.00 53.58 C +ATOM 2767 C ARG A 452 -1.240 -46.431 14.685 1.00 48.69 C +ATOM 2768 O ARG A 452 -1.160 -45.453 15.433 1.00 50.38 O +ATOM 2769 CB ARG A 452 -2.910 -48.261 15.542 1.00 58.13 C +ATOM 2770 CG ARG A 452 -3.819 -48.660 14.264 1.00 66.61 C +ATOM 2771 CD ARG A 452 -5.371 -49.060 14.427 1.00 81.58 C +ATOM 2772 NE ARG A 452 -5.748 -50.295 15.127 1.00 89.70 N +ATOM 2773 CZ ARG A 452 -5.839 -51.521 14.606 1.00 93.15 C +ATOM 2774 NH1 ARG A 452 -5.540 -51.793 13.337 1.00 85.07 N +ATOM 2775 NH2 ARG A 452 -6.225 -52.505 15.413 1.00 96.35 N +ATOM 2776 N ARG A 453 -1.108 -46.322 13.360 1.00 48.13 N +ATOM 2777 CA ARG A 453 -1.109 -45.030 12.672 1.00 46.67 C +ATOM 2778 C ARG A 453 -1.750 -45.183 11.302 1.00 48.28 C +ATOM 2779 O ARG A 453 -1.280 -46.016 10.523 1.00 53.72 O +ATOM 2780 CB ARG A 453 0.296 -44.498 12.472 1.00 49.74 C +ATOM 2781 CG ARG A 453 0.277 -43.175 11.756 1.00 52.26 C +ATOM 2782 CD ARG A 453 1.672 -42.645 11.592 1.00 50.20 C +ATOM 2783 NE ARG A 453 2.483 -43.589 10.844 1.00 55.98 N +ATOM 2784 CZ ARG A 453 3.788 -43.470 10.635 1.00 61.59 C +ATOM 2785 NH1 ARG A 453 4.481 -42.474 11.184 1.00 66.03 N +ATOM 2786 NH2 ARG A 453 4.407 -44.395 9.920 1.00 60.74 N +ATOM 2787 N ARG A 454 -2.799 -44.387 11.000 1.00 46.09 N +ATOM 2788 CA ARG A 454 -3.391 -44.258 9.662 1.00 50.16 C +ATOM 2789 C ARG A 454 -3.053 -42.862 9.129 1.00 51.10 C +ATOM 2790 O ARG A 454 -3.191 -41.868 9.848 1.00 50.19 O +ATOM 2791 CB ARG A 454 -4.919 -44.475 9.693 1.00 48.08 C +ATOM 2792 CG ARG A 454 -5.498 -45.219 8.479 1.00 53.42 C +ATOM 2793 CD ARG A 454 -7.054 -45.086 8.282 1.00 53.71 C +ATOM 2794 NE ARG A 454 -7.536 -46.003 7.235 1.00 65.67 N +ATOM 2795 CZ ARG A 454 -8.612 -45.790 6.471 1.00 75.06 C +ATOM 2796 NH1 ARG A 454 -9.319 -44.672 6.637 1.00 76.48 N +ATOM 2797 NH2 ARG A 454 -8.975 -46.679 5.527 1.00 70.74 N +ATOM 2798 N THR A 455 -2.536 -42.787 7.909 1.00 48.39 N +ATOM 2799 CA THR A 455 -2.293 -41.513 7.238 1.00 46.41 C +ATOM 2800 C THR A 455 -3.024 -41.597 5.914 1.00 51.44 C +ATOM 2801 O THR A 455 -2.665 -42.412 5.060 1.00 51.67 O +ATOM 2802 CB THR A 455 -0.805 -41.273 7.033 1.00 48.74 C +ATOM 2803 OG1 THR A 455 -0.108 -41.666 8.217 1.00 55.76 O +ATOM 2804 CG2 THR A 455 -0.543 -39.817 6.763 1.00 51.86 C +ATOM 2805 N VAL A 456 -4.085 -40.816 5.769 1.00 51.79 N +ATOM 2806 CA VAL A 456 -4.813 -40.726 4.515 1.00 51.53 C +ATOM 2807 C VAL A 456 -4.308 -39.501 3.778 1.00 56.10 C +ATOM 2808 O VAL A 456 -4.580 -38.363 4.182 1.00 57.18 O +ATOM 2809 CB VAL A 456 -6.321 -40.617 4.737 1.00 51.99 C +ATOM 2810 CG1 VAL A 456 -6.959 -40.175 3.444 1.00 51.85 C +ATOM 2811 CG2 VAL A 456 -6.880 -41.932 5.210 1.00 55.59 C +ATOM 2812 N VAL A 457 -3.600 -39.717 2.690 1.00 56.97 N +ATOM 2813 CA VAL A 457 -3.036 -38.623 1.926 1.00 57.29 C +ATOM 2814 C VAL A 457 -3.718 -38.613 0.571 1.00 58.05 C +ATOM 2815 O VAL A 457 -4.014 -39.677 0.014 1.00 57.51 O +ATOM 2816 CB VAL A 457 -1.523 -38.792 1.752 1.00 53.41 C +ATOM 2817 CG1 VAL A 457 -0.852 -38.771 3.099 1.00 54.80 C +ATOM 2818 CG2 VAL A 457 -1.273 -40.079 1.023 1.00 54.05 C +ATOM 2819 N ASP A 458 -4.002 -37.410 0.069 1.00 56.54 N +ATOM 2820 CA ASP A 458 -4.363 -37.177 -1.329 1.00 61.79 C +ATOM 2821 C ASP A 458 -3.409 -36.098 -1.822 1.00 61.62 C +ATOM 2822 O ASP A 458 -3.396 -34.981 -1.293 1.00 61.37 O +ATOM 2823 CB ASP A 458 -5.818 -36.767 -1.462 1.00 65.57 C +ATOM 2824 CG ASP A 458 -6.758 -37.834 -0.928 1.00 70.71 C +ATOM 2825 OD1 ASP A 458 -7.300 -37.629 0.177 1.00 74.73 O +ATOM 2826 OD2 ASP A 458 -6.971 -38.864 -1.615 1.00 71.59 O +ATOM 2827 N TRP A 459 -2.565 -36.463 -2.779 1.00 60.12 N +ATOM 2828 CA TRP A 459 -1.489 -35.615 -3.268 1.00 58.07 C +ATOM 2829 C TRP A 459 -1.746 -35.191 -4.709 1.00 64.65 C +ATOM 2830 O TRP A 459 -2.168 -36.006 -5.542 1.00 63.11 O +ATOM 2831 CB TRP A 459 -0.159 -36.358 -3.191 1.00 56.89 C +ATOM 2832 CG TRP A 459 0.338 -36.660 -1.806 1.00 58.74 C +ATOM 2833 CD1 TRP A 459 0.158 -35.908 -0.673 1.00 60.75 C +ATOM 2834 CD2 TRP A 459 1.141 -37.779 -1.417 1.00 59.97 C +ATOM 2835 NE1 TRP A 459 0.786 -36.505 0.402 1.00 60.88 N +ATOM 2836 CE2 TRP A 459 1.401 -37.651 -0.031 1.00 62.91 C +ATOM 2837 CE3 TRP A 459 1.666 -38.884 -2.106 1.00 62.30 C +ATOM 2838 CZ2 TRP A 459 2.161 -38.586 0.675 1.00 63.59 C +ATOM 2839 CZ3 TRP A 459 2.419 -39.810 -1.403 1.00 60.58 C +ATOM 2840 CH2 TRP A 459 2.660 -39.654 -0.027 1.00 58.34 C +ATOM 2841 N ARG A 460 -1.478 -33.915 -5.002 1.00 62.14 N +ATOM 2842 CA ARG A 460 -1.494 -33.407 -6.365 1.00 66.09 C +ATOM 2843 C ARG A 460 -0.162 -32.758 -6.695 1.00 68.37 C +ATOM 2844 O ARG A 460 0.549 -32.278 -5.808 1.00 65.16 O +ATOM 2845 CB ARG A 460 -2.627 -32.403 -6.614 1.00 71.71 C +ATOM 2846 CG ARG A 460 -3.963 -33.086 -6.839 1.00 71.33 C +ATOM 2847 CD ARG A 460 -4.647 -33.299 -5.520 1.00 74.09 C +ATOM 2848 NE ARG A 460 -5.978 -33.874 -5.656 1.00 79.04 N +ATOM 2849 CZ ARG A 460 -6.260 -35.172 -5.500 1.00 79.25 C +ATOM 2850 NH1 ARG A 460 -5.315 -36.058 -5.175 1.00 73.94 N +ATOM 2851 NH2 ARG A 460 -7.519 -35.590 -5.627 1.00 84.72 N +ATOM 2852 N SER A 461 0.167 -32.744 -7.984 1.00 70.91 N +ATOM 2853 CA SER A 461 1.420 -32.157 -8.424 1.00 70.70 C +ATOM 2854 C SER A 461 1.243 -31.597 -9.822 1.00 73.03 C +ATOM 2855 O SER A 461 0.260 -31.883 -10.514 1.00 75.53 O +ATOM 2856 CB SER A 461 2.539 -33.188 -8.419 1.00 70.14 C +ATOM 2857 OG SER A 461 2.132 -34.307 -9.183 1.00 75.63 O +ATOM 2858 N GLY A 462 2.219 -30.806 -10.242 1.00 72.69 N +ATOM 2859 CA GLY A 462 2.181 -30.254 -11.586 1.00 74.72 C +ATOM 2860 C GLY A 462 3.335 -29.303 -11.806 1.00 76.87 C +ATOM 2861 O GLY A 462 4.104 -28.990 -10.889 1.00 79.26 O +ATOM 2862 N SER A 463 3.452 -28.850 -13.046 1.00 79.76 N +ATOM 2863 CA SER A 463 4.505 -27.918 -13.401 1.00 80.67 C +ATOM 2864 C SER A 463 3.978 -26.496 -13.324 1.00 81.30 C +ATOM 2865 O SER A 463 2.846 -26.209 -13.729 1.00 78.43 O +ATOM 2866 CB SER A 463 5.044 -28.203 -14.797 1.00 77.36 C +ATOM 2867 OG SER A 463 3.975 -28.348 -15.706 1.00 87.67 O +ATOM 2868 N ALA A 464 4.808 -25.613 -12.785 1.00 85.21 N +ATOM 2869 CA ALA A 464 4.479 -24.211 -12.615 1.00 85.77 C +ATOM 2870 C ALA A 464 5.306 -23.360 -13.566 1.00 89.99 C +ATOM 2871 O ALA A 464 6.307 -23.813 -14.135 1.00 89.60 O +ATOM 2872 CB ALA A 464 4.735 -23.768 -11.176 1.00 86.96 C +ATOM 2873 N SER A 465 4.880 -22.108 -13.726 1.00 91.83 N +ATOM 2874 CA SER A 465 5.649 -21.180 -14.542 1.00 91.41 C +ATOM 2875 C SER A 465 7.048 -21.009 -13.963 1.00 95.52 C +ATOM 2876 O SER A 465 7.252 -21.026 -12.743 1.00 97.03 O +ATOM 2877 CB SER A 465 4.940 -19.822 -14.658 1.00 89.55 C +ATOM 2878 OG SER A 465 4.640 -19.240 -13.401 1.00 90.07 O +ATOM 2879 N ALA A 466 8.022 -20.893 -14.855 1.00 96.68 N +ATOM 2880 CA ALA A 466 9.360 -20.561 -14.416 1.00 95.59 C +ATOM 2881 C ALA A 466 9.331 -19.192 -13.765 1.00 94.24 C +ATOM 2882 O ALA A 466 8.754 -18.239 -14.299 1.00 94.36 O +ATOM 2883 CB ALA A 466 10.331 -20.584 -15.592 1.00104.67 C +ATOM 2884 N LEU A 467 9.914 -19.118 -12.587 1.00100.51 N +ATOM 2885 CA LEU A 467 10.061 -17.878 -11.856 1.00102.31 C +ATOM 2886 C LEU A 467 11.491 -17.398 -12.034 1.00105.59 C +ATOM 2887 O LEU A 467 12.426 -18.204 -12.077 1.00107.37 O +ATOM 2888 CB LEU A 467 9.731 -18.084 -10.373 1.00101.83 C +ATOM 2889 CG LEU A 467 9.683 -16.824 -9.514 1.00102.75 C +ATOM 2890 CD1 LEU A 467 8.385 -16.064 -9.751 1.00105.19 C +ATOM 2891 CD2 LEU A 467 9.861 -17.190 -8.055 1.00 98.89 C +ATOM 2892 N ASP A 468 11.645 -16.089 -12.185 1.00107.90 N +ATOM 2893 CA ASP A 468 12.953 -15.459 -12.275 1.00110.66 C +ATOM 2894 C ASP A 468 13.589 -15.264 -10.900 1.00115.00 C +ATOM 2895 O ASP A 468 12.952 -14.750 -9.975 1.00115.44 O +ATOM 2896 CB ASP A 468 12.801 -14.148 -13.041 1.00118.90 C +ATOM 2897 CG ASP A 468 14.065 -13.334 -13.082 1.00125.39 C +ATOM 2898 OD1 ASP A 468 15.097 -13.768 -13.644 1.00128.41 O +ATOM 2899 OD2 ASP A 468 13.973 -12.167 -12.663 1.00127.69 O +ATOM 2900 N ALA A 469 14.853 -15.707 -10.780 1.00119.59 N +ATOM 2901 CA ALA A 469 15.563 -15.778 -9.497 1.00114.98 C +ATOM 2902 C ALA A 469 15.806 -14.398 -8.902 1.00116.46 C +ATOM 2903 O ALA A 469 15.812 -14.232 -7.672 1.00114.06 O +ATOM 2904 CB ALA A 469 16.903 -16.502 -9.675 1.00110.78 C +ATOM 2905 N PHE A 470 16.036 -13.405 -9.763 1.00118.00 N +ATOM 2906 CA PHE A 470 16.474 -12.075 -9.379 1.00115.53 C +ATOM 2907 C PHE A 470 15.487 -11.112 -10.004 1.00118.43 C +ATOM 2908 O PHE A 470 15.359 -11.099 -11.234 1.00121.18 O +ATOM 2909 CB PHE A 470 17.737 -11.670 -10.094 1.00117.00 C +ATOM 2910 CG PHE A 470 18.746 -12.729 -10.190 1.00115.52 C +ATOM 2911 CD1 PHE A 470 19.635 -13.022 -9.203 1.00119.83 C +ATOM 2912 CD2 PHE A 470 18.793 -13.446 -11.380 1.00118.47 C +ATOM 2913 CE1 PHE A 470 20.558 -14.033 -9.396 1.00123.49 C +ATOM 2914 CE2 PHE A 470 19.694 -14.429 -11.577 1.00121.89 C +ATOM 2915 CZ PHE A 470 20.582 -14.734 -10.592 1.00123.10 C +ATOM 2916 N ASN A 471 14.908 -10.209 -9.233 1.00118.93 N +ATOM 2917 CA ASN A 471 13.888 -9.409 -9.930 1.00121.04 C +ATOM 2918 C ASN A 471 12.757 -10.334 -10.380 1.00120.01 C +ATOM 2919 O ASN A 471 12.459 -10.401 -11.576 1.00122.96 O +ATOM 2920 CB ASN A 471 14.464 -8.629 -11.147 1.00117.21 C +ATOM 2921 CG ASN A 471 15.700 -7.762 -10.804 1.00118.05 C +ATOM 2922 OD1 ASN A 471 15.595 -6.838 -10.000 1.00118.19 O +ATOM 2923 ND2 ASN A 471 16.829 -7.984 -11.504 1.00118.81 N +ATOM 2924 N PRO A 472 12.117 -11.066 -9.472 1.00116.36 N +ATOM 2925 CA PRO A 472 11.028 -11.966 -9.870 1.00114.88 C +ATOM 2926 C PRO A 472 9.720 -11.217 -10.063 1.00113.57 C +ATOM 2927 O PRO A 472 9.592 -10.042 -9.729 1.00116.90 O +ATOM 2928 CB PRO A 472 10.934 -12.941 -8.690 1.00114.17 C +ATOM 2929 CG PRO A 472 11.368 -12.115 -7.516 1.00116.30 C +ATOM 2930 CD PRO A 472 12.492 -11.253 -8.058 1.00115.95 C +ATOM 2931 N VAL A 473 8.739 -11.910 -10.635 1.00108.18 N +ATOM 2932 CA VAL A 473 7.385 -11.370 -10.713 1.00103.24 C +ATOM 2933 C VAL A 473 6.397 -12.504 -10.521 1.00108.23 C +ATOM 2934 O VAL A 473 6.285 -13.396 -11.370 1.00109.82 O +ATOM 2935 CB VAL A 473 7.096 -10.643 -12.028 1.00108.60 C +ATOM 2936 CG1 VAL A 473 5.609 -10.296 -12.108 1.00111.57 C +ATOM 2937 CG2 VAL A 473 7.927 -9.381 -12.095 1.00112.20 C +ATOM 2938 N TYR A 474 5.670 -12.459 -9.420 1.00108.00 N +ATOM 2939 CA TYR A 474 4.688 -13.474 -9.112 1.00105.51 C +ATOM 2940 C TYR A 474 3.406 -13.179 -9.898 1.00103.17 C +ATOM 2941 O TYR A 474 3.339 -12.242 -10.698 1.00100.99 O +ATOM 2942 CB TYR A 474 4.483 -13.519 -7.599 1.00103.94 C +ATOM 2943 CG TYR A 474 5.782 -13.605 -6.786 1.00107.31 C +ATOM 2944 CD1 TYR A 474 6.701 -14.638 -6.994 1.00107.18 C +ATOM 2945 CD2 TYR A 474 6.091 -12.651 -5.813 1.00109.06 C +ATOM 2946 CE1 TYR A 474 7.889 -14.722 -6.246 1.00104.81 C +ATOM 2947 CE2 TYR A 474 7.275 -12.729 -5.060 1.00110.36 C +ATOM 2948 CZ TYR A 474 8.168 -13.765 -5.283 1.00106.87 C +ATOM 2949 OH TYR A 474 9.332 -13.835 -4.542 1.00103.17 O +ATOM 2950 N GLY A 475 2.373 -13.986 -9.680 1.00103.43 N +ATOM 2951 CA GLY A 475 1.106 -13.818 -10.362 1.00102.50 C +ATOM 2952 C GLY A 475 0.850 -14.821 -11.464 1.00103.75 C +ATOM 2953 O GLY A 475 -0.277 -14.882 -11.986 1.00104.26 O +ATOM 2954 N ASP A 476 1.865 -15.601 -11.834 1.00102.76 N +ATOM 2955 CA ASP A 476 1.724 -16.638 -12.849 1.00 99.93 C +ATOM 2956 C ASP A 476 1.474 -17.956 -12.129 1.00 98.33 C +ATOM 2957 O ASP A 476 2.382 -18.760 -11.905 1.00101.39 O +ATOM 2958 CB ASP A 476 2.968 -16.707 -13.719 1.00 98.91 C +ATOM 2959 CG ASP A 476 2.717 -17.445 -15.003 1.00104.33 C +ATOM 2960 OD1 ASP A 476 1.561 -17.877 -15.209 1.00101.86 O +ATOM 2961 OD2 ASP A 476 3.659 -17.572 -15.813 1.00107.11 O +ATOM 2962 N ASP A 477 0.215 -18.170 -11.744 1.00 96.51 N +ATOM 2963 CA ASP A 477 -0.145 -19.288 -10.878 1.00 96.88 C +ATOM 2964 C ASP A 477 -0.973 -20.351 -11.602 1.00 92.57 C +ATOM 2965 O ASP A 477 -1.721 -21.103 -10.973 1.00 93.61 O +ATOM 2966 CB ASP A 477 -0.878 -18.778 -9.641 1.00 94.85 C +ATOM 2967 CG ASP A 477 -2.228 -18.190 -9.976 1.00 97.66 C +ATOM 2968 OD1 ASP A 477 -2.499 -17.968 -11.185 1.00 95.25 O +ATOM 2969 OD2 ASP A 477 -3.006 -17.936 -9.029 1.00 99.66 O +ATOM 2970 N ALA A 478 -0.846 -20.433 -12.920 1.00 90.37 N +ATOM 2971 CA ALA A 478 -1.431 -21.544 -13.652 1.00 87.84 C +ATOM 2972 C ALA A 478 -0.612 -22.802 -13.402 1.00 87.95 C +ATOM 2973 O ALA A 478 0.613 -22.744 -13.268 1.00 90.75 O +ATOM 2974 CB ALA A 478 -1.485 -21.232 -15.145 1.00 85.45 C +ATOM 2975 N ILE A 479 -1.289 -23.944 -13.324 1.00 84.99 N +ATOM 2976 CA ILE A 479 -0.626 -25.210 -13.034 1.00 82.89 C +ATOM 2977 C ILE A 479 -1.042 -26.254 -14.060 1.00 81.74 C +ATOM 2978 O ILE A 479 -2.234 -26.401 -14.353 1.00 83.77 O +ATOM 2979 CB ILE A 479 -0.951 -25.702 -11.619 1.00 81.72 C +ATOM 2980 CG1 ILE A 479 -0.523 -24.657 -10.612 1.00 84.08 C +ATOM 2981 CG2 ILE A 479 -0.170 -26.961 -11.331 1.00 80.13 C +ATOM 2982 CD1 ILE A 479 0.970 -24.627 -10.482 1.00 82.19 C +ATOM 2983 N SER A 480 -0.061 -26.981 -14.603 1.00 79.31 N +ATOM 2984 CA SER A 480 -0.311 -28.117 -15.493 1.00 77.19 C +ATOM 2985 C SER A 480 -0.199 -29.374 -14.639 1.00 75.61 C +ATOM 2986 O SER A 480 0.907 -29.841 -14.368 1.00 75.29 O +ATOM 2987 CB SER A 480 0.680 -28.159 -16.656 1.00 78.79 C +ATOM 2988 OG SER A 480 0.637 -26.992 -17.463 1.00 87.21 O +ATOM 2989 N TYR A 481 -1.344 -29.942 -14.243 1.00 75.94 N +ATOM 2990 CA TYR A 481 -1.388 -30.975 -13.200 1.00 75.49 C +ATOM 2991 C TYR A 481 -0.957 -32.351 -13.694 1.00 72.67 C +ATOM 2992 O TYR A 481 -1.370 -32.808 -14.759 1.00 71.69 O +ATOM 2993 CB TYR A 481 -2.798 -31.095 -12.617 1.00 74.18 C +ATOM 2994 CG TYR A 481 -3.144 -29.962 -11.694 1.00 75.88 C +ATOM 2995 CD1 TYR A 481 -3.775 -28.822 -12.176 1.00 73.97 C +ATOM 2996 CD2 TYR A 481 -2.823 -30.021 -10.351 1.00 74.31 C +ATOM 2997 CE1 TYR A 481 -4.078 -27.775 -11.348 1.00 77.90 C +ATOM 2998 CE2 TYR A 481 -3.129 -28.972 -9.508 1.00 78.02 C +ATOM 2999 CZ TYR A 481 -3.756 -27.847 -10.016 1.00 81.58 C +ATOM 3000 OH TYR A 481 -4.071 -26.783 -9.194 1.00 92.28 O +ATOM 3001 N PHE A 482 -0.166 -33.028 -12.892 1.00 72.07 N +ATOM 3002 CA PHE A 482 0.192 -34.387 -13.255 1.00 70.22 C +ATOM 3003 C PHE A 482 -0.897 -35.314 -12.738 1.00 70.24 C +ATOM 3004 O PHE A 482 -1.871 -34.847 -12.136 1.00 68.24 O +ATOM 3005 CB PHE A 482 1.572 -34.750 -12.693 1.00 72.22 C +ATOM 3006 CG PHE A 482 2.663 -33.776 -13.091 1.00 72.21 C +ATOM 3007 CD1 PHE A 482 3.596 -33.334 -12.176 1.00 74.34 C +ATOM 3008 CD2 PHE A 482 2.741 -33.298 -14.384 1.00 73.93 C +ATOM 3009 CE1 PHE A 482 4.590 -32.434 -12.552 1.00 76.21 C +ATOM 3010 CE2 PHE A 482 3.732 -32.401 -14.762 1.00 74.93 C +ATOM 3011 CZ PHE A 482 4.655 -31.971 -13.844 1.00 75.53 C +ATOM 3012 N PRO A 483 -0.799 -36.615 -12.990 1.00 70.04 N +ATOM 3013 CA PRO A 483 -1.735 -37.550 -12.362 1.00 70.04 C +ATOM 3014 C PRO A 483 -1.677 -37.449 -10.851 1.00 70.88 C +ATOM 3015 O PRO A 483 -0.606 -37.301 -10.261 1.00 71.62 O +ATOM 3016 CB PRO A 483 -1.258 -38.917 -12.861 1.00 74.68 C +ATOM 3017 CG PRO A 483 -0.596 -38.619 -14.160 1.00 69.75 C +ATOM 3018 CD PRO A 483 0.048 -37.271 -13.997 1.00 69.88 C +ATOM 3019 N ASP A 484 -2.856 -37.519 -10.233 1.00 69.88 N +ATOM 3020 CA ASP A 484 -2.984 -37.458 -8.786 1.00 66.73 C +ATOM 3021 C ASP A 484 -2.418 -38.735 -8.174 1.00 66.88 C +ATOM 3022 O ASP A 484 -2.067 -39.689 -8.871 1.00 72.66 O +ATOM 3023 CB ASP A 484 -4.446 -37.264 -8.389 1.00 65.58 C +ATOM 3024 CG ASP A 484 -5.042 -36.003 -8.986 1.00 70.20 C +ATOM 3025 OD1 ASP A 484 -4.246 -35.200 -9.535 1.00 70.87 O +ATOM 3026 OD2 ASP A 484 -6.290 -35.828 -8.929 1.00 70.72 O +ATOM 3027 N ASP A 485 -2.329 -38.756 -6.848 1.00 60.66 N +ATOM 3028 CA ASP A 485 -1.777 -39.905 -6.147 1.00 61.54 C +ATOM 3029 C ASP A 485 -2.411 -39.966 -4.764 1.00 63.57 C +ATOM 3030 O ASP A 485 -2.282 -39.026 -3.977 1.00 60.68 O +ATOM 3031 CB ASP A 485 -0.259 -39.788 -6.056 1.00 63.31 C +ATOM 3032 CG ASP A 485 0.424 -41.129 -5.962 1.00 65.97 C +ATOM 3033 OD1 ASP A 485 0.135 -42.010 -6.818 1.00 69.35 O +ATOM 3034 OD2 ASP A 485 1.242 -41.293 -5.026 1.00 67.73 O +ATOM 3035 N ASN A 486 -3.115 -41.051 -4.468 1.00 66.08 N +ATOM 3036 CA ASN A 486 -3.854 -41.168 -3.220 1.00 58.35 C +ATOM 3037 C ASN A 486 -3.396 -42.435 -2.508 1.00 56.33 C +ATOM 3038 O ASN A 486 -3.240 -43.489 -3.136 1.00 59.76 O +ATOM 3039 CB ASN A 486 -5.364 -41.188 -3.509 1.00 63.88 C +ATOM 3040 CG ASN A 486 -5.814 -39.998 -4.386 1.00 63.02 C +ATOM 3041 OD1 ASN A 486 -5.213 -38.920 -4.340 1.00 61.06 O +ATOM 3042 ND2 ASN A 486 -6.884 -40.191 -5.167 1.00 67.63 N +ATOM 3043 N HIS A 487 -3.154 -42.333 -1.209 1.00 57.92 N +ATOM 3044 CA HIS A 487 -2.713 -43.482 -0.442 1.00 57.91 C +ATOM 3045 C HIS A 487 -3.372 -43.471 0.915 1.00 56.09 C +ATOM 3046 O HIS A 487 -3.681 -42.409 1.453 1.00 55.01 O +ATOM 3047 CB HIS A 487 -1.203 -43.486 -0.246 1.00 61.20 C +ATOM 3048 CG HIS A 487 -0.437 -43.665 -1.514 1.00 61.32 C +ATOM 3049 ND1 HIS A 487 -0.159 -44.905 -2.045 1.00 66.16 N +ATOM 3050 CD2 HIS A 487 0.090 -42.759 -2.371 1.00 58.28 C +ATOM 3051 CE1 HIS A 487 0.518 -44.757 -3.170 1.00 69.17 C +ATOM 3052 NE2 HIS A 487 0.687 -43.465 -3.387 1.00 67.04 N +ATOM 3053 N THR A 488 -3.598 -44.656 1.445 1.00 56.00 N +ATOM 3054 CA THR A 488 -3.891 -44.856 2.849 1.00 51.01 C +ATOM 3055 C THR A 488 -2.695 -45.628 3.387 1.00 57.55 C +ATOM 3056 O THR A 488 -2.517 -46.807 3.075 1.00 60.32 O +ATOM 3057 CB THR A 488 -5.197 -45.623 3.038 1.00 55.48 C +ATOM 3058 OG1 THR A 488 -6.322 -44.765 2.785 1.00 61.87 O +ATOM 3059 CG2 THR A 488 -5.300 -46.185 4.433 1.00 56.05 C +ATOM 3060 N ARG A 489 -1.861 -44.970 4.165 1.00 55.24 N +ATOM 3061 CA ARG A 489 -0.702 -45.609 4.754 1.00 50.50 C +ATOM 3062 C ARG A 489 -1.020 -46.028 6.179 1.00 54.86 C +ATOM 3063 O ARG A 489 -1.688 -45.288 6.905 1.00 52.57 O +ATOM 3064 CB ARG A 489 0.473 -44.652 4.734 1.00 48.40 C +ATOM 3065 CG ARG A 489 0.905 -44.369 3.356 1.00 56.82 C +ATOM 3066 CD ARG A 489 1.676 -43.090 3.308 1.00 57.22 C +ATOM 3067 NE ARG A 489 2.828 -43.062 4.204 1.00 56.76 N +ATOM 3068 CZ ARG A 489 4.009 -43.598 3.922 1.00 59.31 C +ATOM 3069 NH1 ARG A 489 4.197 -44.237 2.776 1.00 61.89 N +ATOM 3070 NH2 ARG A 489 5.002 -43.500 4.792 1.00 63.10 N +ATOM 3071 N ARG A 490 -0.557 -47.218 6.571 1.00 56.59 N +ATOM 3072 CA ARG A 490 -0.801 -47.752 7.906 1.00 50.70 C +ATOM 3073 C ARG A 490 0.507 -48.273 8.486 1.00 53.07 C +ATOM 3074 O ARG A 490 1.398 -48.715 7.757 1.00 56.68 O +ATOM 3075 CB ARG A 490 -1.846 -48.888 7.899 1.00 53.79 C +ATOM 3076 CG ARG A 490 -3.300 -48.411 7.779 1.00 57.38 C +ATOM 3077 CD ARG A 490 -4.362 -49.440 8.229 1.00 60.91 C +ATOM 3078 NE ARG A 490 -5.131 -50.010 7.117 1.00 75.01 N +ATOM 3079 CZ ARG A 490 -5.338 -51.314 6.924 1.00 84.29 C +ATOM 3080 NH1 ARG A 490 -4.839 -52.190 7.792 1.00 81.71 N +ATOM 3081 NH2 ARG A 490 -6.056 -51.744 5.876 1.00 81.61 N +ATOM 3082 N LEU A 491 0.626 -48.203 9.808 1.00 52.12 N +ATOM 3083 CA LEU A 491 1.774 -48.779 10.494 1.00 54.37 C +ATOM 3084 C LEU A 491 1.343 -49.245 11.877 1.00 54.95 C +ATOM 3085 O LEU A 491 0.736 -48.473 12.629 1.00 53.27 O +ATOM 3086 CB LEU A 491 2.909 -47.772 10.612 1.00 58.01 C +ATOM 3087 CG LEU A 491 4.059 -48.370 11.413 1.00 52.57 C +ATOM 3088 CD1 LEU A 491 5.397 -47.802 10.925 1.00 53.47 C +ATOM 3089 CD2 LEU A 491 3.853 -48.152 12.888 1.00 51.31 C +ATOM 3090 N GLU A 492 1.655 -50.494 12.214 1.00 54.18 N +ATOM 3091 CA GLU A 492 1.494 -51.019 13.561 1.00 52.20 C +ATOM 3092 C GLU A 492 2.871 -51.337 14.107 1.00 56.89 C +ATOM 3093 O GLU A 492 3.767 -51.742 13.360 1.00 59.95 O +ATOM 3094 CB GLU A 492 0.658 -52.300 13.572 1.00 60.03 C +ATOM 3095 CG GLU A 492 -0.858 -52.183 13.696 1.00 62.96 C +ATOM 3096 CD GLU A 492 -1.531 -53.570 13.801 1.00 71.07 C +ATOM 3097 OE1 GLU A 492 -1.192 -54.343 14.734 1.00 64.46 O +ATOM 3098 OE2 GLU A 492 -2.391 -53.891 12.943 1.00 78.22 O +ATOM 3099 N GLN A 493 3.041 -51.170 15.413 1.00 55.52 N +ATOM 3100 CA GLN A 493 4.225 -51.717 16.063 1.00 53.71 C +ATOM 3101 C GLN A 493 3.869 -52.151 17.470 1.00 55.13 C +ATOM 3102 O GLN A 493 3.346 -51.366 18.270 1.00 53.85 O +ATOM 3103 CB GLN A 493 5.375 -50.733 16.091 1.00 49.23 C +ATOM 3104 CG GLN A 493 6.401 -51.058 17.156 1.00 52.20 C +ATOM 3105 CD GLN A 493 7.691 -50.274 16.974 1.00 51.36 C +ATOM 3106 OE1 GLN A 493 8.022 -49.826 15.882 1.00 55.72 O +ATOM 3107 NE2 GLN A 493 8.399 -50.065 18.057 1.00 55.81 N +ATOM 3108 N THR A 494 4.140 -53.412 17.748 1.00 55.85 N +ATOM 3109 CA THR A 494 3.977 -53.978 19.065 1.00 53.21 C +ATOM 3110 C THR A 494 5.361 -54.312 19.573 1.00 56.25 C +ATOM 3111 O THR A 494 6.123 -55.001 18.883 1.00 58.74 O +ATOM 3112 CB THR A 494 3.115 -55.226 19.005 1.00 55.84 C +ATOM 3113 OG1 THR A 494 1.807 -54.852 18.564 1.00 58.89 O +ATOM 3114 CG2 THR A 494 3.029 -55.871 20.383 1.00 52.07 C +ATOM 3115 N GLY A 495 5.691 -53.797 20.745 1.00 51.93 N +ATOM 3116 CA GLY A 495 7.009 -53.973 21.322 1.00 55.32 C +ATOM 3117 C GLY A 495 6.880 -54.611 22.690 1.00 56.22 C +ATOM 3118 O GLY A 495 5.938 -54.314 23.432 1.00 55.00 O +ATOM 3119 N VAL A 496 7.811 -55.509 23.000 1.00 53.74 N +ATOM 3120 CA VAL A 496 7.928 -56.112 24.321 1.00 53.44 C +ATOM 3121 C VAL A 496 9.381 -56.043 24.716 1.00 55.90 C +ATOM 3122 O VAL A 496 10.243 -56.543 23.980 1.00 56.61 O +ATOM 3123 CB VAL A 496 7.460 -57.566 24.347 1.00 55.51 C +ATOM 3124 CG1 VAL A 496 7.949 -58.203 25.609 1.00 59.22 C +ATOM 3125 CG2 VAL A 496 5.960 -57.608 24.287 1.00 56.18 C +ATOM 3126 N TYR A 497 9.669 -55.405 25.848 1.00 54.23 N +ATOM 3127 CA TYR A 497 11.057 -55.116 26.158 1.00 54.52 C +ATOM 3128 C TYR A 497 11.328 -55.461 27.603 1.00 59.50 C +ATOM 3129 O TYR A 497 10.414 -55.729 28.391 1.00 60.59 O +ATOM 3130 CB TYR A 497 11.425 -53.657 25.868 1.00 53.61 C +ATOM 3131 CG TYR A 497 10.520 -52.620 26.492 1.00 55.69 C +ATOM 3132 CD1 TYR A 497 10.904 -51.948 27.644 1.00 57.32 C +ATOM 3133 CD2 TYR A 497 9.285 -52.302 25.925 1.00 55.41 C +ATOM 3134 CE1 TYR A 497 10.089 -50.977 28.214 1.00 56.19 C +ATOM 3135 CE2 TYR A 497 8.457 -51.337 26.492 1.00 54.72 C +ATOM 3136 CZ TYR A 497 8.871 -50.674 27.635 1.00 55.00 C +ATOM 3137 OH TYR A 497 8.074 -49.706 28.198 1.00 54.82 O +ATOM 3138 N LEU A 498 12.612 -55.474 27.934 1.00 60.88 N +ATOM 3139 CA LEU A 498 13.026 -55.884 29.258 1.00 56.25 C +ATOM 3140 C LEU A 498 14.403 -55.301 29.532 1.00 55.95 C +ATOM 3141 O LEU A 498 15.246 -55.237 28.633 1.00 58.38 O +ATOM 3142 CB LEU A 498 13.038 -57.399 29.347 1.00 54.52 C +ATOM 3143 CG LEU A 498 13.426 -57.893 30.731 1.00 63.61 C +ATOM 3144 CD1 LEU A 498 12.378 -57.495 31.772 1.00 62.72 C +ATOM 3145 CD2 LEU A 498 13.609 -59.388 30.699 1.00 58.58 C +ATOM 3146 N GLN A 499 14.614 -54.854 30.762 1.00 58.18 N +ATOM 3147 CA GLN A 499 15.845 -54.158 31.089 1.00 58.09 C +ATOM 3148 C GLN A 499 16.110 -54.319 32.562 1.00 60.02 C +ATOM 3149 O GLN A 499 15.174 -54.397 33.359 1.00 59.82 O +ATOM 3150 CB GLN A 499 15.777 -52.674 30.756 1.00 55.56 C +ATOM 3151 CG GLN A 499 16.695 -51.829 31.588 1.00 56.34 C +ATOM 3152 CD GLN A 499 16.515 -50.382 31.275 1.00 55.09 C +ATOM 3153 OE1 GLN A 499 16.830 -49.944 30.177 1.00 60.09 O +ATOM 3154 NE2 GLN A 499 15.978 -49.628 32.217 1.00 59.22 N +ATOM 3155 N ASP A 500 17.395 -54.357 32.916 1.00 64.04 N +ATOM 3156 CA ASP A 500 17.808 -54.423 34.308 1.00 61.06 C +ATOM 3157 C ASP A 500 19.023 -53.539 34.520 1.00 59.54 C +ATOM 3158 O ASP A 500 20.042 -53.699 33.839 1.00 60.37 O +ATOM 3159 CB ASP A 500 18.148 -55.853 34.743 1.00 63.79 C +ATOM 3160 CG ASP A 500 18.262 -55.984 36.279 1.00 70.73 C +ATOM 3161 OD1 ASP A 500 17.702 -55.097 36.970 1.00 72.76 O +ATOM 3162 OD2 ASP A 500 18.908 -56.938 36.802 1.00 68.76 O +ATOM 3163 N LEU A 501 18.915 -52.637 35.493 1.00 61.51 N +ATOM 3164 CA LEU A 501 20.005 -51.772 35.930 1.00 60.69 C +ATOM 3165 C LEU A 501 20.554 -52.353 37.232 1.00 63.63 C +ATOM 3166 O LEU A 501 19.922 -52.256 38.287 1.00 66.27 O +ATOM 3167 CB LEU A 501 19.507 -50.340 36.100 1.00 60.94 C +ATOM 3168 CG LEU A 501 18.578 -49.842 34.984 1.00 54.27 C +ATOM 3169 CD1 LEU A 501 18.304 -48.355 35.112 1.00 47.39 C +ATOM 3170 CD2 LEU A 501 19.174 -50.162 33.633 1.00 57.96 C +ATOM 3171 N ILE A 502 21.737 -52.950 37.164 1.00 63.80 N +ATOM 3172 CA ILE A 502 22.283 -53.714 38.275 1.00 60.64 C +ATOM 3173 C ILE A 502 23.453 -52.944 38.851 1.00 65.04 C +ATOM 3174 O ILE A 502 24.485 -52.780 38.187 1.00 64.44 O +ATOM 3175 CB ILE A 502 22.719 -55.105 37.826 1.00 59.04 C +ATOM 3176 CG1 ILE A 502 21.626 -55.699 36.958 1.00 63.93 C +ATOM 3177 CG2 ILE A 502 22.978 -55.982 39.033 1.00 64.18 C +ATOM 3178 CD1 ILE A 502 22.117 -56.804 36.081 1.00 64.56 C +ATOM 3179 N ASP A 503 23.271 -52.450 40.067 1.00 69.29 N +ATOM 3180 CA ASP A 503 24.326 -51.697 40.775 1.00 65.48 C +ATOM 3181 C ASP A 503 25.024 -52.570 41.806 1.00 66.50 C +ATOM 3182 O ASP A 503 24.458 -52.787 42.842 1.00 69.09 O +ATOM 3183 CB ASP A 503 23.740 -50.574 41.610 1.00 62.98 C +ATOM 3184 CG ASP A 503 22.961 -49.603 40.779 1.00 70.24 C +ATOM 3185 OD1 ASP A 503 22.713 -49.916 39.631 1.00 69.04 O +ATOM 3186 OD2 ASP A 503 22.628 -48.555 41.303 1.00 74.98 O +ATOM 3187 N ILE A 504 26.211 -53.067 41.515 1.00 65.19 N +ATOM 3188 CA ILE A 504 26.898 -53.785 42.616 1.00 69.47 C +ATOM 3189 C ILE A 504 28.157 -53.001 42.978 1.00 71.43 C +ATOM 3190 O ILE A 504 29.007 -52.850 42.119 1.00 71.25 O +ATOM 3191 CB ILE A 504 27.165 -55.241 42.262 1.00 64.48 C +ATOM 3192 CG1 ILE A 504 27.850 -55.935 43.426 1.00 71.72 C +ATOM 3193 CG2 ILE A 504 27.968 -55.344 41.003 1.00 67.16 C +ATOM 3194 CD1 ILE A 504 28.133 -57.377 43.167 1.00 79.85 C +ATOM 3195 N ASP A 505 28.244 -52.567 44.233 1.00 71.87 N +ATOM 3196 CA ASP A 505 29.357 -51.730 44.740 1.00 75.65 C +ATOM 3197 C ASP A 505 29.284 -50.557 43.779 1.00 75.81 C +ATOM 3198 O ASP A 505 28.223 -49.992 43.659 1.00 78.21 O +ATOM 3199 CB ASP A 505 30.692 -52.465 44.799 1.00 79.74 C +ATOM 3200 CG ASP A 505 30.612 -53.704 45.652 1.00 87.52 C +ATOM 3201 OD1 ASP A 505 30.175 -53.580 46.787 1.00 91.93 O +ATOM 3202 OD2 ASP A 505 30.986 -54.775 45.169 1.00 89.42 O +ATOM 3203 N GLN A 506 30.407 -50.134 43.233 1.00 69.67 N +ATOM 3204 CA GLN A 506 30.430 -48.885 42.450 1.00 64.24 C +ATOM 3205 C GLN A 506 30.049 -49.195 41.015 1.00 63.33 C +ATOM 3206 O GLN A 506 29.774 -48.278 40.298 1.00 65.38 O +ATOM 3207 CB GLN A 506 31.823 -48.272 42.510 1.00 68.57 C +ATOM 3208 CG GLN A 506 32.338 -48.073 43.920 1.00 70.58 C +ATOM 3209 CD GLN A 506 31.662 -46.916 44.601 1.00 74.51 C +ATOM 3210 OE1 GLN A 506 31.188 -47.029 45.713 1.00 79.29 O +ATOM 3211 NE2 GLN A 506 31.604 -45.788 43.925 1.00 75.06 N +ATOM 3212 N TRP A 507 30.032 -50.464 40.647 1.00 62.84 N +ATOM 3213 CA TRP A 507 29.690 -50.855 39.266 1.00 58.85 C +ATOM 3214 C TRP A 507 28.214 -50.556 39.002 1.00 64.22 C +ATOM 3215 O TRP A 507 27.409 -50.663 39.904 1.00 66.67 O +ATOM 3216 CB TRP A 507 29.961 -52.337 39.080 1.00 57.40 C +ATOM 3217 CG TRP A 507 31.358 -52.748 38.746 1.00 65.50 C +ATOM 3218 CD1 TRP A 507 32.211 -53.426 39.560 1.00 65.93 C +ATOM 3219 CD2 TRP A 507 32.048 -52.611 37.494 1.00 62.43 C +ATOM 3220 NE1 TRP A 507 33.379 -53.689 38.915 1.00 62.75 N +ATOM 3221 CE2 TRP A 507 33.310 -53.202 37.650 1.00 56.12 C +ATOM 3222 CE3 TRP A 507 31.734 -52.037 36.266 1.00 61.08 C +ATOM 3223 CZ2 TRP A 507 34.249 -53.244 36.637 1.00 55.55 C +ATOM 3224 CZ3 TRP A 507 32.665 -52.081 35.259 1.00 59.10 C +ATOM 3225 CH2 TRP A 507 33.903 -52.680 35.443 1.00 59.98 C +ATOM 3226 N ARG A 508 27.894 -50.187 37.776 1.00 60.15 N +ATOM 3227 CA ARG A 508 26.520 -49.923 37.335 1.00 55.37 C +ATOM 3228 C ARG A 508 26.402 -50.680 36.029 1.00 57.65 C +ATOM 3229 O ARG A 508 27.271 -50.549 35.238 1.00 56.59 O +ATOM 3230 CB ARG A 508 26.358 -48.433 37.108 1.00 57.76 C +ATOM 3231 CG ARG A 508 26.654 -47.611 38.344 1.00 59.91 C +ATOM 3232 CD ARG A 508 25.726 -47.959 39.463 1.00 60.41 C +ATOM 3233 NE ARG A 508 25.736 -46.982 40.521 1.00 59.99 N +ATOM 3234 CZ ARG A 508 26.200 -47.220 41.725 1.00 64.87 C +ATOM 3235 NH1 ARG A 508 26.690 -48.405 42.014 1.00 64.91 N +ATOM 3236 NH2 ARG A 508 26.160 -46.283 42.641 1.00 62.96 N +ATOM 3237 N PHE A 509 25.366 -51.480 35.866 1.00 61.43 N +ATOM 3238 CA PHE A 509 25.211 -52.311 34.679 1.00 57.58 C +ATOM 3239 C PHE A 509 23.815 -52.139 34.109 1.00 59.82 C +ATOM 3240 O PHE A 509 22.819 -52.323 34.820 1.00 58.69 O +ATOM 3241 CB PHE A 509 25.462 -53.788 34.991 1.00 56.96 C +ATOM 3242 CG PHE A 509 26.862 -54.078 35.424 1.00 59.28 C +ATOM 3243 CD1 PHE A 509 27.917 -53.976 34.525 1.00 59.48 C +ATOM 3244 CD2 PHE A 509 27.134 -54.432 36.732 1.00 59.75 C +ATOM 3245 CE1 PHE A 509 29.223 -54.226 34.927 1.00 59.78 C +ATOM 3246 CE2 PHE A 509 28.439 -54.684 37.142 1.00 61.38 C +ATOM 3247 CZ PHE A 509 29.487 -54.583 36.243 1.00 57.89 C +ATOM 3248 N SER A 510 23.750 -51.819 32.822 1.00 60.83 N +ATOM 3249 CA SER A 510 22.499 -51.745 32.096 1.00 55.04 C +ATOM 3250 C SER A 510 22.365 -52.979 31.221 1.00 56.68 C +ATOM 3251 O SER A 510 23.357 -53.454 30.657 1.00 56.43 O +ATOM 3252 CB SER A 510 22.438 -50.497 31.219 1.00 59.84 C +ATOM 3253 OG SER A 510 21.251 -50.504 30.432 1.00 63.85 O +ATOM 3254 N LEU A 511 21.139 -53.491 31.108 1.00 57.43 N +ATOM 3255 CA LEU A 511 20.838 -54.592 30.204 1.00 53.75 C +ATOM 3256 C LEU A 511 19.462 -54.376 29.613 1.00 61.28 C +ATOM 3257 O LEU A 511 18.511 -54.096 30.350 1.00 64.22 O +ATOM 3258 CB LEU A 511 20.849 -55.929 30.921 1.00 49.89 C +ATOM 3259 CG LEU A 511 22.185 -56.343 31.509 1.00 57.06 C +ATOM 3260 CD1 LEU A 511 21.940 -57.304 32.646 1.00 58.85 C +ATOM 3261 CD2 LEU A 511 23.061 -56.962 30.450 1.00 58.76 C +ATOM 3262 N GLY A 512 19.344 -54.541 28.306 1.00 60.08 N +ATOM 3263 CA GLY A 512 18.059 -54.382 27.655 1.00 57.05 C +ATOM 3264 C GLY A 512 17.923 -55.347 26.506 1.00 58.84 C +ATOM 3265 O GLY A 512 18.911 -55.702 25.853 1.00 55.68 O +ATOM 3266 N LEU A 513 16.679 -55.778 26.267 1.00 61.59 N +ATOM 3267 CA LEU A 513 16.291 -56.595 25.125 1.00 60.46 C +ATOM 3268 C LEU A 513 14.840 -56.314 24.780 1.00 57.65 C +ATOM 3269 O LEU A 513 14.023 -56.019 25.660 1.00 54.56 O +ATOM 3270 CB LEU A 513 16.444 -58.088 25.389 1.00 59.47 C +ATOM 3271 CG LEU A 513 17.869 -58.596 25.257 1.00 65.40 C +ATOM 3272 CD1 LEU A 513 17.808 -60.087 25.079 1.00 67.03 C +ATOM 3273 CD2 LEU A 513 18.563 -57.925 24.071 1.00 68.88 C +ATOM 3274 N ARG A 514 14.520 -56.450 23.493 1.00 60.05 N +ATOM 3275 CA ARG A 514 13.216 -56.047 22.984 1.00 57.35 C +ATOM 3276 C ARG A 514 12.945 -56.799 21.692 1.00 56.52 C +ATOM 3277 O ARG A 514 13.800 -56.811 20.801 1.00 60.50 O +ATOM 3278 CB ARG A 514 13.175 -54.533 22.736 1.00 56.73 C +ATOM 3279 CG ARG A 514 11.950 -54.086 21.959 1.00 58.27 C +ATOM 3280 CD ARG A 514 11.698 -52.612 22.149 1.00 55.12 C +ATOM 3281 NE ARG A 514 10.465 -52.225 21.484 1.00 55.80 N +ATOM 3282 CZ ARG A 514 9.691 -51.220 21.883 1.00 59.00 C +ATOM 3283 NH1 ARG A 514 10.029 -50.490 22.952 1.00 56.13 N +ATOM 3284 NH2 ARG A 514 8.572 -50.948 21.217 1.00 59.03 N +ATOM 3285 N GLN A 515 11.779 -57.441 21.607 1.00 56.94 N +ATOM 3286 CA GLN A 515 11.277 -58.004 20.359 1.00 63.07 C +ATOM 3287 C GLN A 515 10.210 -57.073 19.817 1.00 61.53 C +ATOM 3288 O GLN A 515 9.463 -56.452 20.584 1.00 58.11 O +ATOM 3289 CB GLN A 515 10.699 -59.417 20.533 1.00 62.06 C +ATOM 3290 CG GLN A 515 10.616 -60.238 19.236 1.00 68.32 C +ATOM 3291 CD GLN A 515 11.892 -61.030 18.947 1.00 76.63 C +ATOM 3292 OE1 GLN A 515 12.665 -61.338 19.854 1.00 74.78 O +ATOM 3293 NE2 GLN A 515 12.111 -61.365 17.676 1.00 82.31 N +ATOM 3294 N ASP A 516 10.153 -56.962 18.496 1.00 64.94 N +ATOM 3295 CA ASP A 516 9.251 -56.014 17.871 1.00 62.44 C +ATOM 3296 C ASP A 516 8.565 -56.686 16.705 1.00 62.66 C +ATOM 3297 O ASP A 516 9.219 -57.351 15.898 1.00 63.82 O +ATOM 3298 CB ASP A 516 10.007 -54.772 17.397 1.00 59.84 C +ATOM 3299 CG ASP A 516 10.167 -53.742 18.493 1.00 60.38 C +ATOM 3300 OD1 ASP A 516 9.134 -53.235 18.990 1.00 59.82 O +ATOM 3301 OD2 ASP A 516 11.326 -53.486 18.900 1.00 64.19 O +ATOM 3302 N TRP A 517 7.257 -56.513 16.623 1.00 62.32 N +ATOM 3303 CA TRP A 517 6.522 -56.875 15.430 1.00 65.69 C +ATOM 3304 C TRP A 517 6.046 -55.588 14.794 1.00 60.39 C +ATOM 3305 O TRP A 517 5.344 -54.800 15.434 1.00 58.55 O +ATOM 3306 CB TRP A 517 5.361 -57.809 15.752 1.00 72.02 C +ATOM 3307 CG TRP A 517 5.847 -59.050 16.399 1.00 72.15 C +ATOM 3308 CD1 TRP A 517 6.195 -60.216 15.779 1.00 74.62 C +ATOM 3309 CD2 TRP A 517 6.075 -59.252 17.801 1.00 77.07 C +ATOM 3310 NE1 TRP A 517 6.615 -61.136 16.711 1.00 79.20 N +ATOM 3311 CE2 TRP A 517 6.549 -60.569 17.960 1.00 79.73 C +ATOM 3312 CE3 TRP A 517 5.913 -58.447 18.942 1.00 74.13 C +ATOM 3313 CZ2 TRP A 517 6.869 -61.101 19.214 1.00 79.92 C +ATOM 3314 CZ3 TRP A 517 6.225 -58.982 20.194 1.00 66.41 C +ATOM 3315 CH2 TRP A 517 6.701 -60.292 20.313 1.00 72.75 C +ATOM 3316 N VAL A 518 6.458 -55.373 13.557 1.00 59.73 N +ATOM 3317 CA VAL A 518 6.099 -54.198 12.787 1.00 58.50 C +ATOM 3318 C VAL A 518 5.238 -54.625 11.614 1.00 62.24 C +ATOM 3319 O VAL A 518 5.377 -55.737 11.096 1.00 58.52 O +ATOM 3320 CB VAL A 518 7.353 -53.453 12.300 1.00 57.77 C +ATOM 3321 CG1 VAL A 518 6.978 -52.373 11.292 1.00 62.29 C +ATOM 3322 CG2 VAL A 518 8.081 -52.853 13.478 1.00 54.74 C +ATOM 3323 N SER A 519 4.330 -53.737 11.209 1.00 63.73 N +ATOM 3324 CA SER A 519 3.546 -53.913 9.992 1.00 61.47 C +ATOM 3325 C SER A 519 3.392 -52.561 9.323 1.00 59.35 C +ATOM 3326 O SER A 519 3.018 -51.589 9.984 1.00 60.68 O +ATOM 3327 CB SER A 519 2.172 -54.499 10.292 1.00 61.22 C +ATOM 3328 OG SER A 519 2.321 -55.793 10.841 1.00 71.03 O +ATOM 3329 N VAL A 520 3.701 -52.491 8.037 1.00 58.97 N +ATOM 3330 CA VAL A 520 3.453 -51.303 7.239 1.00 60.44 C +ATOM 3331 C VAL A 520 2.673 -51.708 6.010 1.00 59.26 C +ATOM 3332 O VAL A 520 2.995 -52.714 5.371 1.00 64.84 O +ATOM 3333 CB VAL A 520 4.750 -50.604 6.816 1.00 59.46 C +ATOM 3334 CG1 VAL A 520 4.409 -49.269 6.133 1.00 57.42 C +ATOM 3335 CG2 VAL A 520 5.625 -50.411 8.015 1.00 56.19 C +ATOM 3336 N THR A 521 1.650 -50.928 5.675 1.00 59.91 N +ATOM 3337 CA THR A 521 0.926 -51.148 4.433 1.00 66.20 C +ATOM 3338 C THR A 521 0.638 -49.807 3.777 1.00 60.94 C +ATOM 3339 O THR A 521 0.662 -48.753 4.420 1.00 59.75 O +ATOM 3340 CB THR A 521 -0.371 -51.915 4.661 1.00 68.34 C +ATOM 3341 OG1 THR A 521 -1.296 -51.064 5.338 1.00 68.08 O +ATOM 3342 CG2 THR A 521 -0.093 -53.125 5.550 1.00 68.71 C +ATOM 3343 N ASP A 522 0.377 -49.867 2.477 1.00 65.55 N +ATOM 3344 CA ASP A 522 0.208 -48.676 1.644 1.00 62.00 C +ATOM 3345 C ASP A 522 -0.813 -49.025 0.557 1.00 64.36 C +ATOM 3346 O ASP A 522 -0.451 -49.562 -0.489 1.00 70.51 O +ATOM 3347 CB ASP A 522 1.548 -48.256 1.051 1.00 59.51 C +ATOM 3348 CG ASP A 522 1.467 -46.964 0.261 1.00 63.84 C +ATOM 3349 OD1 ASP A 522 0.517 -46.813 -0.536 1.00 67.11 O +ATOM 3350 OD2 ASP A 522 2.352 -46.095 0.436 1.00 63.42 O +ATOM 3351 N LYS A 523 -2.087 -48.720 0.816 1.00 65.37 N +ATOM 3352 CA LYS A 523 -3.107 -48.838 -0.229 1.00 67.00 C +ATOM 3353 C LYS A 523 -2.946 -47.630 -1.134 1.00 68.43 C +ATOM 3354 O LYS A 523 -3.343 -46.512 -0.792 1.00 65.44 O +ATOM 3355 CB LYS A 523 -4.525 -48.928 0.337 1.00 62.87 C +ATOM 3356 CG LYS A 523 -5.632 -49.318 -0.683 1.00 70.79 C +ATOM 3357 CD LYS A 523 -7.041 -48.766 -0.312 1.00 75.30 C +ATOM 3358 CE LYS A 523 -7.663 -49.467 0.935 1.00 80.51 C +ATOM 3359 NZ LYS A 523 -9.057 -49.006 1.250 1.00 90.79 N +ATOM 3360 N ASN A 524 -2.278 -47.833 -2.258 1.00 69.97 N +ATOM 3361 CA ASN A 524 -2.463 -46.901 -3.346 1.00 68.36 C +ATOM 3362 C ASN A 524 -3.938 -46.904 -3.686 1.00 71.32 C +ATOM 3363 O ASN A 524 -4.456 -47.866 -4.265 1.00 74.68 O +ATOM 3364 CB ASN A 524 -1.637 -47.309 -4.551 1.00 72.25 C +ATOM 3365 CG ASN A 524 -1.643 -46.265 -5.601 1.00 72.51 C +ATOM 3366 OD1 ASN A 524 -2.605 -45.497 -5.714 1.00 72.59 O +ATOM 3367 ND2 ASN A 524 -0.595 -46.225 -6.399 1.00 73.99 N +ATOM 3368 N ARG A 525 -4.616 -45.829 -3.310 1.00 68.30 N +ATOM 3369 CA ARG A 525 -6.057 -45.831 -3.331 1.00 67.58 C +ATOM 3370 C ARG A 525 -6.568 -45.289 -4.650 1.00 73.37 C +ATOM 3371 O ARG A 525 -7.777 -45.360 -4.912 1.00 74.55 O +ATOM 3372 CB ARG A 525 -6.593 -45.025 -2.141 1.00 64.36 C +ATOM 3373 CG ARG A 525 -8.015 -45.335 -1.760 1.00 77.94 C +ATOM 3374 CD ARG A 525 -8.320 -44.596 -0.499 1.00 77.32 C +ATOM 3375 NE ARG A 525 -8.258 -43.176 -0.797 1.00 75.22 N +ATOM 3376 CZ ARG A 525 -7.269 -42.390 -0.399 1.00 61.87 C +ATOM 3377 NH1 ARG A 525 -6.289 -42.900 0.342 1.00 58.17 N +ATOM 3378 NH2 ARG A 525 -7.267 -41.097 -0.722 1.00 58.72 N +ATOM 3379 N SER A 526 -5.656 -44.786 -5.499 1.00 69.39 N +ATOM 3380 CA SER A 526 -5.935 -44.563 -6.917 1.00 76.62 C +ATOM 3381 C SER A 526 -5.843 -45.866 -7.708 1.00 79.60 C +ATOM 3382 O SER A 526 -6.706 -46.149 -8.550 1.00 78.28 O +ATOM 3383 CB SER A 526 -4.942 -43.561 -7.509 1.00 71.85 C +ATOM 3384 OG SER A 526 -4.836 -42.385 -6.728 1.00 69.57 O +ATOM 3385 N THR A 527 -4.795 -46.665 -7.451 1.00 81.07 N +ATOM 3386 CA THR A 527 -4.523 -47.913 -8.163 1.00 75.83 C +ATOM 3387 C THR A 527 -5.139 -49.145 -7.511 1.00 78.37 C +ATOM 3388 O THR A 527 -5.300 -50.158 -8.196 1.00 80.57 O +ATOM 3389 CB THR A 527 -3.014 -48.148 -8.278 1.00 77.26 C +ATOM 3390 OG1 THR A 527 -2.473 -48.516 -6.994 1.00 76.07 O +ATOM 3391 CG2 THR A 527 -2.331 -46.881 -8.759 1.00 77.04 C +ATOM 3392 N GLY A 528 -5.476 -49.093 -6.222 1.00 79.18 N +ATOM 3393 CA GLY A 528 -6.196 -50.165 -5.559 1.00 80.14 C +ATOM 3394 C GLY A 528 -5.345 -51.259 -4.962 1.00 76.83 C +ATOM 3395 O GLY A 528 -5.901 -52.256 -4.483 1.00 76.23 O +ATOM 3396 N SER A 529 -4.021 -51.090 -4.958 1.00 77.26 N +ATOM 3397 CA SER A 529 -3.071 -52.108 -4.532 1.00 80.83 C +ATOM 3398 C SER A 529 -2.429 -51.722 -3.211 1.00 78.99 C +ATOM 3399 O SER A 529 -1.880 -50.617 -3.073 1.00 77.48 O +ATOM 3400 CB SER A 529 -1.973 -52.281 -5.571 1.00 83.88 C +ATOM 3401 OG SER A 529 -1.320 -51.030 -5.696 1.00 84.86 O +ATOM 3402 N LYS A 530 -2.469 -52.665 -2.267 1.00 74.98 N +ATOM 3403 CA LYS A 530 -1.804 -52.559 -0.978 1.00 75.57 C +ATOM 3404 C LYS A 530 -0.399 -53.138 -1.088 1.00 76.16 C +ATOM 3405 O LYS A 530 -0.226 -54.339 -1.310 1.00 77.98 O +ATOM 3406 CB LYS A 530 -2.605 -53.259 0.132 1.00 78.12 C +ATOM 3407 CG LYS A 530 -3.862 -52.540 0.630 1.00 81.03 C +ATOM 3408 CD LYS A 530 -4.593 -53.289 1.729 1.00 81.87 C +ATOM 3409 CE LYS A 530 -5.869 -52.580 2.168 1.00 86.38 C +ATOM 3410 NZ LYS A 530 -6.527 -53.116 3.406 1.00 91.14 N +ATOM 3411 N ALA A 531 0.601 -52.274 -0.965 1.00 75.16 N +ATOM 3412 CA ALA A 531 1.864 -52.718 -0.401 1.00 71.27 C +ATOM 3413 C ALA A 531 1.583 -53.121 1.028 1.00 73.76 C +ATOM 3414 O ALA A 531 1.187 -52.282 1.841 1.00 74.31 O +ATOM 3415 CB ALA A 531 2.918 -51.613 -0.432 1.00 71.77 C +ATOM 3416 N ASP A 532 1.790 -54.391 1.351 1.00 77.96 N +ATOM 3417 CA ASP A 532 1.373 -54.909 2.649 1.00 77.93 C +ATOM 3418 C ASP A 532 2.470 -55.786 3.236 1.00 81.50 C +ATOM 3419 O ASP A 532 2.731 -56.868 2.705 1.00 88.84 O +ATOM 3420 CB ASP A 532 0.070 -55.695 2.490 1.00 81.31 C +ATOM 3421 CG ASP A 532 -0.554 -56.068 3.815 1.00 88.03 C +ATOM 3422 OD1 ASP A 532 -1.800 -55.970 3.915 1.00 88.52 O +ATOM 3423 OD2 ASP A 532 0.194 -56.465 4.744 1.00 91.25 O +ATOM 3424 N ASP A 533 3.043 -55.369 4.371 1.00 77.80 N +ATOM 3425 CA ASP A 533 4.305 -55.918 4.872 1.00 78.16 C +ATOM 3426 C ASP A 533 4.353 -55.865 6.387 1.00 75.79 C +ATOM 3427 O ASP A 533 3.695 -55.035 7.017 1.00 75.19 O +ATOM 3428 CB ASP A 533 5.488 -55.132 4.337 1.00 77.38 C +ATOM 3429 CG ASP A 533 5.585 -55.208 2.866 1.00 86.17 C +ATOM 3430 OD1 ASP A 533 4.954 -56.077 2.241 1.00 87.50 O +ATOM 3431 OD2 ASP A 533 6.173 -54.293 2.308 1.00 94.70 O +ATOM 3432 N ASP A 534 5.190 -56.733 6.966 1.00 71.94 N +ATOM 3433 CA ASP A 534 5.386 -56.722 8.415 1.00 76.20 C +ATOM 3434 C ASP A 534 6.529 -57.622 8.888 1.00 76.98 C +ATOM 3435 O ASP A 534 6.612 -58.793 8.503 1.00 74.56 O +ATOM 3436 CB ASP A 534 4.087 -57.126 9.101 1.00 77.00 C +ATOM 3437 CG ASP A 534 3.435 -58.292 8.421 1.00 77.71 C +ATOM 3438 OD1 ASP A 534 3.956 -58.698 7.360 1.00 81.22 O +ATOM 3439 OD2 ASP A 534 2.412 -58.791 8.932 1.00 83.26 O +ATOM 3440 N TRP A 535 7.368 -57.095 9.776 1.00 73.78 N +ATOM 3441 CA TRP A 535 8.597 -57.720 10.223 1.00 69.52 C +ATOM 3442 C TRP A 535 8.470 -58.079 11.694 1.00 69.45 C +ATOM 3443 O TRP A 535 7.518 -57.688 12.382 1.00 66.54 O +ATOM 3444 CB TRP A 535 9.792 -56.777 9.993 1.00 71.34 C +ATOM 3445 CG TRP A 535 9.918 -56.387 8.564 1.00 72.70 C +ATOM 3446 CD1 TRP A 535 10.712 -56.987 7.638 1.00 79.91 C +ATOM 3447 CD2 TRP A 535 9.219 -55.336 7.870 1.00 74.95 C +ATOM 3448 NE1 TRP A 535 10.557 -56.386 6.408 1.00 83.46 N +ATOM 3449 CE2 TRP A 535 9.645 -55.371 6.520 1.00 82.15 C +ATOM 3450 CE3 TRP A 535 8.278 -54.373 8.252 1.00 75.63 C +ATOM 3451 CZ2 TRP A 535 9.160 -54.479 5.547 1.00 83.71 C +ATOM 3452 CZ3 TRP A 535 7.790 -53.486 7.274 1.00 79.33 C +ATOM 3453 CH2 TRP A 535 8.238 -53.550 5.943 1.00 80.71 C +ATOM 3454 N GLU A 536 9.437 -58.860 12.164 1.00 70.04 N +ATOM 3455 CA GLU A 536 9.649 -59.049 13.589 1.00 70.99 C +ATOM 3456 C GLU A 536 11.144 -58.959 13.834 1.00 71.78 C +ATOM 3457 O GLU A 536 11.930 -59.691 13.224 1.00 71.21 O +ATOM 3458 CB GLU A 536 9.079 -60.376 14.088 1.00 71.52 C +ATOM 3459 CG GLU A 536 10.028 -61.538 14.022 1.00 78.55 C +ATOM 3460 CD GLU A 536 9.327 -62.828 14.341 1.00 87.20 C +ATOM 3461 OE1 GLU A 536 8.081 -62.806 14.395 1.00 88.92 O +ATOM 3462 OE2 GLU A 536 10.008 -63.848 14.569 1.00 90.03 O +ATOM 3463 N LYS A 537 11.536 -58.048 14.702 1.00 71.80 N +ATOM 3464 CA LYS A 537 12.932 -57.713 14.841 1.00 68.01 C +ATOM 3465 C LYS A 537 13.302 -57.707 16.315 1.00 69.37 C +ATOM 3466 O LYS A 537 12.454 -57.552 17.197 1.00 68.44 O +ATOM 3467 CB LYS A 537 13.221 -56.371 14.172 1.00 66.51 C +ATOM 3468 CG LYS A 537 14.682 -56.094 14.020 1.00 72.24 C +ATOM 3469 CD LYS A 537 15.344 -57.290 13.370 1.00 79.97 C +ATOM 3470 CE LYS A 537 16.826 -57.082 13.205 1.00 79.15 C +ATOM 3471 NZ LYS A 537 17.441 -58.403 12.939 1.00 81.72 N +ATOM 3472 N PHE A 538 14.590 -57.899 16.565 1.00 74.81 N +ATOM 3473 CA PHE A 538 15.130 -58.123 17.897 1.00 70.44 C +ATOM 3474 C PHE A 538 16.309 -57.184 18.115 1.00 68.09 C +ATOM 3475 O PHE A 538 17.255 -57.181 17.320 1.00 72.26 O +ATOM 3476 CB PHE A 538 15.559 -59.585 18.031 1.00 74.30 C +ATOM 3477 CG PHE A 538 16.146 -59.922 19.357 1.00 77.93 C +ATOM 3478 CD1 PHE A 538 15.370 -60.494 20.348 1.00 78.64 C +ATOM 3479 CD2 PHE A 538 17.484 -59.657 19.622 1.00 79.78 C +ATOM 3480 CE1 PHE A 538 15.920 -60.804 21.587 1.00 78.85 C +ATOM 3481 CE2 PHE A 538 18.042 -59.961 20.855 1.00 78.92 C +ATOM 3482 CZ PHE A 538 17.255 -60.534 21.841 1.00 79.29 C +ATOM 3483 N THR A 539 16.269 -56.406 19.196 1.00 65.57 N +ATOM 3484 CA THR A 539 17.311 -55.428 19.488 1.00 63.05 C +ATOM 3485 C THR A 539 17.769 -55.582 20.938 1.00 63.03 C +ATOM 3486 O THR A 539 16.987 -55.968 21.810 1.00 62.94 O +ATOM 3487 CB THR A 539 16.791 -53.998 19.235 1.00 56.07 C +ATOM 3488 OG1 THR A 539 15.759 -53.690 20.173 1.00 58.81 O +ATOM 3489 CG2 THR A 539 16.167 -53.940 17.843 1.00 63.74 C +ATOM 3490 N GLY A 540 19.052 -55.296 21.201 1.00 62.60 N +ATOM 3491 CA GLY A 540 19.578 -55.401 22.546 1.00 59.07 C +ATOM 3492 C GLY A 540 20.561 -54.293 22.888 1.00 55.63 C +ATOM 3493 O GLY A 540 21.117 -53.613 22.019 1.00 56.84 O +ATOM 3494 N ARG A 541 20.798 -54.157 24.183 1.00 55.90 N +ATOM 3495 CA ARG A 541 21.749 -53.170 24.656 1.00 54.93 C +ATOM 3496 C ARG A 541 22.324 -53.642 25.977 1.00 54.16 C +ATOM 3497 O ARG A 541 21.624 -54.259 26.782 1.00 57.67 O +ATOM 3498 CB ARG A 541 21.080 -51.809 24.835 1.00 58.13 C +ATOM 3499 CG ARG A 541 21.933 -50.771 25.544 1.00 57.86 C +ATOM 3500 CD ARG A 541 21.062 -49.608 25.934 1.00 50.71 C +ATOM 3501 NE ARG A 541 20.130 -50.059 26.944 1.00 61.21 N +ATOM 3502 CZ ARG A 541 19.347 -49.247 27.627 1.00 64.47 C +ATOM 3503 NH1 ARG A 541 19.393 -47.940 27.382 1.00 57.53 N +ATOM 3504 NH2 ARG A 541 18.525 -49.749 28.543 1.00 62.59 N +ATOM 3505 N ILE A 542 23.595 -53.312 26.198 1.00 55.09 N +ATOM 3506 CA ILE A 542 24.320 -53.645 27.422 1.00 58.04 C +ATOM 3507 C ILE A 542 25.314 -52.523 27.743 1.00 58.28 C +ATOM 3508 O ILE A 542 26.139 -52.143 26.902 1.00 53.75 O +ATOM 3509 CB ILE A 542 25.046 -55.000 27.290 1.00 56.01 C +ATOM 3510 CG1 ILE A 542 25.768 -55.348 28.589 1.00 54.49 C +ATOM 3511 CG2 ILE A 542 26.024 -54.988 26.130 1.00 54.63 C +ATOM 3512 CD1 ILE A 542 26.624 -56.578 28.474 1.00 54.59 C +ATOM 3513 N GLY A 543 25.251 -52.010 28.974 1.00 63.15 N +ATOM 3514 CA GLY A 543 26.142 -50.950 29.403 1.00 56.22 C +ATOM 3515 C GLY A 543 26.754 -51.220 30.759 1.00 56.65 C +ATOM 3516 O GLY A 543 26.055 -51.658 31.685 1.00 58.06 O +ATOM 3517 N ALA A 544 28.063 -50.981 30.876 1.00 55.79 N +ATOM 3518 CA ALA A 544 28.810 -51.155 32.115 1.00 54.58 C +ATOM 3519 C ALA A 544 29.571 -49.881 32.461 1.00 54.17 C +ATOM 3520 O ALA A 544 30.239 -49.288 31.607 1.00 55.32 O +ATOM 3521 CB ALA A 544 29.801 -52.320 32.010 1.00 53.42 C +ATOM 3522 N LEU A 545 29.537 -49.506 33.733 1.00 56.66 N +ATOM 3523 CA LEU A 545 30.056 -48.217 34.150 1.00 53.73 C +ATOM 3524 C LEU A 545 30.632 -48.377 35.541 1.00 56.31 C +ATOM 3525 O LEU A 545 29.967 -48.958 36.400 1.00 62.69 O +ATOM 3526 CB LEU A 545 28.931 -47.188 34.176 1.00 49.72 C +ATOM 3527 CG LEU A 545 29.361 -45.821 34.684 1.00 53.63 C +ATOM 3528 CD1 LEU A 545 28.545 -44.747 33.998 1.00 50.96 C +ATOM 3529 CD2 LEU A 545 29.244 -45.733 36.200 1.00 54.87 C +ATOM 3530 N TYR A 546 31.831 -47.855 35.783 1.00 54.17 N +ATOM 3531 CA TYR A 546 32.384 -47.828 37.129 1.00 55.91 C +ATOM 3532 C TYR A 546 32.357 -46.404 37.643 1.00 55.52 C +ATOM 3533 O TYR A 546 32.786 -45.473 36.952 1.00 56.80 O +ATOM 3534 CB TYR A 546 33.805 -48.389 37.194 1.00 57.59 C +ATOM 3535 CG TYR A 546 34.210 -48.802 38.607 1.00 63.62 C +ATOM 3536 CD1 TYR A 546 34.677 -47.857 39.519 1.00 65.37 C +ATOM 3537 CD2 TYR A 546 34.126 -50.137 39.033 1.00 65.43 C +ATOM 3538 CE1 TYR A 546 35.046 -48.225 40.822 1.00 66.69 C +ATOM 3539 CE2 TYR A 546 34.498 -50.513 40.339 1.00 68.22 C +ATOM 3540 CZ TYR A 546 34.955 -49.549 41.225 1.00 68.62 C +ATOM 3541 OH TYR A 546 35.321 -49.893 42.509 1.00 69.34 O +ATOM 3542 N LEU A 547 31.853 -46.215 38.840 1.00 56.05 N +ATOM 3543 CA LEU A 547 31.768 -44.839 39.350 1.00 59.02 C +ATOM 3544 C LEU A 547 32.676 -44.675 40.555 1.00 64.42 C +ATOM 3545 O LEU A 547 32.435 -45.311 41.547 1.00 64.90 O +ATOM 3546 CB LEU A 547 30.329 -44.543 39.745 1.00 62.29 C +ATOM 3547 CG LEU A 547 30.160 -43.340 40.652 1.00 62.57 C +ATOM 3548 CD1 LEU A 547 30.136 -42.058 39.862 1.00 63.40 C +ATOM 3549 CD2 LEU A 547 28.887 -43.473 41.428 1.00 65.42 C +ATOM 3550 N PHE A 548 33.693 -43.841 40.419 1.00 64.14 N +ATOM 3551 CA PHE A 548 34.654 -43.590 41.508 1.00 65.01 C +ATOM 3552 C PHE A 548 34.027 -42.621 42.492 1.00 67.98 C +ATOM 3553 O PHE A 548 33.240 -41.838 42.060 1.00 71.94 O +ATOM 3554 CB PHE A 548 35.978 -43.092 40.935 1.00 65.68 C +ATOM 3555 CG PHE A 548 36.726 -44.115 40.130 1.00 62.38 C +ATOM 3556 CD1 PHE A 548 37.268 -45.222 40.726 1.00 64.15 C +ATOM 3557 CD2 PHE A 548 36.897 -43.966 38.779 1.00 65.99 C +ATOM 3558 CE1 PHE A 548 37.950 -46.164 39.990 1.00 63.08 C +ATOM 3559 CE2 PHE A 548 37.588 -44.907 38.045 1.00 66.52 C +ATOM 3560 CZ PHE A 548 38.104 -46.009 38.650 1.00 60.88 C +ATOM 3561 N ASP A 549 34.498 -42.608 43.733 1.00 73.39 N +ATOM 3562 CA ASP A 549 33.942 -41.765 44.819 1.00 74.19 C +ATOM 3563 C ASP A 549 34.019 -40.290 44.470 1.00 74.94 C +ATOM 3564 O ASP A 549 33.154 -39.568 44.905 1.00 77.57 O +ATOM 3565 CB ASP A 549 34.752 -41.889 46.098 1.00 77.88 C +ATOM 3566 CG ASP A 549 34.771 -43.279 46.669 1.00 83.85 C +ATOM 3567 OD1 ASP A 549 34.803 -43.400 47.885 1.00 87.78 O +ATOM 3568 OD2 ASP A 549 34.765 -44.213 45.885 1.00 87.11 O +ATOM 3569 N ASN A 550 35.077 -39.853 43.802 1.00 75.38 N +ATOM 3570 CA ASN A 550 35.212 -38.425 43.428 1.00 74.12 C +ATOM 3571 C ASN A 550 34.167 -37.998 42.403 1.00 73.58 C +ATOM 3572 O ASN A 550 33.972 -36.816 42.292 1.00 77.44 O +ATOM 3573 CB ASN A 550 36.575 -38.063 42.869 1.00 68.99 C +ATOM 3574 CG ASN A 550 36.898 -38.834 41.621 1.00 71.19 C +ATOM 3575 OD1 ASN A 550 36.747 -40.038 41.599 1.00 71.21 O +ATOM 3576 ND2 ASN A 550 37.361 -38.162 40.592 1.00 71.71 N +ATOM 3577 N GLY A 551 33.649 -38.894 41.575 1.00 69.63 N +ATOM 3578 CA GLY A 551 32.652 -38.454 40.593 1.00 69.48 C +ATOM 3579 C GLY A 551 33.125 -38.764 39.206 1.00 66.80 C +ATOM 3580 O GLY A 551 32.664 -38.144 38.283 1.00 61.18 O +ATOM 3581 N LEU A 552 33.998 -39.746 39.104 1.00 65.18 N +ATOM 3582 CA LEU A 552 34.589 -40.105 37.828 1.00 60.79 C +ATOM 3583 C LEU A 552 33.846 -41.317 37.317 1.00 59.34 C +ATOM 3584 O LEU A 552 33.611 -42.268 38.065 1.00 61.93 O +ATOM 3585 CB LEU A 552 36.054 -40.481 37.988 1.00 64.61 C +ATOM 3586 CG LEU A 552 36.805 -40.573 36.675 1.00 65.86 C +ATOM 3587 CD1 LEU A 552 36.981 -39.130 36.214 1.00 64.20 C +ATOM 3588 CD2 LEU A 552 38.132 -41.328 36.815 1.00 67.94 C +ATOM 3589 N ALA A 553 33.466 -41.300 36.053 1.00 58.79 N +ATOM 3590 CA ALA A 553 32.589 -42.349 35.552 1.00 56.09 C +ATOM 3591 C ALA A 553 33.046 -42.738 34.165 1.00 55.34 C +ATOM 3592 O ALA A 553 32.538 -42.229 33.162 1.00 57.49 O +ATOM 3593 CB ALA A 553 31.124 -41.908 35.568 1.00 56.70 C +ATOM 3594 N PRO A 554 34.036 -43.614 34.070 1.00 56.20 N +ATOM 3595 CA PRO A 554 34.335 -44.253 32.793 1.00 52.30 C +ATOM 3596 C PRO A 554 33.302 -45.327 32.564 1.00 53.47 C +ATOM 3597 O PRO A 554 32.802 -45.926 33.519 1.00 54.23 O +ATOM 3598 CB PRO A 554 35.708 -44.868 33.024 1.00 53.69 C +ATOM 3599 CG PRO A 554 35.646 -45.231 34.435 1.00 54.15 C +ATOM 3600 CD PRO A 554 34.889 -44.138 35.140 1.00 57.51 C +ATOM 3601 N TYR A 555 32.959 -45.539 31.294 1.00 50.54 N +ATOM 3602 CA TYR A 555 31.889 -46.455 30.945 1.00 50.44 C +ATOM 3603 C TYR A 555 32.020 -46.828 29.479 1.00 52.66 C +ATOM 3604 O TYR A 555 32.707 -46.154 28.701 1.00 49.98 O +ATOM 3605 CB TYR A 555 30.518 -45.824 31.203 1.00 51.67 C +ATOM 3606 CG TYR A 555 30.153 -44.780 30.167 1.00 49.84 C +ATOM 3607 CD1 TYR A 555 30.495 -43.449 30.347 1.00 51.95 C +ATOM 3608 CD2 TYR A 555 29.454 -45.123 29.021 1.00 50.57 C +ATOM 3609 CE1 TYR A 555 30.169 -42.490 29.403 1.00 52.21 C +ATOM 3610 CE2 TYR A 555 29.115 -44.167 28.074 1.00 51.12 C +ATOM 3611 CZ TYR A 555 29.480 -42.854 28.274 1.00 50.39 C +ATOM 3612 OH TYR A 555 29.137 -41.901 27.344 1.00 55.41 O +ATOM 3613 N VAL A 556 31.299 -47.894 29.109 1.00 53.75 N +ATOM 3614 CA VAL A 556 31.250 -48.433 27.751 1.00 51.10 C +ATOM 3615 C VAL A 556 29.857 -49.007 27.545 1.00 50.99 C +ATOM 3616 O VAL A 556 29.181 -49.381 28.507 1.00 56.45 O +ATOM 3617 CB VAL A 556 32.319 -49.528 27.524 1.00 50.41 C +ATOM 3618 CG1 VAL A 556 32.102 -50.651 28.500 1.00 50.60 C +ATOM 3619 CG2 VAL A 556 32.231 -50.091 26.118 1.00 50.82 C +ATOM 3620 N SER A 557 29.428 -49.100 26.284 1.00 50.26 N +ATOM 3621 CA SER A 557 28.043 -49.459 25.984 1.00 53.29 C +ATOM 3622 C SER A 557 27.922 -50.016 24.573 1.00 55.19 C +ATOM 3623 O SER A 557 28.619 -49.563 23.655 1.00 54.35 O +ATOM 3624 CB SER A 557 27.108 -48.250 26.127 1.00 53.87 C +ATOM 3625 OG SER A 557 25.885 -48.491 25.449 1.00 57.12 O +ATOM 3626 N TYR A 558 27.033 -50.997 24.405 1.00 53.80 N +ATOM 3627 CA TYR A 558 26.703 -51.503 23.079 1.00 56.38 C +ATOM 3628 C TYR A 558 25.190 -51.487 22.949 1.00 59.45 C +ATOM 3629 O TYR A 558 24.486 -52.016 23.816 1.00 59.54 O +ATOM 3630 CB TYR A 558 27.266 -52.921 22.835 1.00 56.38 C +ATOM 3631 CG TYR A 558 26.823 -53.536 21.506 1.00 58.57 C +ATOM 3632 CD1 TYR A 558 27.624 -53.478 20.364 1.00 59.01 C +ATOM 3633 CD2 TYR A 558 25.584 -54.139 21.390 1.00 57.91 C +ATOM 3634 CE1 TYR A 558 27.182 -54.026 19.151 1.00 59.32 C +ATOM 3635 CE2 TYR A 558 25.149 -54.682 20.198 1.00 55.91 C +ATOM 3636 CZ TYR A 558 25.934 -54.623 19.088 1.00 56.94 C +ATOM 3637 OH TYR A 558 25.445 -55.181 17.929 1.00 67.43 O +ATOM 3638 N SER A 559 24.685 -50.869 21.887 1.00 58.83 N +ATOM 3639 CA SER A 559 23.251 -50.701 21.739 1.00 54.15 C +ATOM 3640 C SER A 559 22.892 -50.931 20.290 1.00 55.07 C +ATOM 3641 O SER A 559 23.734 -50.797 19.402 1.00 57.43 O +ATOM 3642 CB SER A 559 22.788 -49.310 22.181 1.00 55.42 C +ATOM 3643 OG SER A 559 21.413 -49.129 21.856 1.00 67.81 O +ATOM 3644 N GLU A 560 21.631 -51.270 20.050 1.00 57.78 N +ATOM 3645 CA GLU A 560 21.174 -51.519 18.693 1.00 57.27 C +ATOM 3646 C GLU A 560 19.891 -50.759 18.388 1.00 57.37 C +ATOM 3647 O GLU A 560 19.171 -50.319 19.291 1.00 57.07 O +ATOM 3648 CB GLU A 560 20.959 -52.993 18.455 1.00 55.98 C +ATOM 3649 CG GLU A 560 22.222 -53.774 18.515 1.00 59.03 C +ATOM 3650 CD GLU A 560 21.908 -55.231 18.553 1.00 66.12 C +ATOM 3651 OE1 GLU A 560 22.805 -56.038 18.218 1.00 70.35 O +ATOM 3652 OE2 GLU A 560 20.746 -55.555 18.906 1.00 62.95 O +ATOM 3653 N SER A 561 19.625 -50.594 17.090 1.00 54.74 N +ATOM 3654 CA SER A 561 18.427 -49.900 16.637 1.00 55.86 C +ATOM 3655 C SER A 561 17.973 -50.482 15.300 1.00 59.71 C +ATOM 3656 O SER A 561 18.681 -51.279 14.673 1.00 61.77 O +ATOM 3657 CB SER A 561 18.670 -48.393 16.514 1.00 55.66 C +ATOM 3658 OG SER A 561 19.272 -48.093 15.269 1.00 56.76 O +ATOM 3659 N PHE A 562 16.773 -50.074 14.875 1.00 58.10 N +ATOM 3660 CA PHE A 562 16.193 -50.495 13.603 1.00 58.20 C +ATOM 3661 C PHE A 562 15.087 -49.526 13.202 1.00 60.39 C +ATOM 3662 O PHE A 562 14.552 -48.786 14.038 1.00 59.21 O +ATOM 3663 CB PHE A 562 15.639 -51.916 13.682 1.00 54.69 C +ATOM 3664 CG PHE A 562 14.337 -52.003 14.404 1.00 57.63 C +ATOM 3665 CD1 PHE A 562 14.307 -52.278 15.760 1.00 57.69 C +ATOM 3666 CD2 PHE A 562 13.137 -51.772 13.739 1.00 59.82 C +ATOM 3667 CE1 PHE A 562 13.095 -52.353 16.446 1.00 58.05 C +ATOM 3668 CE2 PHE A 562 11.915 -51.835 14.413 1.00 55.16 C +ATOM 3669 CZ PHE A 562 11.892 -52.124 15.767 1.00 56.43 C +ATOM 3670 N ASN A 563 14.719 -49.566 11.897 1.00 60.89 N +ATOM 3671 CA ASN A 563 13.714 -48.651 11.351 1.00 61.23 C +ATOM 3672 C ASN A 563 13.237 -49.065 9.960 1.00 65.02 C +ATOM 3673 O ASN A 563 14.058 -49.271 9.057 1.00 70.89 O +ATOM 3674 CB ASN A 563 14.287 -47.234 11.312 1.00 58.70 C +ATOM 3675 CG ASN A 563 13.293 -46.217 10.834 1.00 61.71 C +ATOM 3676 OD1 ASN A 563 12.289 -45.949 11.496 1.00 62.84 O +ATOM 3677 ND2 ASN A 563 13.556 -45.647 9.665 1.00 69.02 N +ATOM 3678 N PRO A 564 11.927 -49.161 9.735 1.00 63.27 N +ATOM 3679 CA PRO A 564 11.433 -49.675 8.449 1.00 63.35 C +ATOM 3680 C PRO A 564 12.016 -48.918 7.269 1.00 68.57 C +ATOM 3681 O PRO A 564 11.994 -47.686 7.215 1.00 71.97 O +ATOM 3682 CB PRO A 564 9.911 -49.484 8.537 1.00 65.05 C +ATOM 3683 CG PRO A 564 9.585 -49.263 9.961 1.00 59.93 C +ATOM 3684 CD PRO A 564 10.859 -48.980 10.731 1.00 61.79 C +ATOM 3685 N ASN A 565 12.509 -49.673 6.300 1.00 72.70 N +ATOM 3686 CA ASN A 565 13.149 -49.063 5.151 1.00 75.76 C +ATOM 3687 C ASN A 565 12.113 -48.309 4.335 1.00 77.16 C +ATOM 3688 O ASN A 565 11.062 -48.854 3.996 1.00 76.75 O +ATOM 3689 CB ASN A 565 13.834 -50.137 4.306 1.00 78.53 C +ATOM 3690 CG ASN A 565 15.093 -49.627 3.628 1.00 81.08 C +ATOM 3691 OD1 ASN A 565 15.116 -48.517 3.102 1.00 85.45 O +ATOM 3692 ND2 ASN A 565 16.159 -50.417 3.675 1.00 79.27 N +ATOM 3693 N ALA A 566 12.408 -47.053 4.020 1.00 81.47 N +ATOM 3694 CA ALA A 566 11.498 -46.293 3.166 1.00 80.14 C +ATOM 3695 C ALA A 566 11.576 -46.701 1.716 1.00 86.01 C +ATOM 3696 O ALA A 566 10.955 -45.991 0.905 1.00 91.15 O +ATOM 3697 CB ALA A 566 11.776 -44.793 3.289 1.00 76.79 C +ATOM 3698 N TYR A 567 12.268 -47.782 1.347 1.00 87.55 N +ATOM 3699 CA TYR A 567 12.527 -48.126 -0.047 1.00 85.28 C +ATOM 3700 C TYR A 567 11.941 -49.492 -0.373 1.00 87.57 C +ATOM 3701 O TYR A 567 11.615 -50.274 0.521 1.00 92.01 O +ATOM 3702 CB TYR A 567 14.032 -48.121 -0.342 1.00 91.74 C +ATOM 3703 CG TYR A 567 14.645 -46.745 -0.222 1.00 94.71 C +ATOM 3704 CD1 TYR A 567 15.166 -46.096 -1.331 1.00 97.77 C +ATOM 3705 CD2 TYR A 567 14.668 -46.079 0.998 1.00 89.05 C +ATOM 3706 CE1 TYR A 567 15.711 -44.833 -1.225 1.00 99.27 C +ATOM 3707 CE2 TYR A 567 15.202 -44.815 1.113 1.00 92.24 C +ATOM 3708 CZ TYR A 567 15.727 -44.193 0.001 1.00101.05 C +ATOM 3709 OH TYR A 567 16.269 -42.927 0.122 1.00109.19 O +ATOM 3710 N SER A 568 11.812 -49.777 -1.670 1.00 96.53 N +ATOM 3711 CA SER A 568 11.222 -51.024 -2.144 1.00100.52 C +ATOM 3712 C SER A 568 12.088 -51.662 -3.224 1.00104.14 C +ATOM 3713 O SER A 568 12.677 -50.969 -4.058 1.00104.85 O +ATOM 3714 CB SER A 568 9.809 -50.798 -2.693 1.00100.81 C +ATOM 3715 OG SER A 568 8.875 -50.673 -1.637 1.00100.27 O +ATOM 3716 N ASP A 569 12.117 -52.998 -3.233 1.00107.08 N +ATOM 3717 CA ASP A 569 13.032 -53.746 -4.086 1.00112.94 C +ATOM 3718 C ASP A 569 12.438 -53.907 -5.487 1.00115.76 C +ATOM 3719 O ASP A 569 11.447 -53.267 -5.848 1.00112.94 O +ATOM 3720 CB ASP A 569 13.395 -55.098 -3.450 1.00114.71 C +ATOM 3721 CG ASP A 569 12.301 -56.164 -3.610 1.00118.70 C +ATOM 3722 OD1 ASP A 569 11.137 -55.825 -3.925 1.00118.59 O +ATOM 3723 OD2 ASP A 569 12.628 -57.363 -3.447 1.00119.25 O +ATOM 3724 N ALA A 570 13.062 -54.771 -6.295 1.00116.61 N +ATOM 3725 CA ALA A 570 12.621 -54.967 -7.671 1.00117.67 C +ATOM 3726 C ALA A 570 11.154 -55.389 -7.736 1.00122.42 C +ATOM 3727 O ALA A 570 10.400 -54.901 -8.585 1.00123.98 O +ATOM 3728 CB ALA A 570 13.518 -56.000 -8.354 1.00117.29 C +ATOM 3729 N SER A 571 10.727 -56.290 -6.847 1.00122.98 N +ATOM 3730 CA SER A 571 9.341 -56.754 -6.858 1.00122.70 C +ATOM 3731 C SER A 571 8.351 -55.701 -6.383 1.00117.35 C +ATOM 3732 O SER A 571 7.145 -55.869 -6.594 1.00117.95 O +ATOM 3733 CB SER A 571 9.192 -58.005 -5.990 1.00123.14 C +ATOM 3734 OG SER A 571 9.903 -59.095 -6.548 1.00126.45 O +ATOM 3735 N GLY A 572 8.819 -54.629 -5.759 1.00114.68 N +ATOM 3736 CA GLY A 572 7.935 -53.691 -5.107 1.00114.04 C +ATOM 3737 C GLY A 572 7.751 -53.943 -3.629 1.00113.98 C +ATOM 3738 O GLY A 572 7.054 -53.161 -2.965 1.00111.23 O +ATOM 3739 N THR A 573 8.346 -55.010 -3.095 1.00113.19 N +ATOM 3740 CA THR A 573 8.317 -55.269 -1.658 1.00108.85 C +ATOM 3741 C THR A 573 9.353 -54.397 -0.954 1.00106.48 C +ATOM 3742 O THR A 573 10.548 -54.531 -1.243 1.00106.54 O +ATOM 3743 CB THR A 573 8.627 -56.732 -1.378 1.00108.82 C +ATOM 3744 OG1 THR A 573 7.870 -57.570 -2.262 1.00111.78 O +ATOM 3745 CG2 THR A 573 8.295 -57.070 0.069 1.00106.84 C +ATOM 3746 N PRO A 574 8.959 -53.530 -0.014 1.00102.71 N +ATOM 3747 CA PRO A 574 9.955 -52.673 0.640 1.00101.95 C +ATOM 3748 C PRO A 574 11.010 -53.487 1.370 1.00 97.63 C +ATOM 3749 O PRO A 574 10.735 -54.543 1.948 1.00 96.40 O +ATOM 3750 CB PRO A 574 9.124 -51.816 1.606 1.00 95.39 C +ATOM 3751 CG PRO A 574 7.921 -52.564 1.835 1.00 94.03 C +ATOM 3752 CD PRO A 574 7.618 -53.279 0.526 1.00 99.28 C +ATOM 3753 N LEU A 575 12.229 -52.953 1.342 1.00 92.20 N +ATOM 3754 CA LEU A 575 13.422 -53.667 1.742 1.00 90.43 C +ATOM 3755 C LEU A 575 13.407 -53.948 3.244 1.00 87.82 C +ATOM 3756 O LEU A 575 12.535 -53.492 3.989 1.00 84.94 O +ATOM 3757 CB LEU A 575 14.657 -52.860 1.356 1.00 89.24 C +ATOM 3758 CG LEU A 575 14.874 -52.783 -0.145 1.00 91.51 C +ATOM 3759 CD1 LEU A 575 15.652 -51.524 -0.476 1.00 94.92 C +ATOM 3760 CD2 LEU A 575 15.595 -54.034 -0.625 1.00 99.05 C +ATOM 3761 N ALA A 576 14.395 -54.727 3.675 1.00 86.43 N +ATOM 3762 CA ALA A 576 14.525 -55.057 5.083 1.00 81.20 C +ATOM 3763 C ALA A 576 14.781 -53.787 5.892 1.00 79.81 C +ATOM 3764 O ALA A 576 15.464 -52.869 5.415 1.00 79.92 O +ATOM 3765 CB ALA A 576 15.666 -56.055 5.293 1.00 80.98 C +ATOM 3766 N PRO A 577 14.251 -53.693 7.104 1.00 73.11 N +ATOM 3767 CA PRO A 577 14.499 -52.499 7.905 1.00 72.33 C +ATOM 3768 C PRO A 577 15.993 -52.235 7.962 1.00 73.21 C +ATOM 3769 O PRO A 577 16.799 -53.169 7.986 1.00 75.87 O +ATOM 3770 CB PRO A 577 13.928 -52.872 9.276 1.00 67.64 C +ATOM 3771 CG PRO A 577 12.893 -53.899 8.990 1.00 69.07 C +ATOM 3772 CD PRO A 577 13.398 -54.666 7.804 1.00 74.76 C +ATOM 3773 N THR A 578 16.368 -50.957 7.897 1.00 69.90 N +ATOM 3774 CA THR A 578 17.753 -50.603 8.160 1.00 73.36 C +ATOM 3775 C THR A 578 18.051 -50.920 9.616 1.00 71.62 C +ATOM 3776 O THR A 578 17.180 -50.797 10.483 1.00 66.75 O +ATOM 3777 CB THR A 578 18.035 -49.124 7.852 1.00 70.68 C +ATOM 3778 OG1 THR A 578 17.309 -48.277 8.749 1.00 69.78 O +ATOM 3779 CG2 THR A 578 17.646 -48.790 6.431 1.00 75.52 C +ATOM 3780 N GLU A 579 19.259 -51.395 9.881 1.00 71.81 N +ATOM 3781 CA GLU A 579 19.660 -51.703 11.243 1.00 66.87 C +ATOM 3782 C GLU A 579 20.768 -50.751 11.671 1.00 65.03 C +ATOM 3783 O GLU A 579 21.558 -50.279 10.844 1.00 70.23 O +ATOM 3784 CB GLU A 579 20.132 -53.155 11.373 1.00 67.44 C +ATOM 3785 CG GLU A 579 19.028 -54.198 11.226 1.00 74.22 C +ATOM 3786 CD GLU A 579 19.573 -55.577 10.852 1.00 86.98 C +ATOM 3787 OE1 GLU A 579 19.501 -56.506 11.689 1.00 87.58 O +ATOM 3788 OE2 GLU A 579 20.065 -55.734 9.711 1.00 95.61 O +ATOM 3789 N GLY A 580 20.798 -50.450 12.968 1.00 61.60 N +ATOM 3790 CA GLY A 580 21.886 -49.692 13.563 1.00 55.02 C +ATOM 3791 C GLY A 580 22.522 -50.419 14.739 1.00 57.77 C +ATOM 3792 O GLY A 580 21.813 -51.050 15.543 1.00 57.93 O +ATOM 3793 N LYS A 581 23.857 -50.338 14.843 1.00 56.68 N +ATOM 3794 CA LYS A 581 24.636 -51.007 15.883 1.00 59.01 C +ATOM 3795 C LYS A 581 25.828 -50.122 16.253 1.00 56.99 C +ATOM 3796 O LYS A 581 26.575 -49.684 15.367 1.00 60.30 O +ATOM 3797 CB LYS A 581 25.078 -52.412 15.403 1.00 60.33 C +ATOM 3798 CG LYS A 581 23.863 -53.293 14.989 1.00 68.54 C +ATOM 3799 CD LYS A 581 24.170 -54.739 14.572 1.00 70.92 C +ATOM 3800 CE LYS A 581 22.937 -55.407 13.904 1.00 76.65 C +ATOM 3801 NZ LYS A 581 21.681 -55.499 14.752 1.00 72.13 N +ATOM 3802 N GLN A 582 26.001 -49.848 17.558 1.00 56.48 N +ATOM 3803 CA GLN A 582 26.972 -48.865 18.033 1.00 58.76 C +ATOM 3804 C GLN A 582 27.845 -49.376 19.175 1.00 55.10 C +ATOM 3805 O GLN A 582 27.349 -49.981 20.124 1.00 56.58 O +ATOM 3806 CB GLN A 582 26.268 -47.605 18.516 1.00 59.00 C +ATOM 3807 CG GLN A 582 27.214 -46.597 19.152 1.00 57.22 C +ATOM 3808 CD GLN A 582 26.467 -45.521 19.890 1.00 54.48 C +ATOM 3809 OE1 GLN A 582 26.100 -44.508 19.298 1.00 56.28 O +ATOM 3810 NE2 GLN A 582 26.243 -45.723 21.191 1.00 55.75 N +ATOM 3811 N TRP A 583 29.135 -49.059 19.107 1.00 54.98 N +ATOM 3812 CA TRP A 583 30.073 -49.205 20.212 1.00 57.24 C +ATOM 3813 C TRP A 583 30.402 -47.807 20.731 1.00 58.58 C +ATOM 3814 O TRP A 583 30.617 -46.883 19.934 1.00 60.16 O +ATOM 3815 CB TRP A 583 31.362 -49.917 19.749 1.00 59.29 C +ATOM 3816 CG TRP A 583 31.190 -51.386 19.540 1.00 58.86 C +ATOM 3817 CD1 TRP A 583 31.080 -52.056 18.327 1.00 57.20 C +ATOM 3818 CD2 TRP A 583 31.104 -52.359 20.581 1.00 59.49 C +ATOM 3819 CE2 TRP A 583 30.929 -53.629 19.972 1.00 61.44 C +ATOM 3820 CE3 TRP A 583 31.153 -52.274 21.980 1.00 59.99 C +ATOM 3821 CZ2 TRP A 583 30.782 -54.802 20.715 1.00 66.87 C +ATOM 3822 CZ3 TRP A 583 31.013 -53.442 22.724 1.00 60.24 C +ATOM 3823 CH2 TRP A 583 30.841 -54.695 22.087 1.00 65.21 C +ATOM 3824 N GLU A 584 30.424 -47.632 22.057 1.00 51.76 N +ATOM 3825 CA GLU A 584 30.619 -46.308 22.644 1.00 52.56 C +ATOM 3826 C GLU A 584 31.430 -46.409 23.930 1.00 55.66 C +ATOM 3827 O GLU A 584 31.189 -47.283 24.773 1.00 55.17 O +ATOM 3828 CB GLU A 584 29.266 -45.582 22.932 1.00 54.98 C +ATOM 3829 CG GLU A 584 29.379 -44.361 23.896 1.00 55.35 C +ATOM 3830 CD GLU A 584 28.120 -43.468 23.987 1.00 63.15 C +ATOM 3831 OE1 GLU A 584 27.163 -43.645 23.204 1.00 67.44 O +ATOM 3832 OE2 GLU A 584 28.078 -42.593 24.890 1.00 65.97 O +ATOM 3833 N LEU A 585 32.389 -45.495 24.062 1.00 54.52 N +ATOM 3834 CA LEU A 585 33.220 -45.300 25.241 1.00 50.65 C +ATOM 3835 C LEU A 585 33.091 -43.867 25.711 1.00 50.37 C +ATOM 3836 O LEU A 585 33.031 -42.939 24.893 1.00 53.06 O +ATOM 3837 CB LEU A 585 34.685 -45.621 24.944 1.00 56.91 C +ATOM 3838 CG LEU A 585 35.055 -47.096 24.906 1.00 57.23 C +ATOM 3839 CD1 LEU A 585 36.382 -47.275 24.231 1.00 61.67 C +ATOM 3840 CD2 LEU A 585 35.192 -47.437 26.418 1.00 60.26 C +ATOM 3841 N GLY A 586 33.052 -43.699 27.032 1.00 50.21 N +ATOM 3842 CA GLY A 586 32.788 -42.403 27.610 1.00 50.72 C +ATOM 3843 C GLY A 586 33.423 -42.209 28.963 1.00 50.79 C +ATOM 3844 O GLY A 586 33.592 -43.143 29.755 1.00 51.93 O +ATOM 3845 N LEU A 587 33.796 -40.977 29.227 1.00 52.23 N +ATOM 3846 CA LEU A 587 34.224 -40.553 30.546 1.00 55.09 C +ATOM 3847 C LEU A 587 33.211 -39.513 30.991 1.00 55.96 C +ATOM 3848 O LEU A 587 32.934 -38.551 30.260 1.00 55.69 O +ATOM 3849 CB LEU A 587 35.634 -39.971 30.499 1.00 53.93 C +ATOM 3850 CG LEU A 587 36.128 -39.545 31.856 1.00 55.93 C +ATOM 3851 CD1 LEU A 587 36.207 -40.801 32.717 1.00 60.48 C +ATOM 3852 CD2 LEU A 587 37.500 -38.841 31.721 1.00 56.68 C +ATOM 3853 N LYS A 588 32.593 -39.742 32.131 1.00 58.98 N +ATOM 3854 CA LYS A 588 31.796 -38.691 32.725 1.00 57.99 C +ATOM 3855 C LYS A 588 32.521 -38.244 33.976 1.00 54.29 C +ATOM 3856 O LYS A 588 33.424 -38.935 34.462 1.00 56.57 O +ATOM 3857 CB LYS A 588 30.368 -39.154 33.022 1.00 52.36 C +ATOM 3858 CG LYS A 588 29.557 -39.330 31.745 1.00 52.34 C +ATOM 3859 CD LYS A 588 28.369 -40.271 31.906 1.00 54.06 C +ATOM 3860 CE LYS A 588 27.240 -39.868 30.954 1.00 55.37 C +ATOM 3861 NZ LYS A 588 26.029 -40.697 31.128 1.00 51.87 N +ATOM 3862 N PHE A 589 32.183 -37.041 34.447 1.00 56.40 N +ATOM 3863 CA PHE A 589 32.742 -36.569 35.714 1.00 61.08 C +ATOM 3864 C PHE A 589 32.063 -35.309 36.252 1.00 61.86 C +ATOM 3865 O PHE A 589 31.914 -34.312 35.528 1.00 60.97 O +ATOM 3866 CB PHE A 589 34.234 -36.320 35.548 1.00 63.66 C +ATOM 3867 CG PHE A 589 34.811 -35.457 36.608 1.00 59.93 C +ATOM 3868 CD1 PHE A 589 35.216 -35.991 37.819 1.00 63.03 C +ATOM 3869 CD2 PHE A 589 34.942 -34.104 36.405 1.00 62.92 C +ATOM 3870 CE1 PHE A 589 35.769 -35.172 38.815 1.00 65.85 C +ATOM 3871 CE2 PHE A 589 35.486 -33.286 37.394 1.00 67.25 C +ATOM 3872 CZ PHE A 589 35.898 -33.822 38.601 1.00 64.27 C +ATOM 3873 N GLN A 590 31.663 -35.335 37.527 1.00 62.63 N +ATOM 3874 CA GLN A 590 31.117 -34.158 38.198 1.00 67.35 C +ATOM 3875 C GLN A 590 31.707 -34.061 39.584 1.00 68.51 C +ATOM 3876 O GLN A 590 31.519 -34.972 40.393 1.00 66.34 O +ATOM 3877 CB GLN A 590 29.596 -34.186 38.313 1.00 70.78 C +ATOM 3878 CG GLN A 590 29.072 -32.945 39.016 1.00 74.68 C +ATOM 3879 CD GLN A 590 27.556 -32.868 39.078 1.00 75.45 C +ATOM 3880 OE1 GLN A 590 26.847 -33.860 38.892 1.00 70.89 O +ATOM 3881 NE2 GLN A 590 27.053 -31.667 39.309 1.00 80.05 N +ATOM 3882 N ALA A 591 32.403 -32.961 39.861 1.00 74.48 N +ATOM 3883 CA ALA A 591 32.863 -32.737 41.218 1.00 82.32 C +ATOM 3884 C ALA A 591 31.639 -32.652 42.121 1.00 88.75 C +ATOM 3885 O ALA A 591 30.709 -31.887 41.819 1.00 88.45 O +ATOM 3886 CB ALA A 591 33.694 -31.463 41.319 1.00 85.85 C +ATOM 3887 N PRO A 592 31.580 -33.439 43.203 1.00 90.78 N +ATOM 3888 CA PRO A 592 30.361 -33.453 44.036 1.00 92.71 C +ATOM 3889 C PRO A 592 29.938 -32.079 44.508 1.00 97.55 C +ATOM 3890 O PRO A 592 28.746 -31.743 44.466 1.00 96.91 O +ATOM 3891 CB PRO A 592 30.756 -34.358 45.211 1.00 83.24 C +ATOM 3892 CG PRO A 592 31.803 -35.241 44.666 1.00 82.29 C +ATOM 3893 CD PRO A 592 32.571 -34.424 43.658 1.00 85.96 C +ATOM 3894 N GLY A 593 30.892 -31.270 44.956 1.00 99.96 N +ATOM 3895 CA GLY A 593 30.577 -29.934 45.403 1.00 99.95 C +ATOM 3896 C GLY A 593 30.075 -29.084 44.260 1.00102.53 C +ATOM 3897 O GLY A 593 28.939 -28.604 44.293 1.00102.60 O +ATOM 3898 N SER A 594 30.890 -28.926 43.223 1.00101.65 N +ATOM 3899 CA SER A 594 30.547 -27.960 42.203 1.00 99.36 C +ATOM 3900 C SER A 594 29.325 -28.402 41.412 1.00 95.84 C +ATOM 3901 O SER A 594 28.840 -29.529 41.483 1.00 94.73 O +ATOM 3902 CB SER A 594 31.709 -27.719 41.241 1.00 97.24 C +ATOM 3903 OG SER A 594 31.732 -28.708 40.227 1.00 94.79 O +ATOM 3904 N ASN A 595 28.870 -27.464 40.617 1.00 91.01 N +ATOM 3905 CA ASN A 595 27.732 -27.549 39.718 1.00 87.45 C +ATOM 3906 C ASN A 595 28.177 -27.638 38.272 1.00 86.54 C +ATOM 3907 O ASN A 595 27.600 -27.025 37.369 1.00 89.42 O +ATOM 3908 CB ASN A 595 26.815 -26.372 39.978 1.00 92.57 C +ATOM 3909 CG ASN A 595 25.829 -26.696 40.989 1.00 96.74 C +ATOM 3910 OD1 ASN A 595 25.041 -27.619 40.762 1.00101.68 O +ATOM 3911 ND2 ASN A 595 26.031 -26.180 42.222 1.00105.53 N +ATOM 3912 N SER A 596 29.210 -28.438 38.069 1.00 80.89 N +ATOM 3913 CA SER A 596 29.881 -28.584 36.799 1.00 74.85 C +ATOM 3914 C SER A 596 30.010 -30.064 36.486 1.00 75.58 C +ATOM 3915 O SER A 596 30.309 -30.865 37.375 1.00 79.16 O +ATOM 3916 CB SER A 596 31.223 -27.907 36.859 1.00 78.97 C +ATOM 3917 OG SER A 596 31.026 -26.558 37.248 1.00 82.95 O +ATOM 3918 N PHE A 597 29.778 -30.413 35.219 1.00 72.92 N +ATOM 3919 CA PHE A 597 29.637 -31.795 34.772 1.00 66.17 C +ATOM 3920 C PHE A 597 30.267 -31.943 33.395 1.00 64.07 C +ATOM 3921 O PHE A 597 29.841 -31.267 32.452 1.00 66.97 O +ATOM 3922 CB PHE A 597 28.161 -32.158 34.715 1.00 64.45 C +ATOM 3923 CG PHE A 597 27.897 -33.536 34.234 1.00 63.49 C +ATOM 3924 CD1 PHE A 597 28.163 -34.619 35.041 1.00 66.17 C +ATOM 3925 CD2 PHE A 597 27.350 -33.757 32.990 1.00 66.63 C +ATOM 3926 CE1 PHE A 597 27.903 -35.907 34.610 1.00 59.76 C +ATOM 3927 CE2 PHE A 597 27.085 -35.050 32.552 1.00 63.25 C +ATOM 3928 CZ PHE A 597 27.365 -36.122 33.368 1.00 58.07 C +ATOM 3929 N TYR A 598 31.232 -32.851 33.255 1.00 59.68 N +ATOM 3930 CA TYR A 598 32.052 -32.934 32.054 1.00 55.00 C +ATOM 3931 C TYR A 598 31.896 -34.274 31.366 1.00 53.81 C +ATOM 3932 O TYR A 598 31.777 -35.312 32.019 1.00 57.00 O +ATOM 3933 CB TYR A 598 33.508 -32.690 32.394 1.00 62.30 C +ATOM 3934 CG TYR A 598 33.674 -31.316 32.982 1.00 64.89 C +ATOM 3935 CD1 TYR A 598 33.964 -30.218 32.174 1.00 63.87 C +ATOM 3936 CD2 TYR A 598 33.471 -31.097 34.334 1.00 68.22 C +ATOM 3937 CE1 TYR A 598 34.082 -28.940 32.709 1.00 63.84 C +ATOM 3938 CE2 TYR A 598 33.586 -29.826 34.880 1.00 69.63 C +ATOM 3939 CZ TYR A 598 33.890 -28.752 34.061 1.00 67.63 C +ATOM 3940 OH TYR A 598 33.999 -27.494 34.605 1.00 69.12 O +ATOM 3941 N THR A 599 31.907 -34.248 30.041 1.00 53.04 N +ATOM 3942 CA THR A 599 31.610 -35.443 29.272 1.00 52.72 C +ATOM 3943 C THR A 599 32.452 -35.525 28.029 1.00 53.69 C +ATOM 3944 O THR A 599 32.481 -34.589 27.225 1.00 57.02 O +ATOM 3945 CB THR A 599 30.149 -35.498 28.883 1.00 59.11 C +ATOM 3946 OG1 THR A 599 29.379 -35.746 30.069 1.00 58.44 O +ATOM 3947 CG2 THR A 599 29.923 -36.547 27.797 1.00 60.93 C +ATOM 3948 N ALA A 600 33.107 -36.658 27.868 1.00 52.98 N +ATOM 3949 CA ALA A 600 33.633 -37.070 26.580 1.00 55.02 C +ATOM 3950 C ALA A 600 32.904 -38.342 26.175 1.00 54.39 C +ATOM 3951 O ALA A 600 32.716 -39.241 27.004 1.00 55.20 O +ATOM 3952 CB ALA A 600 35.139 -37.297 26.648 1.00 55.98 C +ATOM 3953 N SER A 601 32.461 -38.404 24.927 1.00 54.41 N +ATOM 3954 CA SER A 601 31.862 -39.612 24.386 1.00 54.18 C +ATOM 3955 C SER A 601 32.595 -39.941 23.101 1.00 53.75 C +ATOM 3956 O SER A 601 32.840 -39.049 22.281 1.00 56.25 O +ATOM 3957 CB SER A 601 30.371 -39.435 24.112 1.00 54.48 C +ATOM 3958 OG SER A 601 29.704 -39.053 25.298 1.00 62.20 O +ATOM 3959 N LEU A 602 32.934 -41.217 22.933 1.00 51.02 N +ATOM 3960 CA LEU A 602 33.652 -41.722 21.774 1.00 52.14 C +ATOM 3961 C LEU A 602 32.713 -42.735 21.133 1.00 56.33 C +ATOM 3962 O LEU A 602 32.190 -43.601 21.842 1.00 57.44 O +ATOM 3963 CB LEU A 602 34.931 -42.399 22.240 1.00 54.34 C +ATOM 3964 CG LEU A 602 35.994 -42.845 21.257 1.00 59.90 C +ATOM 3965 CD1 LEU A 602 36.648 -41.599 20.671 1.00 62.10 C +ATOM 3966 CD2 LEU A 602 37.029 -43.749 21.917 1.00 56.23 C +ATOM 3967 N PHE A 603 32.439 -42.622 19.823 1.00 59.25 N +ATOM 3968 CA PHE A 603 31.390 -43.459 19.228 1.00 57.38 C +ATOM 3969 C PHE A 603 31.789 -44.076 17.884 1.00 61.50 C +ATOM 3970 O PHE A 603 32.575 -43.502 17.121 1.00 61.33 O +ATOM 3971 CB PHE A 603 30.060 -42.664 19.061 1.00 59.28 C +ATOM 3972 CG PHE A 603 30.110 -41.525 18.054 1.00 59.04 C +ATOM 3973 CD1 PHE A 603 30.295 -40.215 18.475 1.00 59.56 C +ATOM 3974 CD2 PHE A 603 29.891 -41.763 16.700 1.00 58.55 C +ATOM 3975 CE1 PHE A 603 30.312 -39.171 17.559 1.00 60.33 C +ATOM 3976 CE2 PHE A 603 29.910 -40.724 15.776 1.00 61.13 C +ATOM 3977 CZ PHE A 603 30.118 -39.427 16.210 1.00 62.77 C +ATOM 3978 N HIS A 604 31.219 -45.261 17.597 1.00 60.96 N +ATOM 3979 CA HIS A 604 31.366 -45.931 16.296 1.00 62.68 C +ATOM 3980 C HIS A 604 30.061 -46.657 15.985 1.00 61.51 C +ATOM 3981 O HIS A 604 29.698 -47.609 16.686 1.00 59.78 O +ATOM 3982 CB HIS A 604 32.536 -46.913 16.299 1.00 65.01 C +ATOM 3983 CG HIS A 604 32.556 -47.858 15.131 1.00 69.41 C +ATOM 3984 ND1 HIS A 604 33.372 -47.670 14.030 1.00 66.25 N +ATOM 3985 CD2 HIS A 604 31.837 -48.981 14.881 1.00 70.39 C +ATOM 3986 CE1 HIS A 604 33.176 -48.651 13.166 1.00 69.18 C +ATOM 3987 NE2 HIS A 604 32.247 -49.457 13.656 1.00 77.53 N +ATOM 3988 N ILE A 605 29.380 -46.228 14.921 1.00 61.40 N +ATOM 3989 CA ILE A 605 28.048 -46.706 14.573 1.00 61.17 C +ATOM 3990 C ILE A 605 28.068 -47.269 13.163 1.00 60.70 C +ATOM 3991 O ILE A 605 28.734 -46.725 12.276 1.00 61.52 O +ATOM 3992 CB ILE A 605 27.002 -45.583 14.644 1.00 56.70 C +ATOM 3993 CG1 ILE A 605 27.034 -44.862 15.986 1.00 53.57 C +ATOM 3994 CG2 ILE A 605 25.624 -46.120 14.306 1.00 56.01 C +ATOM 3995 CD1 ILE A 605 26.397 -43.456 15.870 1.00 53.10 C +ATOM 3996 N THR A 606 27.287 -48.328 12.934 1.00 57.97 N +ATOM 3997 CA THR A 606 27.188 -48.880 11.584 1.00 63.60 C +ATOM 3998 C THR A 606 25.725 -49.121 11.228 1.00 62.49 C +ATOM 3999 O THR A 606 24.955 -49.588 12.072 1.00 63.40 O +ATOM 4000 CB THR A 606 27.981 -50.185 11.455 1.00 64.88 C +ATOM 4001 OG1 THR A 606 29.321 -49.986 11.938 1.00 71.78 O +ATOM 4002 CG2 THR A 606 28.053 -50.595 9.984 1.00 71.79 C +ATOM 4003 N GLN A 607 25.332 -48.794 9.990 1.00 66.26 N +ATOM 4004 CA GLN A 607 23.950 -48.964 9.540 1.00 69.63 C +ATOM 4005 C GLN A 607 23.896 -49.981 8.405 1.00 72.15 C +ATOM 4006 O GLN A 607 24.429 -49.726 7.321 1.00 72.60 O +ATOM 4007 CB GLN A 607 23.360 -47.643 9.059 1.00 73.22 C +ATOM 4008 CG GLN A 607 21.878 -47.703 8.683 1.00 74.47 C +ATOM 4009 CD GLN A 607 21.352 -46.342 8.266 1.00 74.63 C +ATOM 4010 OE1 GLN A 607 22.119 -45.393 8.103 1.00 76.41 O +ATOM 4011 NE2 GLN A 607 20.041 -46.225 8.154 1.00 78.58 N +ATOM 4012 N GLU A 608 23.196 -51.094 8.634 1.00 72.83 N +ATOM 4013 CA GLU A 608 22.972 -52.145 7.653 1.00 76.54 C +ATOM 4014 C GLU A 608 21.825 -51.799 6.707 1.00 79.82 C +ATOM 4015 O GLU A 608 21.007 -50.903 6.949 1.00 80.34 O +ATOM 4016 CB GLU A 608 22.589 -53.459 8.331 1.00 86.26 C +ATOM 4017 CG GLU A 608 23.470 -53.983 9.468 1.00 86.44 C +ATOM 4018 CD GLU A 608 24.805 -54.497 9.004 1.00 92.31 C +ATOM 4019 OE1 GLU A 608 24.955 -54.759 7.793 1.00 95.85 O +ATOM 4020 OE2 GLU A 608 25.682 -54.705 9.864 1.00 98.22 O +ATOM 4021 N ASN A 609 21.736 -52.584 5.643 1.00 81.75 N +ATOM 4022 CA ASN A 609 20.508 -52.684 4.873 1.00 82.75 C +ATOM 4023 C ASN A 609 20.041 -51.321 4.371 1.00 79.58 C +ATOM 4024 O ASN A 609 18.845 -51.097 4.189 1.00 80.59 O +ATOM 4025 CB ASN A 609 19.423 -53.367 5.713 1.00 83.21 C +ATOM 4026 CG ASN A 609 19.785 -54.810 6.080 1.00 85.97 C +ATOM 4027 OD1 ASN A 609 20.478 -55.493 5.329 1.00 94.45 O +ATOM 4028 ND2 ASN A 609 19.299 -55.278 7.225 1.00 83.22 N +ATOM 4029 N VAL A 610 20.975 -50.392 4.163 1.00 80.06 N +ATOM 4030 CA VAL A 610 20.625 -49.118 3.542 1.00 80.64 C +ATOM 4031 C VAL A 610 20.398 -49.364 2.062 1.00 86.57 C +ATOM 4032 O VAL A 610 21.281 -49.878 1.367 1.00 88.66 O +ATOM 4033 CB VAL A 610 21.712 -48.060 3.761 1.00 78.15 C +ATOM 4034 CG1 VAL A 610 21.252 -46.719 3.217 1.00 78.70 C +ATOM 4035 CG2 VAL A 610 22.020 -47.932 5.218 1.00 78.44 C +ATOM 4036 N ALA A 611 19.211 -49.010 1.575 1.00 90.71 N +ATOM 4037 CA ALA A 611 18.879 -49.268 0.183 1.00 89.07 C +ATOM 4038 C ALA A 611 19.938 -48.648 -0.717 1.00 92.93 C +ATOM 4039 O ALA A 611 20.478 -47.580 -0.417 1.00 92.79 O +ATOM 4040 CB ALA A 611 17.492 -48.716 -0.140 1.00 86.11 C +ATOM 4041 N SER A 612 20.268 -49.344 -1.803 1.00 95.67 N +ATOM 4042 CA SER A 612 21.324 -48.881 -2.693 1.00100.12 C +ATOM 4043 C SER A 612 21.216 -49.597 -4.033 1.00105.77 C +ATOM 4044 O SER A 612 21.040 -50.819 -4.068 1.00108.09 O +ATOM 4045 CB SER A 612 22.698 -49.119 -2.065 1.00 98.78 C +ATOM 4046 OG SER A 612 23.697 -48.544 -2.883 1.00100.49 O +ATOM 4047 N LYS A 613 21.326 -48.830 -5.125 1.00105.67 N +ATOM 4048 CA LYS A 613 21.140 -49.308 -6.495 1.00106.82 C +ATOM 4049 C LYS A 613 22.033 -48.505 -7.433 1.00108.58 C +ATOM 4050 O LYS A 613 22.205 -47.298 -7.254 1.00108.98 O +ATOM 4051 CB LYS A 613 19.681 -49.154 -6.951 1.00108.32 C +ATOM 4052 CG LYS A 613 19.363 -49.709 -8.364 1.00117.48 C +ATOM 4053 CD LYS A 613 19.446 -51.247 -8.439 1.00120.28 C +ATOM 4054 CE LYS A 613 18.251 -51.867 -7.677 1.00120.38 C +ATOM 4055 NZ LYS A 613 18.120 -53.359 -7.610 1.00120.81 N +ATOM 4056 N GLU A 614 22.581 -49.164 -8.455 1.00112.44 N +ATOM 4057 CA GLU A 614 23.469 -48.454 -9.372 1.00116.65 C +ATOM 4058 C GLU A 614 22.679 -47.394 -10.154 1.00118.82 C +ATOM 4059 O GLU A 614 21.456 -47.487 -10.285 1.00120.14 O +ATOM 4060 CB GLU A 614 24.193 -49.437 -10.307 1.00120.95 C +ATOM 4061 CG GLU A 614 25.468 -50.010 -9.666 1.00116.88 C +ATOM 4062 CD GLU A 614 26.507 -50.557 -10.623 1.00126.28 C +ATOM 4063 OE1 GLU A 614 27.071 -49.750 -11.390 1.00131.32 O +ATOM 4064 OE2 GLU A 614 26.813 -51.769 -10.550 1.00127.06 O +ATOM 4065 N PRO A 615 23.357 -46.352 -10.655 1.00118.71 N +ATOM 4066 CA PRO A 615 22.621 -45.220 -11.243 1.00120.94 C +ATOM 4067 C PRO A 615 21.653 -45.630 -12.333 1.00124.03 C +ATOM 4068 O PRO A 615 20.636 -44.951 -12.534 1.00126.21 O +ATOM 4069 CB PRO A 615 23.748 -44.340 -11.796 1.00115.46 C +ATOM 4070 CG PRO A 615 24.868 -44.599 -10.868 1.00113.52 C +ATOM 4071 CD PRO A 615 24.807 -46.088 -10.626 1.00115.61 C +ATOM 4072 N GLN A 616 21.946 -46.712 -13.056 1.00122.29 N +ATOM 4073 CA GLN A 616 21.075 -47.127 -14.147 1.00125.77 C +ATOM 4074 C GLN A 616 19.705 -47.535 -13.634 1.00129.57 C +ATOM 4075 O GLN A 616 18.680 -47.077 -14.147 1.00134.60 O +ATOM 4076 CB GLN A 616 21.701 -48.283 -14.929 1.00126.49 C +ATOM 4077 CG GLN A 616 23.111 -48.043 -15.411 1.00133.57 C +ATOM 4078 CD GLN A 616 24.134 -48.246 -14.318 1.00128.70 C +ATOM 4079 OE1 GLN A 616 23.866 -47.982 -13.143 1.00124.94 O +ATOM 4080 NE2 GLN A 616 25.313 -48.718 -14.696 1.00132.44 N +ATOM 4081 N ASP A 617 19.657 -48.406 -12.627 1.00129.46 N +ATOM 4082 CA ASP A 617 18.396 -49.102 -12.394 1.00130.23 C +ATOM 4083 C ASP A 617 17.403 -48.222 -11.651 1.00129.63 C +ATOM 4084 O ASP A 617 17.668 -47.075 -11.292 1.00131.34 O +ATOM 4085 CB ASP A 617 18.567 -50.402 -11.613 1.00127.18 C +ATOM 4086 CG ASP A 617 19.437 -51.405 -12.342 1.00129.01 C +ATOM 4087 OD1 ASP A 617 19.630 -51.280 -13.583 1.00128.56 O +ATOM 4088 OD2 ASP A 617 19.798 -52.399 -11.670 1.00126.96 O +ATOM 4089 N ASN A 618 16.230 -48.802 -11.436 1.00130.42 N +ATOM 4090 CA ASN A 618 15.068 -48.114 -10.895 1.00129.51 C +ATOM 4091 C ASN A 618 14.597 -48.770 -9.612 1.00127.81 C +ATOM 4092 O ASN A 618 13.599 -48.344 -9.028 1.00126.20 O +ATOM 4093 CB ASN A 618 13.950 -48.141 -11.925 1.00127.06 C +ATOM 4094 CG ASN A 618 14.372 -47.478 -13.199 1.00129.60 C +ATOM 4095 OD1 ASN A 618 15.068 -46.464 -13.176 1.00131.43 O +ATOM 4096 ND2 ASN A 618 13.952 -48.038 -14.327 1.00124.40 N +ATOM 4097 N PHE A 619 15.325 -49.778 -9.153 1.00123.40 N +ATOM 4098 CA PHE A 619 14.933 -50.751 -8.150 1.00118.80 C +ATOM 4099 C PHE A 619 15.659 -50.322 -6.886 1.00120.67 C +ATOM 4100 O PHE A 619 16.372 -49.315 -6.880 1.00126.22 O +ATOM 4101 CB PHE A 619 15.453 -52.142 -8.501 1.00119.58 C +ATOM 4102 CG PHE A 619 15.356 -52.504 -9.959 1.00128.77 C +ATOM 4103 CD1 PHE A 619 14.572 -51.808 -10.862 1.00134.15 C +ATOM 4104 CD2 PHE A 619 16.196 -53.504 -10.432 1.00125.26 C +ATOM 4105 CE1 PHE A 619 14.592 -52.151 -12.215 1.00129.69 C +ATOM 4106 CE2 PHE A 619 16.209 -53.850 -11.768 1.00130.04 C +ATOM 4107 CZ PHE A 619 15.407 -53.175 -12.659 1.00130.77 C +ATOM 4108 N TYR A 620 15.574 -51.124 -5.831 1.00118.83 N +ATOM 4109 CA TYR A 620 16.566 -50.998 -4.770 1.00112.15 C +ATOM 4110 C TYR A 620 16.928 -52.361 -4.192 1.00108.70 C +ATOM 4111 O TYR A 620 16.151 -53.314 -4.271 1.00111.25 O +ATOM 4112 CB TYR A 620 16.103 -50.037 -3.660 1.00111.41 C +ATOM 4113 CG TYR A 620 16.055 -48.589 -4.112 1.00114.40 C +ATOM 4114 CD1 TYR A 620 14.920 -48.065 -4.735 1.00115.10 C +ATOM 4115 CD2 TYR A 620 17.162 -47.763 -3.965 1.00110.13 C +ATOM 4116 CE1 TYR A 620 14.882 -46.750 -5.161 1.00116.23 C +ATOM 4117 CE2 TYR A 620 17.134 -46.449 -4.393 1.00114.21 C +ATOM 4118 CZ TYR A 620 15.991 -45.947 -4.990 1.00118.38 C +ATOM 4119 OH TYR A 620 15.958 -44.637 -5.419 1.00121.46 O +ATOM 4120 N THR A 621 18.135 -52.446 -3.626 1.00102.94 N +ATOM 4121 CA THR A 621 18.594 -53.624 -2.900 1.00 99.27 C +ATOM 4122 C THR A 621 19.188 -53.177 -1.573 1.00 97.23 C +ATOM 4123 O THR A 621 19.881 -52.156 -1.516 1.00 99.55 O +ATOM 4124 CB THR A 621 19.628 -54.434 -3.713 1.00104.54 C +ATOM 4125 OG1 THR A 621 20.738 -53.601 -4.080 1.00106.25 O +ATOM 4126 CG2 THR A 621 18.989 -55.004 -4.977 1.00103.15 C +ATOM 4127 N SER A 622 18.911 -53.933 -0.504 1.00 91.06 N +ATOM 4128 CA SER A 622 19.287 -53.521 0.852 1.00 94.50 C +ATOM 4129 C SER A 622 20.756 -53.856 1.140 1.00 93.28 C +ATOM 4130 O SER A 622 21.120 -54.481 2.140 1.00 88.89 O +ATOM 4131 CB SER A 622 18.346 -54.139 1.885 1.00 95.25 C +ATOM 4132 OG SER A 622 18.188 -55.543 1.730 1.00 97.46 O +ATOM 4133 N VAL A 623 21.612 -53.362 0.252 1.00 91.35 N +ATOM 4134 CA VAL A 623 23.031 -53.673 0.290 1.00 90.58 C +ATOM 4135 C VAL A 623 23.877 -52.505 0.772 1.00 92.25 C +ATOM 4136 O VAL A 623 25.035 -52.724 1.166 1.00 92.84 O +ATOM 4137 CB VAL A 623 23.525 -54.147 -1.091 1.00 90.38 C +ATOM 4138 CG1 VAL A 623 24.911 -54.736 -0.979 1.00 92.91 C +ATOM 4139 CG2 VAL A 623 22.551 -55.147 -1.685 1.00 93.91 C +ATOM 4140 N GLY A 624 23.354 -51.285 0.760 1.00 91.74 N +ATOM 4141 CA GLY A 624 24.144 -50.139 1.166 1.00 88.40 C +ATOM 4142 C GLY A 624 24.552 -50.230 2.622 1.00 85.62 C +ATOM 4143 O GLY A 624 24.041 -51.031 3.408 1.00 84.31 O +ATOM 4144 N GLU A 625 25.507 -49.377 2.988 1.00 87.43 N +ATOM 4145 CA GLU A 625 25.944 -49.322 4.376 1.00 82.10 C +ATOM 4146 C GLU A 625 26.617 -47.988 4.664 1.00 82.90 C +ATOM 4147 O GLU A 625 27.368 -47.471 3.828 1.00 82.49 O +ATOM 4148 CB GLU A 625 26.905 -50.465 4.703 1.00 85.22 C +ATOM 4149 CG GLU A 625 27.220 -50.576 6.193 1.00 88.21 C +ATOM 4150 CD GLU A 625 28.307 -51.597 6.495 1.00 95.58 C +ATOM 4151 OE1 GLU A 625 28.010 -52.811 6.459 1.00100.34 O +ATOM 4152 OE2 GLU A 625 29.458 -51.184 6.761 1.00 99.56 O +ATOM 4153 N VAL A 626 26.351 -47.453 5.860 1.00 80.44 N +ATOM 4154 CA VAL A 626 26.922 -46.197 6.332 1.00 77.18 C +ATOM 4155 C VAL A 626 27.641 -46.432 7.658 1.00 74.39 C +ATOM 4156 O VAL A 626 27.173 -47.207 8.500 1.00 74.51 O +ATOM 4157 CB VAL A 626 25.832 -45.122 6.503 1.00 70.36 C +ATOM 4158 CG1 VAL A 626 26.414 -43.907 7.204 1.00 68.25 C +ATOM 4159 CG2 VAL A 626 25.241 -44.749 5.159 1.00 71.50 C +ATOM 4160 N ARG A 627 28.772 -45.737 7.852 1.00 71.43 N +ATOM 4161 CA ARG A 627 29.560 -45.801 9.086 1.00 67.29 C +ATOM 4162 C ARG A 627 29.808 -44.397 9.638 1.00 68.42 C +ATOM 4163 O ARG A 627 30.343 -43.536 8.933 1.00 72.80 O +ATOM 4164 CB ARG A 627 30.908 -46.500 8.848 1.00 74.14 C +ATOM 4165 CG ARG A 627 31.749 -46.730 10.114 1.00 72.45 C +ATOM 4166 CD ARG A 627 32.500 -45.462 10.573 1.00 73.27 C +ATOM 4167 NE ARG A 627 32.914 -44.565 9.481 1.00 73.88 N +ATOM 4168 CZ ARG A 627 34.042 -44.687 8.778 1.00 78.79 C +ATOM 4169 NH1 ARG A 627 34.896 -45.672 9.044 1.00 81.10 N +ATOM 4170 NH2 ARG A 627 34.323 -43.817 7.808 1.00 83.05 N +ATOM 4171 N SER A 628 29.455 -44.175 10.908 1.00 65.50 N +ATOM 4172 CA SER A 628 29.678 -42.894 11.577 1.00 67.14 C +ATOM 4173 C SER A 628 30.504 -43.110 12.835 1.00 67.33 C +ATOM 4174 O SER A 628 30.179 -43.965 13.666 1.00 63.15 O +ATOM 4175 CB SER A 628 28.364 -42.186 11.950 1.00 62.28 C +ATOM 4176 OG SER A 628 28.635 -40.921 12.554 1.00 59.85 O +ATOM 4177 N GLN A 629 31.561 -42.323 12.980 1.00 69.06 N +ATOM 4178 CA GLN A 629 32.427 -42.438 14.137 1.00 63.64 C +ATOM 4179 C GLN A 629 32.980 -41.058 14.446 1.00 62.91 C +ATOM 4180 O GLN A 629 33.353 -40.304 13.537 1.00 65.94 O +ATOM 4181 CB GLN A 629 33.567 -43.426 13.881 1.00 66.83 C +ATOM 4182 CG GLN A 629 34.471 -43.026 12.719 1.00 72.59 C +ATOM 4183 CD GLN A 629 35.298 -44.190 12.177 1.00 76.92 C +ATOM 4184 OE1 GLN A 629 35.181 -45.325 12.643 1.00 78.97 O +ATOM 4185 NE2 GLN A 629 36.129 -43.910 11.173 1.00 76.32 N +ATOM 4186 N GLY A 630 33.042 -40.744 15.730 1.00 60.20 N +ATOM 4187 CA GLY A 630 33.590 -39.470 16.139 1.00 63.01 C +ATOM 4188 C GLY A 630 33.719 -39.347 17.642 1.00 59.48 C +ATOM 4189 O GLY A 630 33.651 -40.333 18.385 1.00 57.51 O +ATOM 4190 N LEU A 631 33.901 -38.098 18.066 1.00 61.26 N +ATOM 4191 CA LEU A 631 34.190 -37.720 19.437 1.00 58.50 C +ATOM 4192 C LEU A 631 33.243 -36.596 19.837 1.00 56.98 C +ATOM 4193 O LEU A 631 32.914 -35.733 19.019 1.00 60.45 O +ATOM 4194 CB LEU A 631 35.616 -37.204 19.558 1.00 59.08 C +ATOM 4195 CG LEU A 631 35.940 -36.958 21.006 1.00 59.27 C +ATOM 4196 CD1 LEU A 631 36.106 -38.330 21.669 1.00 59.99 C +ATOM 4197 CD2 LEU A 631 37.096 -35.996 21.197 1.00 58.12 C +ATOM 4198 N GLU A 632 32.860 -36.570 21.111 1.00 56.60 N +ATOM 4199 CA GLU A 632 31.955 -35.552 21.634 1.00 56.41 C +ATOM 4200 C GLU A 632 32.455 -35.112 22.999 1.00 54.12 C +ATOM 4201 O GLU A 632 32.767 -35.963 23.837 1.00 55.92 O +ATOM 4202 CB GLU A 632 30.524 -36.090 21.756 1.00 54.33 C +ATOM 4203 CG GLU A 632 29.737 -36.107 20.440 1.00 57.61 C +ATOM 4204 CD GLU A 632 28.286 -36.631 20.583 1.00 63.70 C +ATOM 4205 OE1 GLU A 632 27.737 -37.096 19.557 1.00 65.74 O +ATOM 4206 OE2 GLU A 632 27.688 -36.571 21.698 1.00 60.82 O +ATOM 4207 N LEU A 633 32.538 -33.798 23.222 1.00 55.21 N +ATOM 4208 CA LEU A 633 32.934 -33.260 24.521 1.00 58.74 C +ATOM 4209 C LEU A 633 31.945 -32.199 24.932 1.00 58.40 C +ATOM 4210 O LEU A 633 31.652 -31.309 24.130 1.00 60.25 O +ATOM 4211 CB LEU A 633 34.310 -32.629 24.482 1.00 58.39 C +ATOM 4212 CG LEU A 633 35.381 -33.524 23.889 1.00 57.53 C +ATOM 4213 CD1 LEU A 633 36.654 -32.748 23.821 1.00 58.79 C +ATOM 4214 CD2 LEU A 633 35.554 -34.762 24.750 1.00 57.29 C +ATOM 4215 N GLU A 634 31.447 -32.264 26.168 1.00 58.61 N +ATOM 4216 CA GLU A 634 30.437 -31.298 26.564 1.00 63.15 C +ATOM 4217 C GLU A 634 30.986 -30.681 27.856 1.00 66.67 C +ATOM 4218 O GLU A 634 31.850 -31.264 28.527 1.00 60.56 O +ATOM 4219 CB GLU A 634 29.063 -31.911 26.883 1.00 61.37 C +ATOM 4220 CG GLU A 634 27.844 -31.033 26.419 1.00 68.56 C +ATOM 4221 CD GLU A 634 26.546 -31.307 27.160 1.00 77.15 C +ATOM 4222 OE1 GLU A 634 26.670 -31.550 28.392 1.00 87.06 O +ATOM 4223 OE2 GLU A 634 25.508 -31.543 26.445 1.00 74.31 O +ATOM 4224 N ALA A 635 30.441 -29.536 28.263 1.00 70.21 N +ATOM 4225 CA ALA A 635 30.833 -28.971 29.549 1.00 64.75 C +ATOM 4226 C ALA A 635 29.765 -28.003 30.045 1.00 69.39 C +ATOM 4227 O ALA A 635 29.253 -27.185 29.273 1.00 74.17 O +ATOM 4228 CB ALA A 635 32.188 -28.265 29.452 1.00 63.64 C +ATOM 4229 N HIS A 636 29.443 -28.104 31.339 1.00 69.63 N +ATOM 4230 CA HIS A 636 28.565 -27.177 32.046 1.00 71.76 C +ATOM 4231 C HIS A 636 29.290 -26.715 33.297 1.00 72.42 C +ATOM 4232 O HIS A 636 29.931 -27.527 33.967 1.00 72.42 O +ATOM 4233 CB HIS A 636 27.265 -27.842 32.453 1.00 72.22 C +ATOM 4234 CG HIS A 636 26.483 -28.388 31.306 1.00 72.16 C +ATOM 4235 ND1 HIS A 636 25.473 -27.691 30.680 1.00 73.01 N +ATOM 4236 CD2 HIS A 636 26.604 -29.555 30.633 1.00 76.60 C +ATOM 4237 CE1 HIS A 636 24.971 -28.427 29.704 1.00 72.19 C +ATOM 4238 NE2 HIS A 636 25.647 -29.558 29.647 1.00 75.33 N +ATOM 4239 N THR A 637 29.186 -25.428 33.629 1.00 75.96 N +ATOM 4240 CA THR A 637 29.969 -24.914 34.744 1.00 74.92 C +ATOM 4241 C THR A 637 29.262 -23.766 35.434 1.00 78.54 C +ATOM 4242 O THR A 637 28.766 -22.853 34.769 1.00 79.75 O +ATOM 4243 CB THR A 637 31.332 -24.405 34.281 1.00 73.80 C +ATOM 4244 OG1 THR A 637 31.887 -25.309 33.318 1.00 71.69 O +ATOM 4245 CG2 THR A 637 32.271 -24.298 35.476 1.00 80.55 C +ATOM 4246 N GLN A 638 29.276 -23.768 36.763 1.00 84.05 N +ATOM 4247 CA GLN A 638 29.055 -22.519 37.483 1.00 92.04 C +ATOM 4248 C GLN A 638 30.389 -22.121 38.130 1.00 95.11 C +ATOM 4249 O GLN A 638 30.747 -22.599 39.208 1.00 99.58 O +ATOM 4250 CB GLN A 638 27.896 -22.604 38.487 1.00 88.56 C +ATOM 4251 CG GLN A 638 26.512 -22.611 37.790 1.00 91.08 C +ATOM 4252 CD GLN A 638 26.080 -23.988 37.216 1.00 96.49 C +ATOM 4253 OE1 GLN A 638 26.033 -24.192 35.999 1.00 96.46 O +ATOM 4254 NE2 GLN A 638 25.544 -24.839 38.102 1.00 93.95 N +ATOM 4255 N LEU A 639 31.135 -21.246 37.432 1.00 99.23 N +ATOM 4256 CA LEU A 639 32.382 -20.677 37.952 1.00107.30 C +ATOM 4257 C LEU A 639 32.147 -19.754 39.139 1.00113.21 C +ATOM 4258 O LEU A 639 33.082 -19.497 39.905 1.00119.01 O +ATOM 4259 CB LEU A 639 33.137 -19.902 36.858 1.00106.28 C +ATOM 4260 CG LEU A 639 34.629 -19.601 37.104 1.00117.31 C +ATOM 4261 CD1 LEU A 639 35.374 -19.431 35.789 1.00116.78 C +ATOM 4262 CD2 LEU A 639 34.894 -18.386 38.019 1.00120.56 C +ATOM 4263 N SER A 640 30.947 -19.199 39.256 1.00110.02 N +ATOM 4264 CA SER A 640 30.476 -18.512 40.449 1.00112.96 C +ATOM 4265 C SER A 640 28.960 -18.604 40.411 1.00108.41 C +ATOM 4266 O SER A 640 28.397 -19.309 39.571 1.00106.87 O +ATOM 4267 CB SER A 640 31.011 -17.073 40.533 1.00114.89 C +ATOM 4268 OG SER A 640 30.485 -16.247 39.505 1.00118.28 O +ATOM 4269 N ASP A 641 28.280 -17.904 41.311 1.00109.82 N +ATOM 4270 CA ASP A 641 26.842 -18.092 41.300 1.00114.17 C +ATOM 4271 C ASP A 641 26.195 -17.231 40.220 1.00114.64 C +ATOM 4272 O ASP A 641 25.081 -17.534 39.773 1.00111.71 O +ATOM 4273 CB ASP A 641 26.241 -17.773 42.669 1.00116.71 C +ATOM 4274 CG ASP A 641 24.862 -18.403 42.854 1.00124.74 C +ATOM 4275 OD1 ASP A 641 24.826 -19.608 43.182 1.00127.96 O +ATOM 4276 OD2 ASP A 641 23.824 -17.752 42.607 1.00127.55 O +ATOM 4277 N ASN A 642 26.887 -16.166 39.805 1.00111.49 N +ATOM 4278 CA ASN A 642 26.441 -15.269 38.745 1.00108.86 C +ATOM 4279 C ASN A 642 26.645 -15.877 37.369 1.00103.15 C +ATOM 4280 O ASN A 642 25.783 -15.759 36.491 1.00102.45 O +ATOM 4281 CB ASN A 642 27.224 -13.962 38.830 1.00114.05 C +ATOM 4282 CG ASN A 642 26.979 -13.228 40.121 1.00118.40 C +ATOM 4283 OD1 ASN A 642 26.943 -13.833 41.196 1.00118.76 O +ATOM 4284 ND2 ASN A 642 26.841 -11.914 40.033 1.00121.96 N +ATOM 4285 N LEU A 643 27.779 -16.525 37.168 1.00101.02 N +ATOM 4286 CA LEU A 643 28.223 -16.908 35.842 1.00 97.80 C +ATOM 4287 C LEU A 643 27.812 -18.337 35.523 1.00 95.17 C +ATOM 4288 O LEU A 643 27.839 -19.213 36.393 1.00 97.49 O +ATOM 4289 CB LEU A 643 29.735 -16.751 35.725 1.00 96.83 C +ATOM 4290 CG LEU A 643 30.241 -17.098 34.335 1.00 92.97 C +ATOM 4291 CD1 LEU A 643 29.491 -16.285 33.295 1.00 94.22 C +ATOM 4292 CD2 LEU A 643 31.729 -16.802 34.275 1.00 90.00 C +ATOM 4293 N LYS A 644 27.424 -18.558 34.267 1.00 91.15 N +ATOM 4294 CA LYS A 644 26.966 -19.852 33.778 1.00 85.88 C +ATOM 4295 C LYS A 644 27.614 -20.119 32.427 1.00 83.28 C +ATOM 4296 O LYS A 644 27.762 -19.202 31.613 1.00 85.15 O +ATOM 4297 CB LYS A 644 25.430 -19.899 33.651 1.00 83.47 C +ATOM 4298 CG LYS A 644 24.679 -19.705 34.964 1.00 83.03 C +ATOM 4299 CD LYS A 644 23.169 -19.893 34.798 1.00 78.80 C +ATOM 4300 CE LYS A 644 22.509 -18.598 34.352 1.00 83.70 C +ATOM 4301 NZ LYS A 644 21.043 -18.552 34.608 1.00 79.68 N +ATOM 4302 N LEU A 645 27.993 -21.374 32.186 1.00 78.77 N +ATOM 4303 CA LEU A 645 28.775 -21.714 31.009 1.00 75.61 C +ATOM 4304 C LEU A 645 28.207 -22.933 30.292 1.00 78.47 C +ATOM 4305 O LEU A 645 27.519 -23.768 30.885 1.00 78.57 O +ATOM 4306 CB LEU A 645 30.221 -21.997 31.367 1.00 73.62 C +ATOM 4307 CG LEU A 645 30.997 -21.912 30.061 1.00 77.33 C +ATOM 4308 CD1 LEU A 645 31.048 -20.441 29.641 1.00 76.65 C +ATOM 4309 CD2 LEU A 645 32.377 -22.529 30.151 1.00 75.17 C +ATOM 4310 N LEU A 646 28.530 -23.031 29.000 1.00 78.62 N +ATOM 4311 CA LEU A 646 28.149 -24.148 28.143 1.00 71.63 C +ATOM 4312 C LEU A 646 29.219 -24.306 27.082 1.00 75.38 C +ATOM 4313 O LEU A 646 29.547 -23.340 26.388 1.00 77.91 O +ATOM 4314 CB LEU A 646 26.807 -23.921 27.450 1.00 69.16 C +ATOM 4315 CG LEU A 646 25.599 -24.226 28.311 1.00 74.16 C +ATOM 4316 CD1 LEU A 646 24.287 -24.047 27.541 1.00 74.29 C +ATOM 4317 CD2 LEU A 646 25.784 -25.615 28.795 1.00 73.29 C +ATOM 4318 N GLY A 647 29.746 -25.510 26.940 1.00 71.96 N +ATOM 4319 CA GLY A 647 30.772 -25.696 25.935 1.00 71.91 C +ATOM 4320 C GLY A 647 30.668 -27.067 25.316 1.00 68.60 C +ATOM 4321 O GLY A 647 30.447 -28.044 26.031 1.00 67.29 O +ATOM 4322 N SER A 648 30.813 -27.159 23.997 1.00 68.04 N +ATOM 4323 CA SER A 648 30.731 -28.443 23.323 1.00 64.00 C +ATOM 4324 C SER A 648 31.644 -28.455 22.108 1.00 65.41 C +ATOM 4325 O SER A 648 31.804 -27.440 21.420 1.00 64.21 O +ATOM 4326 CB SER A 648 29.301 -28.750 22.885 1.00 63.44 C +ATOM 4327 OG SER A 648 28.982 -28.011 21.720 1.00 62.36 O +ATOM 4328 N TYR A 649 32.247 -29.610 21.859 1.00 66.27 N +ATOM 4329 CA TYR A 649 32.945 -29.857 20.609 1.00 66.23 C +ATOM 4330 C TYR A 649 32.611 -31.245 20.099 1.00 65.31 C +ATOM 4331 O TYR A 649 32.504 -32.204 20.872 1.00 63.19 O +ATOM 4332 CB TYR A 649 34.434 -29.750 20.746 1.00 63.24 C +ATOM 4333 CG TYR A 649 35.165 -30.295 19.536 1.00 68.37 C +ATOM 4334 CD1 TYR A 649 35.256 -29.561 18.358 1.00 66.72 C +ATOM 4335 CD2 TYR A 649 35.739 -31.566 19.561 1.00 69.95 C +ATOM 4336 CE1 TYR A 649 35.934 -30.068 17.249 1.00 68.17 C +ATOM 4337 CE2 TYR A 649 36.414 -32.080 18.457 1.00 69.09 C +ATOM 4338 CZ TYR A 649 36.512 -31.332 17.310 1.00 70.69 C +ATOM 4339 OH TYR A 649 37.191 -31.867 16.236 1.00 72.55 O +ATOM 4340 N THR A 650 32.502 -31.347 18.784 1.00 65.95 N +ATOM 4341 CA THR A 650 31.996 -32.539 18.139 1.00 64.70 C +ATOM 4342 C THR A 650 32.885 -32.816 16.947 1.00 66.23 C +ATOM 4343 O THR A 650 33.112 -31.930 16.116 1.00 67.83 O +ATOM 4344 CB THR A 650 30.546 -32.321 17.714 1.00 64.43 C +ATOM 4345 OG1 THR A 650 29.790 -31.896 18.860 1.00 65.56 O +ATOM 4346 CG2 THR A 650 29.953 -33.601 17.115 1.00 60.89 C +ATOM 4347 N TYR A 651 33.417 -34.020 16.878 1.00 63.40 N +ATOM 4348 CA TYR A 651 34.057 -34.493 15.665 1.00 65.32 C +ATOM 4349 C TYR A 651 33.205 -35.619 15.107 1.00 63.82 C +ATOM 4350 O TYR A 651 32.725 -36.465 15.867 1.00 65.37 O +ATOM 4351 CB TYR A 651 35.483 -34.951 15.958 1.00 66.07 C +ATOM 4352 CG TYR A 651 36.140 -35.742 14.852 1.00 68.68 C +ATOM 4353 CD1 TYR A 651 36.503 -35.156 13.648 1.00 69.75 C +ATOM 4354 CD2 TYR A 651 36.413 -37.091 15.025 1.00 72.94 C +ATOM 4355 CE1 TYR A 651 37.114 -35.917 12.635 1.00 75.07 C +ATOM 4356 CE2 TYR A 651 37.023 -37.848 14.035 1.00 73.66 C +ATOM 4357 CZ TYR A 651 37.373 -37.269 12.849 1.00 73.91 C +ATOM 4358 OH TYR A 651 37.977 -38.069 11.896 1.00 82.18 O +ATOM 4359 N THR A 652 32.965 -35.605 13.800 1.00 63.98 N +ATOM 4360 CA THR A 652 32.189 -36.672 13.181 1.00 63.32 C +ATOM 4361 C THR A 652 32.793 -37.025 11.836 1.00 65.98 C +ATOM 4362 O THR A 652 33.024 -36.149 10.994 1.00 67.33 O +ATOM 4363 CB THR A 652 30.711 -36.284 13.023 1.00 66.49 C +ATOM 4364 OG1 THR A 652 30.140 -36.002 14.313 1.00 70.21 O +ATOM 4365 CG2 THR A 652 29.930 -37.401 12.369 1.00 65.08 C +ATOM 4366 N ASP A 653 33.066 -38.306 11.652 1.00 68.16 N +ATOM 4367 CA ASP A 653 33.530 -38.834 10.378 1.00 72.22 C +ATOM 4368 C ASP A 653 32.499 -39.870 9.955 1.00 69.80 C +ATOM 4369 O ASP A 653 32.502 -40.993 10.463 1.00 72.01 O +ATOM 4370 CB ASP A 653 34.924 -39.442 10.503 1.00 76.43 C +ATOM 4371 CG ASP A 653 35.293 -40.313 9.311 1.00 82.52 C +ATOM 4372 OD1 ASP A 653 35.596 -39.768 8.228 1.00 83.41 O +ATOM 4373 OD2 ASP A 653 35.265 -41.555 9.457 1.00 85.40 O +ATOM 4374 N ILE A 654 31.623 -39.498 9.031 1.00 69.61 N +ATOM 4375 CA ILE A 654 30.598 -40.389 8.503 1.00 68.89 C +ATOM 4376 C ILE A 654 30.855 -40.605 7.020 1.00 71.32 C +ATOM 4377 O ILE A 654 31.128 -39.644 6.296 1.00 77.30 O +ATOM 4378 CB ILE A 654 29.190 -39.809 8.702 1.00 67.24 C +ATOM 4379 CG1 ILE A 654 28.138 -40.858 8.353 1.00 64.01 C +ATOM 4380 CG2 ILE A 654 29.017 -38.579 7.842 1.00 72.17 C +ATOM 4381 CD1 ILE A 654 26.753 -40.427 8.667 1.00 56.29 C +ATOM 4382 N THR A 655 30.746 -41.859 6.559 1.00 71.86 N +ATOM 4383 CA THR A 655 31.047 -42.189 5.167 1.00 77.66 C +ATOM 4384 C THR A 655 30.119 -43.295 4.647 1.00 75.11 C +ATOM 4385 O THR A 655 29.660 -44.156 5.406 1.00 72.96 O +ATOM 4386 CB THR A 655 32.527 -42.598 5.021 1.00 80.36 C +ATOM 4387 OG1 THR A 655 32.753 -43.861 5.653 1.00 83.29 O +ATOM 4388 CG2 THR A 655 33.430 -41.577 5.706 1.00 76.49 C +ATOM 4389 N TYR A 656 29.825 -43.250 3.343 1.00 78.11 N +ATOM 4390 CA TYR A 656 29.135 -44.346 2.657 1.00 78.50 C +ATOM 4391 C TYR A 656 30.135 -45.467 2.452 1.00 83.16 C +ATOM 4392 O TYR A 656 30.862 -45.485 1.460 1.00 87.94 O +ATOM 4393 CB TYR A 656 28.562 -43.906 1.312 1.00 77.95 C +ATOM 4394 CG TYR A 656 27.495 -42.837 1.394 1.00 83.80 C +ATOM 4395 CD1 TYR A 656 26.248 -43.110 1.949 1.00 82.10 C +ATOM 4396 CD2 TYR A 656 27.730 -41.555 0.904 1.00 81.55 C +ATOM 4397 CE1 TYR A 656 25.270 -42.129 2.026 1.00 83.51 C +ATOM 4398 CE2 TYR A 656 26.757 -40.568 0.981 1.00 82.70 C +ATOM 4399 CZ TYR A 656 25.530 -40.859 1.540 1.00 82.94 C +ATOM 4400 OH TYR A 656 24.558 -39.881 1.614 1.00 84.21 O +ATOM 4401 N THR A 657 30.191 -46.409 3.392 1.00 83.79 N +ATOM 4402 CA THR A 657 31.122 -47.523 3.232 1.00 84.90 C +ATOM 4403 C THR A 657 30.682 -48.460 2.115 1.00 88.37 C +ATOM 4404 O THR A 657 31.527 -49.104 1.479 1.00 93.11 O +ATOM 4405 CB THR A 657 31.257 -48.313 4.540 1.00 91.05 C +ATOM 4406 OG1 THR A 657 29.969 -48.795 4.952 1.00 93.28 O +ATOM 4407 CG2 THR A 657 31.865 -47.457 5.654 1.00 82.03 C +ATOM 4408 N LYS A 658 29.373 -48.566 1.880 1.00 90.40 N +ATOM 4409 CA LYS A 658 28.824 -49.498 0.902 1.00 88.78 C +ATOM 4410 C LYS A 658 27.743 -48.786 0.108 1.00 91.62 C +ATOM 4411 O LYS A 658 26.821 -48.191 0.689 1.00 88.91 O +ATOM 4412 CB LYS A 658 28.278 -50.758 1.584 1.00 90.78 C +ATOM 4413 CG LYS A 658 29.361 -51.819 1.771 1.00 91.11 C +ATOM 4414 CD LYS A 658 30.368 -51.373 2.834 1.00 93.91 C +ATOM 4415 CE LYS A 658 31.595 -52.285 2.900 1.00 98.65 C +ATOM 4416 NZ LYS A 658 32.679 -51.804 3.833 1.00 96.94 N +ATOM 4417 N SER A 659 27.877 -48.849 -1.220 1.00 94.10 N +ATOM 4418 CA SER A 659 27.004 -48.135 -2.135 1.00 95.02 C +ATOM 4419 C SER A 659 27.096 -48.762 -3.520 1.00100.46 C +ATOM 4420 O SER A 659 28.187 -48.879 -4.087 1.00 98.93 O +ATOM 4421 CB SER A 659 27.385 -46.654 -2.182 1.00 95.71 C +ATOM 4422 OG SER A 659 26.963 -46.065 -3.397 1.00105.32 O +ATOM 4423 N LEU A 660 25.945 -49.150 -4.062 1.00102.30 N +ATOM 4424 CA LEU A 660 25.867 -49.595 -5.442 1.00101.68 C +ATOM 4425 C LEU A 660 25.784 -48.444 -6.436 1.00107.64 C +ATOM 4426 O LEU A 660 25.891 -48.691 -7.632 1.00115.33 O +ATOM 4427 CB LEU A 660 24.651 -50.511 -5.630 1.00103.38 C +ATOM 4428 CG LEU A 660 24.764 -51.963 -5.175 1.00 98.83 C +ATOM 4429 CD1 LEU A 660 23.578 -52.791 -5.659 1.00 90.95 C +ATOM 4430 CD2 LEU A 660 26.066 -52.532 -5.700 1.00 94.93 C +ATOM 4431 N ASP A 661 25.611 -47.197 -6.007 1.00107.21 N +ATOM 4432 CA ASP A 661 25.509 -46.096 -6.963 1.00108.41 C +ATOM 4433 C ASP A 661 26.852 -45.469 -7.289 1.00108.95 C +ATOM 4434 O ASP A 661 26.892 -44.321 -7.746 1.00107.42 O +ATOM 4435 CB ASP A 661 24.541 -45.024 -6.456 1.00107.48 C +ATOM 4436 CG ASP A 661 25.021 -44.359 -5.179 1.00108.60 C +ATOM 4437 OD1 ASP A 661 24.979 -43.113 -5.076 1.00110.16 O +ATOM 4438 OD2 ASP A 661 25.420 -45.103 -4.259 1.00109.23 O +ATOM 4439 N GLY A 662 27.947 -46.180 -7.034 1.00110.43 N +ATOM 4440 CA GLY A 662 29.261 -45.617 -7.192 1.00104.09 C +ATOM 4441 C GLY A 662 29.738 -44.743 -6.052 1.00 99.77 C +ATOM 4442 O GLY A 662 30.914 -44.365 -6.048 1.00101.05 O +ATOM 4443 N ASN A 663 28.887 -44.413 -5.070 1.00100.06 N +ATOM 4444 CA ASN A 663 29.296 -43.549 -3.953 1.00 98.81 C +ATOM 4445 C ASN A 663 29.849 -44.289 -2.746 1.00 92.66 C +ATOM 4446 O ASN A 663 29.588 -43.860 -1.610 1.00 94.06 O +ATOM 4447 CB ASN A 663 28.164 -42.629 -3.500 1.00100.52 C +ATOM 4448 CG ASN A 663 27.848 -41.598 -4.505 1.00102.33 C +ATOM 4449 OD1 ASN A 663 26.719 -41.080 -4.533 1.00101.11 O +ATOM 4450 ND2 ASN A 663 28.819 -41.286 -5.359 1.00101.94 N +ATOM 4451 N GLN A 664 30.557 -45.396 -2.962 1.00 92.42 N +ATOM 4452 CA GLN A 664 31.026 -46.236 -1.873 1.00 92.00 C +ATOM 4453 C GLN A 664 32.182 -45.633 -1.066 1.00 91.09 C +ATOM 4454 O GLN A 664 32.662 -46.304 -0.143 1.00 94.93 O +ATOM 4455 CB GLN A 664 31.408 -47.626 -2.418 1.00 90.63 C +ATOM 4456 CG GLN A 664 32.179 -48.557 -1.438 1.00 88.31 C +ATOM 4457 CD GLN A 664 32.195 -50.018 -1.895 1.00 94.95 C +ATOM 4458 OE1 GLN A 664 31.487 -50.391 -2.838 1.00100.99 O +ATOM 4459 NE2 GLN A 664 32.995 -50.850 -1.220 1.00 93.32 N +ATOM 4460 N GLY A 665 32.623 -44.408 -1.327 1.00 88.06 N +ATOM 4461 CA GLY A 665 33.636 -43.841 -0.451 1.00 89.32 C +ATOM 4462 C GLY A 665 33.269 -42.563 0.283 1.00 85.92 C +ATOM 4463 O GLY A 665 33.870 -42.191 1.291 1.00 86.81 O +ATOM 4464 N HIS A 666 32.212 -41.934 -0.187 1.00 88.15 N +ATOM 4465 CA HIS A 666 31.896 -40.534 0.031 1.00 87.53 C +ATOM 4466 C HIS A 666 31.496 -40.273 1.483 1.00 84.27 C +ATOM 4467 O HIS A 666 31.218 -41.192 2.261 1.00 82.30 O +ATOM 4468 CB HIS A 666 30.769 -40.186 -0.929 1.00 90.61 C +ATOM 4469 CG HIS A 666 31.150 -40.434 -2.348 1.00 93.57 C +ATOM 4470 ND1 HIS A 666 31.136 -41.676 -2.915 1.00 94.02 N +ATOM 4471 CD2 HIS A 666 31.506 -39.593 -3.344 1.00 99.00 C +ATOM 4472 CE1 HIS A 666 31.503 -41.592 -4.187 1.00100.85 C +ATOM 4473 NE2 HIS A 666 31.757 -40.333 -4.473 1.00 96.91 N +ATOM 4474 N THR A 667 31.466 -38.981 1.844 1.00 84.11 N +ATOM 4475 CA THR A 667 30.944 -38.427 3.091 1.00 81.78 C +ATOM 4476 C THR A 667 29.600 -37.752 2.842 1.00 85.35 C +ATOM 4477 O THR A 667 29.530 -36.818 2.030 1.00 91.06 O +ATOM 4478 CB THR A 667 31.940 -37.418 3.649 1.00 83.24 C +ATOM 4479 OG1 THR A 667 33.150 -38.090 3.928 1.00 91.75 O +ATOM 4480 CG2 THR A 667 31.379 -36.728 4.888 1.00 82.47 C +ATOM 4481 N PRO A 668 28.537 -38.159 3.530 1.00 82.79 N +ATOM 4482 CA PRO A 668 27.209 -37.651 3.195 1.00 79.92 C +ATOM 4483 C PRO A 668 27.134 -36.146 3.371 1.00 81.34 C +ATOM 4484 O PRO A 668 27.844 -35.546 4.184 1.00 84.49 O +ATOM 4485 CB PRO A 668 26.297 -38.365 4.193 1.00 78.41 C +ATOM 4486 CG PRO A 668 27.053 -39.586 4.602 1.00 74.67 C +ATOM 4487 CD PRO A 668 28.484 -39.103 4.657 1.00 77.62 C +ATOM 4488 N ASN A 669 26.268 -35.534 2.581 1.00 81.34 N +ATOM 4489 CA ASN A 669 26.061 -34.111 2.721 1.00 82.23 C +ATOM 4490 C ASN A 669 25.319 -33.825 4.005 1.00 76.08 C +ATOM 4491 O ASN A 669 24.703 -34.706 4.610 1.00 73.06 O +ATOM 4492 CB ASN A 669 25.250 -33.573 1.565 1.00 83.81 C +ATOM 4493 CG ASN A 669 24.007 -34.349 1.372 1.00 81.02 C +ATOM 4494 OD1 ASN A 669 23.918 -35.491 1.821 1.00 83.66 O +ATOM 4495 ND2 ASN A 669 23.025 -33.749 0.729 1.00 80.53 N +ATOM 4496 N GLN A 670 25.377 -32.557 4.402 1.00 79.26 N +ATOM 4497 CA GLN A 670 24.743 -32.069 5.621 1.00 76.53 C +ATOM 4498 C GLN A 670 25.346 -32.707 6.867 1.00 75.91 C +ATOM 4499 O GLN A 670 24.664 -32.910 7.869 1.00 73.48 O +ATOM 4500 CB GLN A 670 23.237 -32.301 5.566 1.00 75.40 C +ATOM 4501 CG GLN A 670 22.637 -31.957 4.216 1.00 80.08 C +ATOM 4502 CD GLN A 670 21.182 -32.358 4.124 1.00 77.37 C +ATOM 4503 OE1 GLN A 670 20.322 -31.518 3.863 1.00 78.36 O +ATOM 4504 NE2 GLN A 670 20.894 -33.641 4.343 1.00 77.63 N +ATOM 4505 N ALA A 671 26.630 -33.034 6.821 1.00 74.86 N +ATOM 4506 CA ALA A 671 27.293 -33.763 7.898 1.00 69.92 C +ATOM 4507 C ALA A 671 28.628 -33.101 8.205 1.00 74.70 C +ATOM 4508 O ALA A 671 29.674 -33.533 7.710 1.00 81.14 O +ATOM 4509 CB ALA A 671 27.477 -35.233 7.527 1.00 68.58 C +ATOM 4510 N PRO A 672 28.630 -32.050 9.022 1.00 75.26 N +ATOM 4511 CA PRO A 672 29.884 -31.324 9.294 1.00 76.03 C +ATOM 4512 C PRO A 672 30.918 -32.205 9.994 1.00 73.57 C +ATOM 4513 O PRO A 672 30.626 -32.850 10.997 1.00 75.77 O +ATOM 4514 CB PRO A 672 29.422 -30.174 10.201 1.00 73.86 C +ATOM 4515 CG PRO A 672 27.941 -30.019 9.895 1.00 74.75 C +ATOM 4516 CD PRO A 672 27.476 -31.431 9.702 1.00 73.84 C +ATOM 4517 N LYS A 673 32.153 -32.203 9.491 1.00 77.18 N +ATOM 4518 CA LYS A 673 33.149 -33.042 10.149 1.00 73.67 C +ATOM 4519 C LYS A 673 33.489 -32.553 11.547 1.00 71.53 C +ATOM 4520 O LYS A 673 33.824 -33.371 12.411 1.00 70.90 O +ATOM 4521 CB LYS A 673 34.426 -33.136 9.333 1.00 76.47 C +ATOM 4522 CG LYS A 673 35.272 -34.289 9.787 1.00 75.44 C +ATOM 4523 CD LYS A 673 36.163 -34.723 8.684 1.00 82.51 C +ATOM 4524 CE LYS A 673 35.378 -35.519 7.659 1.00 89.63 C +ATOM 4525 NZ LYS A 673 36.239 -36.548 7.014 1.00 94.77 N +ATOM 4526 N HIS A 674 33.431 -31.241 11.782 1.00 70.93 N +ATOM 4527 CA HIS A 674 33.682 -30.650 13.090 1.00 70.61 C +ATOM 4528 C HIS A 674 32.581 -29.665 13.448 1.00 71.33 C +ATOM 4529 O HIS A 674 31.911 -29.111 12.576 1.00 73.68 O +ATOM 4530 CB HIS A 674 35.018 -29.904 13.139 1.00 75.15 C +ATOM 4531 CG HIS A 674 36.197 -30.758 12.823 1.00 74.12 C +ATOM 4532 ND1 HIS A 674 37.016 -31.281 13.800 1.00 74.59 N +ATOM 4533 CD2 HIS A 674 36.677 -31.212 11.644 1.00 76.46 C +ATOM 4534 CE1 HIS A 674 37.968 -32.000 13.233 1.00 79.86 C +ATOM 4535 NE2 HIS A 674 37.785 -31.974 11.925 1.00 85.19 N +ATOM 4536 N MET A 675 32.443 -29.412 14.748 1.00 69.14 N +ATOM 4537 CA MET A 675 31.433 -28.499 15.262 1.00 67.80 C +ATOM 4538 C MET A 675 31.809 -28.130 16.689 1.00 67.59 C +ATOM 4539 O MET A 675 32.301 -28.984 17.427 1.00 71.19 O +ATOM 4540 CB MET A 675 30.060 -29.164 15.243 1.00 65.23 C +ATOM 4541 CG MET A 675 29.343 -29.117 13.919 1.00 65.59 C +ATOM 4542 SD MET A 675 27.557 -29.232 14.163 1.00 75.44 S +ATOM 4543 CE MET A 675 27.360 -30.857 14.893 1.00 61.22 C +ATOM 4544 N ALA A 676 31.576 -26.876 17.080 1.00 68.72 N +ATOM 4545 CA ALA A 676 31.762 -26.515 18.482 1.00 68.47 C +ATOM 4546 C ALA A 676 30.956 -25.268 18.775 1.00 69.14 C +ATOM 4547 O ALA A 676 30.522 -24.559 17.861 1.00 70.32 O +ATOM 4548 CB ALA A 676 33.230 -26.289 18.839 1.00 70.50 C +ATOM 4549 N SER A 677 30.732 -25.029 20.061 1.00 68.45 N +ATOM 4550 CA SER A 677 29.816 -23.975 20.443 1.00 68.83 C +ATOM 4551 C SER A 677 30.053 -23.644 21.906 1.00 68.93 C +ATOM 4552 O SER A 677 30.548 -24.468 22.683 1.00 67.80 O +ATOM 4553 CB SER A 677 28.364 -24.406 20.259 1.00 69.13 C +ATOM 4554 OG SER A 677 28.007 -25.283 21.312 1.00 67.66 O +ATOM 4555 N LEU A 678 29.654 -22.439 22.288 1.00 70.38 N +ATOM 4556 CA LEU A 678 29.905 -22.034 23.656 1.00 70.87 C +ATOM 4557 C LEU A 678 29.142 -20.763 24.015 1.00 72.93 C +ATOM 4558 O LEU A 678 29.124 -19.798 23.249 1.00 74.37 O +ATOM 4559 CB LEU A 678 31.399 -21.879 23.839 1.00 72.89 C +ATOM 4560 CG LEU A 678 31.817 -21.500 25.241 1.00 76.98 C +ATOM 4561 CD1 LEU A 678 32.948 -22.402 25.701 1.00 80.48 C +ATOM 4562 CD2 LEU A 678 32.268 -20.060 25.185 1.00 77.04 C +ATOM 4563 N TRP A 679 28.506 -20.770 25.183 1.00 76.03 N +ATOM 4564 CA TRP A 679 27.544 -19.774 25.636 1.00 76.80 C +ATOM 4565 C TRP A 679 27.797 -19.461 27.094 1.00 80.58 C +ATOM 4566 O TRP A 679 28.101 -20.357 27.888 1.00 79.43 O +ATOM 4567 CB TRP A 679 26.098 -20.283 25.543 1.00 79.13 C +ATOM 4568 CG TRP A 679 25.051 -19.384 26.235 1.00 83.52 C +ATOM 4569 CD1 TRP A 679 24.574 -19.562 27.514 1.00 82.20 C +ATOM 4570 CD2 TRP A 679 24.283 -18.296 25.677 1.00 84.38 C +ATOM 4571 NE1 TRP A 679 23.620 -18.615 27.809 1.00 82.81 N +ATOM 4572 CE2 TRP A 679 23.410 -17.834 26.700 1.00 86.59 C +ATOM 4573 CE3 TRP A 679 24.265 -17.657 24.437 1.00 80.66 C +ATOM 4574 CZ2 TRP A 679 22.534 -16.766 26.511 1.00 87.73 C +ATOM 4575 CZ3 TRP A 679 23.393 -16.590 24.254 1.00 85.76 C +ATOM 4576 CH2 TRP A 679 22.540 -16.159 25.286 1.00 89.18 C +ATOM 4577 N ALA A 680 27.585 -18.200 27.461 1.00 85.30 N +ATOM 4578 CA ALA A 680 27.695 -17.804 28.855 1.00 81.49 C +ATOM 4579 C ALA A 680 26.664 -16.736 29.190 1.00 85.43 C +ATOM 4580 O ALA A 680 26.064 -16.102 28.313 1.00 87.82 O +ATOM 4581 CB ALA A 680 29.110 -17.310 29.193 1.00 78.42 C +ATOM 4582 N ASP A 681 26.489 -16.551 30.493 1.00 86.82 N +ATOM 4583 CA ASP A 681 25.515 -15.634 31.060 1.00 93.03 C +ATOM 4584 C ASP A 681 26.061 -15.104 32.374 1.00 96.40 C +ATOM 4585 O ASP A 681 26.241 -15.884 33.317 1.00 91.40 O +ATOM 4586 CB ASP A 681 24.183 -16.340 31.299 1.00 92.34 C +ATOM 4587 CG ASP A 681 23.153 -15.415 31.919 1.00100.49 C +ATOM 4588 OD1 ASP A 681 22.678 -14.519 31.183 1.00101.67 O +ATOM 4589 OD2 ASP A 681 22.798 -15.601 33.118 1.00103.00 O +ATOM 4590 N TYR A 682 26.297 -13.793 32.450 1.00100.56 N +ATOM 4591 CA TYR A 682 26.639 -13.148 33.712 1.00101.64 C +ATOM 4592 C TYR A 682 25.416 -12.447 34.270 1.00102.82 C +ATOM 4593 O TYR A 682 24.859 -11.543 33.635 1.00103.67 O +ATOM 4594 CB TYR A 682 27.763 -12.141 33.547 1.00106.00 C +ATOM 4595 CG TYR A 682 28.460 -11.785 34.830 1.00107.64 C +ATOM 4596 CD1 TYR A 682 29.749 -12.225 35.075 1.00107.81 C +ATOM 4597 CD2 TYR A 682 27.840 -11.001 35.789 1.00110.77 C +ATOM 4598 CE1 TYR A 682 30.414 -11.891 36.227 1.00110.09 C +ATOM 4599 CE2 TYR A 682 28.497 -10.663 36.958 1.00112.19 C +ATOM 4600 CZ TYR A 682 29.787 -11.117 37.168 1.00112.25 C +ATOM 4601 OH TYR A 682 30.470 -10.803 38.315 1.00117.21 O +ATOM 4602 N ALA A 683 25.009 -12.869 35.446 1.00104.50 N +ATOM 4603 CA ALA A 683 23.906 -12.265 36.166 1.00108.95 C +ATOM 4604 C ALA A 683 24.506 -11.485 37.327 1.00114.95 C +ATOM 4605 O ALA A 683 24.994 -12.080 38.293 1.00115.20 O +ATOM 4606 CB ALA A 683 22.929 -13.333 36.648 1.00108.03 C +ATOM 4607 N PHE A 684 24.479 -10.158 37.229 1.00116.09 N +ATOM 4608 CA PHE A 684 24.936 -9.309 38.325 1.00120.51 C +ATOM 4609 C PHE A 684 23.988 -9.518 39.506 1.00123.23 C +ATOM 4610 O PHE A 684 22.849 -9.040 39.503 1.00123.08 O +ATOM 4611 CB PHE A 684 24.979 -7.850 37.882 1.00118.91 C +ATOM 4612 CG PHE A 684 26.124 -7.519 36.952 1.00116.41 C +ATOM 4613 CD1 PHE A 684 27.411 -7.320 37.447 1.00112.33 C +ATOM 4614 CD2 PHE A 684 25.907 -7.396 35.586 1.00114.44 C +ATOM 4615 CE1 PHE A 684 28.463 -7.004 36.595 1.00109.81 C +ATOM 4616 CE2 PHE A 684 26.951 -7.084 34.733 1.00113.86 C +ATOM 4617 CZ PHE A 684 28.234 -6.886 35.240 1.00112.65 C +ATOM 4618 N ASP A 685 24.455 -10.255 40.518 1.00123.70 N +ATOM 4619 CA ASP A 685 23.618 -10.565 41.674 1.00123.15 C +ATOM 4620 C ASP A 685 23.278 -9.300 42.457 1.00125.95 C +ATOM 4621 O ASP A 685 22.102 -8.967 42.641 1.00126.47 O +ATOM 4622 CB ASP A 685 24.320 -11.590 42.571 1.00123.76 C +ATOM 4623 CG ASP A 685 25.776 -11.238 42.832 1.00129.18 C +ATOM 4624 OD1 ASP A 685 26.216 -10.153 42.393 1.00129.98 O +ATOM 4625 OD2 ASP A 685 26.480 -12.042 43.482 1.00128.92 O +ATOM 4626 N ALA A 686 24.305 -8.575 42.921 1.00124.69 N +ATOM 4627 CA ALA A 686 24.130 -7.429 43.813 1.00125.37 C +ATOM 4628 C ALA A 686 24.884 -6.175 43.374 1.00120.82 C +ATOM 4629 O ALA A 686 25.425 -6.106 42.265 1.00119.83 O +ATOM 4630 CB ALA A 686 24.561 -7.796 45.234 1.00127.07 C +ATOM 4631 N GLY A 687 24.923 -5.179 44.255 1.00121.90 N +ATOM 4632 CA GLY A 687 25.541 -3.911 43.957 1.00125.83 C +ATOM 4633 C GLY A 687 24.632 -3.077 43.083 1.00124.13 C +ATOM 4634 O GLY A 687 23.451 -3.396 42.895 1.00121.00 O +ATOM 4635 N PRO A 688 25.163 -1.993 42.520 1.00122.67 N +ATOM 4636 CA PRO A 688 24.320 -1.151 41.657 1.00124.02 C +ATOM 4637 C PRO A 688 23.619 -1.925 40.545 1.00120.87 C +ATOM 4638 O PRO A 688 22.429 -1.682 40.308 1.00125.76 O +ATOM 4639 CB PRO A 688 25.315 -0.113 41.118 1.00128.00 C +ATOM 4640 CG PRO A 688 26.370 -0.025 42.187 1.00130.19 C +ATOM 4641 CD PRO A 688 26.504 -1.418 42.733 1.00126.01 C +ATOM 4642 N LEU A 689 24.284 -2.882 39.890 1.00120.71 N +ATOM 4643 CA LEU A 689 23.656 -3.591 38.767 1.00117.15 C +ATOM 4644 C LEU A 689 22.859 -4.798 39.220 1.00116.62 C +ATOM 4645 O LEU A 689 23.003 -5.880 38.648 1.00114.84 O +ATOM 4646 CB LEU A 689 24.724 -4.017 37.762 1.00113.64 C +ATOM 4647 CG LEU A 689 25.675 -2.927 37.275 1.00116.21 C +ATOM 4648 CD1 LEU A 689 26.939 -3.539 36.673 1.00115.15 C +ATOM 4649 CD2 LEU A 689 24.979 -2.025 36.271 1.00117.90 C +ATOM 4650 N SER A 690 21.986 -4.643 40.211 1.00118.45 N +ATOM 4651 CA SER A 690 21.287 -5.783 40.799 1.00120.59 C +ATOM 4652 C SER A 690 20.035 -6.111 39.983 1.00119.55 C +ATOM 4653 O SER A 690 19.172 -5.245 39.787 1.00120.66 O +ATOM 4654 CB SER A 690 20.936 -5.483 42.259 1.00122.83 C +ATOM 4655 OG SER A 690 19.984 -6.401 42.779 1.00122.29 O +ATOM 4656 N GLY A 691 19.926 -7.358 39.528 1.00116.35 N +ATOM 4657 CA GLY A 691 18.847 -7.768 38.660 1.00113.47 C +ATOM 4658 C GLY A 691 19.165 -7.691 37.184 1.00109.15 C +ATOM 4659 O GLY A 691 18.271 -7.927 36.358 1.00106.89 O +ATOM 4660 N LEU A 692 20.409 -7.381 36.831 1.00108.69 N +ATOM 4661 CA LEU A 692 20.891 -7.304 35.460 1.00107.02 C +ATOM 4662 C LEU A 692 21.461 -8.643 35.034 1.00108.23 C +ATOM 4663 O LEU A 692 22.178 -9.281 35.800 1.00112.65 O +ATOM 4664 CB LEU A 692 22.013 -6.283 35.324 1.00107.50 C +ATOM 4665 CG LEU A 692 22.465 -6.229 33.865 1.00106.63 C +ATOM 4666 CD1 LEU A 692 21.374 -5.569 33.009 1.00105.69 C +ATOM 4667 CD2 LEU A 692 23.869 -5.607 33.684 1.00108.14 C +ATOM 4668 N SER A 693 21.203 -9.034 33.798 1.00103.94 N +ATOM 4669 CA SER A 693 21.701 -10.291 33.270 1.00100.66 C +ATOM 4670 C SER A 693 22.236 -10.013 31.874 1.00102.94 C +ATOM 4671 O SER A 693 21.501 -9.468 31.048 1.00105.90 O +ATOM 4672 CB SER A 693 20.551 -11.309 33.197 1.00103.52 C +ATOM 4673 OG SER A 693 20.012 -11.577 34.477 1.00105.11 O +ATOM 4674 N ILE A 694 23.480 -10.371 31.566 1.00 99.83 N +ATOM 4675 CA ILE A 694 23.871 -10.382 30.162 1.00 99.66 C +ATOM 4676 C ILE A 694 24.380 -11.771 29.849 1.00100.57 C +ATOM 4677 O ILE A 694 25.090 -12.381 30.664 1.00 99.41 O +ATOM 4678 CB ILE A 694 24.979 -9.397 29.804 1.00 95.76 C +ATOM 4679 CG1 ILE A 694 26.332 -10.013 30.045 1.00104.56 C +ATOM 4680 CG2 ILE A 694 24.881 -8.215 30.716 1.00 96.88 C +ATOM 4681 CD1 ILE A 694 27.523 -9.195 29.453 1.00108.23 C +ATOM 4682 N GLY A 695 23.999 -12.271 28.678 1.00 99.19 N +ATOM 4683 CA GLY A 695 24.485 -13.540 28.208 1.00 94.82 C +ATOM 4684 C GLY A 695 24.906 -13.414 26.761 1.00 92.16 C +ATOM 4685 O GLY A 695 24.601 -12.436 26.085 1.00 94.56 O +ATOM 4686 N GLY A 696 25.636 -14.417 26.316 1.00 89.27 N +ATOM 4687 CA GLY A 696 26.062 -14.468 24.946 1.00 87.24 C +ATOM 4688 C GLY A 696 26.746 -15.786 24.687 1.00 84.09 C +ATOM 4689 O GLY A 696 27.145 -16.499 25.614 1.00 80.18 O +ATOM 4690 N GLY A 697 26.850 -16.105 23.407 1.00 82.49 N +ATOM 4691 CA GLY A 697 27.506 -17.327 22.994 1.00 80.44 C +ATOM 4692 C GLY A 697 27.833 -17.242 21.522 1.00 81.30 C +ATOM 4693 O GLY A 697 27.341 -16.380 20.788 1.00 85.40 O +ATOM 4694 N ALA A 698 28.688 -18.154 21.097 1.00 77.94 N +ATOM 4695 CA ALA A 698 29.028 -18.299 19.698 1.00 78.71 C +ATOM 4696 C ALA A 698 29.061 -19.780 19.413 1.00 75.98 C +ATOM 4697 O ALA A 698 28.951 -20.610 20.314 1.00 73.80 O +ATOM 4698 CB ALA A 698 30.372 -17.652 19.347 1.00 81.89 C +ATOM 4699 N ARG A 699 29.158 -20.111 18.145 1.00 78.67 N +ATOM 4700 CA ARG A 699 29.015 -21.506 17.790 1.00 76.42 C +ATOM 4701 C ARG A 699 29.275 -21.738 16.310 1.00 78.44 C +ATOM 4702 O ARG A 699 28.708 -21.032 15.469 1.00 79.02 O +ATOM 4703 CB ARG A 699 27.632 -21.930 18.172 1.00 78.94 C +ATOM 4704 CG ARG A 699 26.728 -20.943 17.523 1.00 79.88 C +ATOM 4705 CD ARG A 699 25.375 -21.535 17.485 1.00 78.09 C +ATOM 4706 NE ARG A 699 24.454 -20.651 16.863 1.00 86.00 N +ATOM 4707 CZ ARG A 699 23.325 -21.064 16.305 1.00 88.20 C +ATOM 4708 NH1 ARG A 699 23.073 -22.365 16.078 1.00 87.43 N +ATOM 4709 NH2 ARG A 699 22.520 -20.128 15.746 1.00 88.41 N +ATOM 4710 N TYR A 700 30.075 -22.773 16.020 1.00 77.71 N +ATOM 4711 CA TYR A 700 30.767 -22.992 14.756 1.00 78.54 C +ATOM 4712 C TYR A 700 30.429 -24.366 14.190 1.00 76.98 C +ATOM 4713 O TYR A 700 30.154 -25.324 14.934 1.00 75.03 O +ATOM 4714 CB TYR A 700 32.293 -22.907 14.962 1.00 80.20 C +ATOM 4715 CG TYR A 700 33.155 -23.369 13.789 1.00 83.81 C +ATOM 4716 CD1 TYR A 700 33.333 -22.564 12.672 1.00 87.66 C +ATOM 4717 CD2 TYR A 700 33.781 -24.622 13.794 1.00 83.94 C +ATOM 4718 CE1 TYR A 700 34.140 -22.980 11.588 1.00 91.87 C +ATOM 4719 CE2 TYR A 700 34.586 -25.050 12.707 1.00 89.64 C +ATOM 4720 CZ TYR A 700 34.761 -24.224 11.603 1.00 91.99 C +ATOM 4721 OH TYR A 700 35.548 -24.625 10.526 1.00 93.48 O +ATOM 4722 N VAL A 701 30.517 -24.454 12.858 1.00 79.68 N +ATOM 4723 CA VAL A 701 30.209 -25.665 12.104 1.00 80.74 C +ATOM 4724 C VAL A 701 31.144 -25.829 10.913 1.00 81.41 C +ATOM 4725 O VAL A 701 31.115 -25.023 9.975 1.00 83.15 O +ATOM 4726 CB VAL A 701 28.764 -25.637 11.600 1.00 80.14 C +ATOM 4727 CG1 VAL A 701 28.591 -24.419 10.734 1.00 85.12 C +ATOM 4728 CG2 VAL A 701 28.482 -26.889 10.805 1.00 77.41 C +ATOM 4729 N GLY A 702 31.924 -26.912 10.908 1.00 84.56 N +ATOM 4730 CA GLY A 702 32.891 -27.158 9.855 1.00 85.89 C +ATOM 4731 C GLY A 702 32.225 -27.231 8.505 1.00 86.36 C +ATOM 4732 O GLY A 702 31.000 -27.141 8.411 1.00 87.07 O +ATOM 4733 N GLU A 703 33.005 -27.396 7.451 1.00 95.66 N +ATOM 4734 CA GLU A 703 32.422 -27.439 6.121 1.00 94.91 C +ATOM 4735 C GLU A 703 31.616 -28.718 5.918 1.00 93.50 C +ATOM 4736 O GLU A 703 32.101 -29.827 6.168 1.00 91.07 O +ATOM 4737 CB GLU A 703 33.515 -27.331 5.071 1.00 94.15 C +ATOM 4738 CG GLU A 703 34.719 -28.200 5.344 1.00 98.34 C +ATOM 4739 CD GLU A 703 35.542 -28.425 4.095 1.00106.53 C +ATOM 4740 OE1 GLU A 703 35.699 -27.470 3.298 1.00103.33 O +ATOM 4741 OE2 GLU A 703 36.032 -29.558 3.912 1.00111.17 O +ATOM 4742 N THR A 704 30.377 -28.553 5.465 1.00 96.14 N +ATOM 4743 CA THR A 704 29.527 -29.654 5.041 1.00 94.10 C +ATOM 4744 C THR A 704 29.538 -29.754 3.523 1.00 93.69 C +ATOM 4745 O THR A 704 29.725 -28.763 2.817 1.00 95.33 O +ATOM 4746 CB THR A 704 28.080 -29.471 5.517 1.00 90.94 C +ATOM 4747 OG1 THR A 704 27.302 -30.593 5.084 1.00 92.54 O +ATOM 4748 CG2 THR A 704 27.464 -28.207 4.913 1.00 90.75 C +ATOM 4749 N TRP A 705 29.340 -30.963 3.023 1.00 94.22 N +ATOM 4750 CA TRP A 705 29.134 -31.139 1.597 1.00 93.21 C +ATOM 4751 C TRP A 705 27.711 -30.723 1.232 1.00 92.94 C +ATOM 4752 O TRP A 705 26.784 -30.763 2.059 1.00 90.99 O +ATOM 4753 CB TRP A 705 29.368 -32.592 1.195 1.00 94.23 C +ATOM 4754 CG TRP A 705 30.798 -33.032 1.190 1.00 94.26 C +ATOM 4755 CD1 TRP A 705 31.405 -33.824 2.120 1.00 96.29 C +ATOM 4756 CD2 TRP A 705 31.779 -32.773 0.186 1.00 94.12 C +ATOM 4757 NE1 TRP A 705 32.708 -34.046 1.774 1.00 94.89 N +ATOM 4758 CE2 TRP A 705 32.966 -33.415 0.589 1.00 95.14 C +ATOM 4759 CE3 TRP A 705 31.774 -32.051 -1.009 1.00 98.19 C +ATOM 4760 CZ2 TRP A 705 34.139 -33.352 -0.154 1.00 98.24 C +ATOM 4761 CZ3 TRP A 705 32.941 -31.991 -1.752 1.00 99.31 C +ATOM 4762 CH2 TRP A 705 34.108 -32.638 -1.320 1.00101.53 C +ATOM 4763 N ALA A 706 27.548 -30.307 -0.019 1.00 88.50 N +ATOM 4764 CA ALA A 706 26.254 -29.920 -0.553 1.00 91.30 C +ATOM 4765 C ALA A 706 25.638 -30.996 -1.445 1.00 87.70 C +ATOM 4766 O ALA A 706 24.598 -30.742 -2.062 1.00 84.27 O +ATOM 4767 CB ALA A 706 26.377 -28.597 -1.322 1.00 85.80 C +ATOM 4768 N ASP A 707 26.246 -32.183 -1.536 1.00 87.30 N +ATOM 4769 CA ASP A 707 25.638 -33.288 -2.280 1.00 86.49 C +ATOM 4770 C ASP A 707 26.330 -34.610 -1.957 1.00 92.23 C +ATOM 4771 O ASP A 707 27.484 -34.633 -1.516 1.00 89.09 O +ATOM 4772 CB ASP A 707 25.704 -33.070 -3.783 1.00 90.39 C +ATOM 4773 CG ASP A 707 27.131 -33.054 -4.286 1.00 99.79 C +ATOM 4774 OD1 ASP A 707 28.015 -33.198 -3.410 1.00101.63 O +ATOM 4775 OD2 ASP A 707 27.370 -32.957 -5.529 1.00 90.14 O +ATOM 4776 N LYS A 708 25.630 -35.717 -2.266 1.00 96.61 N +ATOM 4777 CA LYS A 708 26.210 -37.056 -2.124 1.00 93.25 C +ATOM 4778 C LYS A 708 27.413 -37.265 -3.032 1.00 90.78 C +ATOM 4779 O LYS A 708 28.345 -37.991 -2.673 1.00 90.98 O +ATOM 4780 CB LYS A 708 25.172 -38.141 -2.420 1.00 89.44 C +ATOM 4781 CG LYS A 708 24.099 -38.290 -1.382 1.00 92.65 C +ATOM 4782 CD LYS A 708 23.548 -39.724 -1.376 1.00 90.95 C +ATOM 4783 CE LYS A 708 22.494 -39.913 -0.278 1.00 87.16 C +ATOM 4784 NZ LYS A 708 21.113 -39.684 -0.776 1.00 91.95 N +ATOM 4785 N GLU A 709 27.395 -36.672 -4.216 1.00 90.23 N +ATOM 4786 CA GLU A 709 28.512 -36.792 -5.132 1.00 94.21 C +ATOM 4787 C GLU A 709 29.748 -36.041 -4.649 1.00 94.20 C +ATOM 4788 O GLU A 709 30.831 -36.244 -5.200 1.00 98.22 O +ATOM 4789 CB GLU A 709 28.084 -36.275 -6.512 1.00 97.63 C +ATOM 4790 CG GLU A 709 27.075 -37.161 -7.254 1.00 92.06 C +ATOM 4791 CD GLU A 709 25.759 -37.308 -6.516 1.00 97.08 C +ATOM 4792 OE1 GLU A 709 25.077 -36.284 -6.282 1.00 98.32 O +ATOM 4793 OE2 GLU A 709 25.408 -38.453 -6.163 1.00102.32 O +ATOM 4794 N ASN A 710 29.619 -35.185 -3.637 1.00 98.02 N +ATOM 4795 CA ASN A 710 30.735 -34.373 -3.144 1.00 96.66 C +ATOM 4796 C ASN A 710 31.295 -33.458 -4.237 1.00 96.31 C +ATOM 4797 O ASN A 710 32.494 -33.441 -4.513 1.00 98.73 O +ATOM 4798 CB ASN A 710 31.836 -35.258 -2.549 1.00 96.09 C +ATOM 4799 CG ASN A 710 31.328 -36.170 -1.424 1.00 94.31 C +ATOM 4800 OD1 ASN A 710 31.512 -37.385 -1.465 1.00 92.36 O +ATOM 4801 ND2 ASN A 710 30.702 -35.580 -0.413 1.00 90.18 N +ATOM 4802 N THR A 711 30.407 -32.682 -4.861 1.00 96.82 N +ATOM 4803 CA THR A 711 30.840 -31.724 -5.871 1.00 97.42 C +ATOM 4804 C THR A 711 31.321 -30.408 -5.268 1.00 97.07 C +ATOM 4805 O THR A 711 32.144 -29.728 -5.889 1.00 99.27 O +ATOM 4806 CB THR A 711 29.712 -31.454 -6.865 1.00 99.60 C +ATOM 4807 OG1 THR A 711 28.521 -31.092 -6.151 1.00112.88 O +ATOM 4808 CG2 THR A 711 29.439 -32.686 -7.687 1.00 95.23 C +ATOM 4809 N LEU A 712 30.840 -30.017 -4.086 1.00 96.55 N +ATOM 4810 CA LEU A 712 31.321 -28.759 -3.519 1.00 99.16 C +ATOM 4811 C LEU A 712 30.967 -28.684 -2.044 1.00 92.87 C +ATOM 4812 O LEU A 712 29.999 -29.301 -1.588 1.00 97.28 O +ATOM 4813 CB LEU A 712 30.753 -27.534 -4.263 1.00 98.73 C +ATOM 4814 CG LEU A 712 29.283 -27.149 -4.081 1.00 98.71 C +ATOM 4815 CD1 LEU A 712 28.991 -25.739 -4.575 1.00 94.84 C +ATOM 4816 CD2 LEU A 712 28.407 -28.145 -4.800 1.00101.31 C +ATOM 4817 N ARG A 713 31.753 -27.908 -1.312 1.00 90.66 N +ATOM 4818 CA ARG A 713 31.544 -27.765 0.114 1.00 94.89 C +ATOM 4819 C ARG A 713 30.644 -26.576 0.401 1.00 93.99 C +ATOM 4820 O ARG A 713 30.620 -25.599 -0.347 1.00 94.49 O +ATOM 4821 CB ARG A 713 32.878 -27.598 0.822 1.00 96.10 C +ATOM 4822 CG ARG A 713 33.849 -28.692 0.480 1.00 97.00 C +ATOM 4823 CD ARG A 713 33.526 -29.890 1.332 1.00101.23 C +ATOM 4824 NE ARG A 713 34.671 -30.756 1.553 1.00102.65 N +ATOM 4825 CZ ARG A 713 34.755 -31.607 2.569 1.00105.43 C +ATOM 4826 NH1 ARG A 713 33.765 -31.690 3.461 1.00 99.21 N +ATOM 4827 NH2 ARG A 713 35.831 -32.366 2.699 1.00110.11 N +ATOM 4828 N VAL A 714 29.878 -26.677 1.478 1.00 92.68 N +ATOM 4829 CA VAL A 714 29.155 -25.506 1.955 1.00 93.40 C +ATOM 4830 C VAL A 714 30.054 -24.815 2.979 1.00 97.81 C +ATOM 4831 O VAL A 714 30.589 -25.470 3.886 1.00 95.91 O +ATOM 4832 CB VAL A 714 27.777 -25.881 2.515 1.00 91.18 C +ATOM 4833 CG1 VAL A 714 27.065 -24.633 3.020 1.00 90.28 C +ATOM 4834 CG2 VAL A 714 26.950 -26.591 1.437 1.00 90.34 C +ATOM 4835 N PRO A 715 30.273 -23.508 2.850 1.00 97.22 N +ATOM 4836 CA PRO A 715 31.244 -22.817 3.708 1.00 92.16 C +ATOM 4837 C PRO A 715 30.871 -22.911 5.178 1.00 94.78 C +ATOM 4838 O PRO A 715 29.700 -23.027 5.544 1.00 98.10 O +ATOM 4839 CB PRO A 715 31.167 -21.366 3.224 1.00 92.15 C +ATOM 4840 CG PRO A 715 29.809 -21.259 2.575 1.00 94.64 C +ATOM 4841 CD PRO A 715 29.597 -22.587 1.924 1.00 97.34 C +ATOM 4842 N ASP A 716 31.892 -22.840 6.030 1.00 94.54 N +ATOM 4843 CA ASP A 716 31.693 -22.923 7.472 1.00 92.77 C +ATOM 4844 C ASP A 716 31.243 -21.578 8.026 1.00 92.57 C +ATOM 4845 O ASP A 716 31.715 -20.521 7.611 1.00100.24 O +ATOM 4846 CB ASP A 716 32.977 -23.369 8.174 1.00 92.78 C +ATOM 4847 CG ASP A 716 34.153 -22.418 7.905 1.00104.23 C +ATOM 4848 OD1 ASP A 716 34.355 -21.468 8.701 1.00106.26 O +ATOM 4849 OD2 ASP A 716 34.862 -22.604 6.886 1.00104.01 O +ATOM 4850 N TYR A 717 30.315 -21.626 8.959 1.00 91.34 N +ATOM 4851 CA TYR A 717 29.745 -20.437 9.565 1.00 93.36 C +ATOM 4852 C TYR A 717 29.895 -20.429 11.074 1.00 91.49 C +ATOM 4853 O TYR A 717 29.864 -21.465 11.733 1.00 90.46 O +ATOM 4854 CB TYR A 717 28.304 -20.246 9.069 1.00 94.40 C +ATOM 4855 CG TYR A 717 27.463 -21.510 9.000 1.00 86.16 C +ATOM 4856 CD1 TYR A 717 27.538 -22.283 7.845 1.00 88.19 C +ATOM 4857 CD2 TYR A 717 26.542 -21.883 9.964 1.00 87.16 C +ATOM 4858 CE1 TYR A 717 26.796 -23.411 7.671 1.00 86.23 C +ATOM 4859 CE2 TYR A 717 25.767 -23.039 9.788 1.00 87.17 C +ATOM 4860 CZ TYR A 717 25.909 -23.795 8.626 1.00 86.87 C +ATOM 4861 OH TYR A 717 25.179 -24.944 8.382 1.00 88.77 O +ATOM 4862 N THR A 718 30.125 -19.224 11.583 1.00 90.62 N +ATOM 4863 CA THR A 718 30.311 -18.959 12.998 1.00 85.07 C +ATOM 4864 C THR A 718 29.314 -17.878 13.372 1.00 84.88 C +ATOM 4865 O THR A 718 29.398 -16.757 12.859 1.00 88.16 O +ATOM 4866 CB THR A 718 31.735 -18.484 13.287 1.00 88.18 C +ATOM 4867 OG1 THR A 718 32.670 -19.449 12.790 1.00 89.90 O +ATOM 4868 CG2 THR A 718 31.941 -18.309 14.777 1.00 88.29 C +ATOM 4869 N LEU A 719 28.330 -18.213 14.185 1.00 87.04 N +ATOM 4870 CA LEU A 719 27.316 -17.199 14.534 1.00 87.09 C +ATOM 4871 C LEU A 719 27.562 -16.673 15.932 1.00 87.77 C +ATOM 4872 O LEU A 719 28.351 -17.258 16.641 1.00 86.12 O +ATOM 4873 CB LEU A 719 25.942 -17.845 14.474 1.00 87.58 C +ATOM 4874 CG LEU A 719 25.493 -18.239 13.082 1.00 91.40 C +ATOM 4875 CD1 LEU A 719 26.368 -19.340 12.533 1.00 91.31 C +ATOM 4876 CD2 LEU A 719 24.051 -18.686 13.131 1.00 91.82 C +ATOM 4877 N VAL A 720 26.877 -15.606 16.295 1.00 87.42 N +ATOM 4878 CA VAL A 720 27.121 -15.050 17.645 1.00 90.13 C +ATOM 4879 C VAL A 720 25.780 -14.840 18.314 1.00 92.83 C +ATOM 4880 O VAL A 720 24.907 -14.339 17.658 1.00 98.95 O +ATOM 4881 CB VAL A 720 27.887 -13.729 17.520 1.00 91.92 C +ATOM 4882 CG1 VAL A 720 27.771 -12.879 18.770 1.00 89.87 C +ATOM 4883 CG2 VAL A 720 29.336 -13.991 17.172 1.00 95.24 C +ATOM 4884 N ASP A 721 25.644 -15.186 19.581 1.00 88.24 N +ATOM 4885 CA ASP A 721 24.321 -14.964 20.197 1.00 90.66 C +ATOM 4886 C ASP A 721 24.506 -13.996 21.347 1.00 91.10 C +ATOM 4887 O ASP A 721 25.407 -14.206 22.126 1.00 90.72 O +ATOM 4888 CB ASP A 721 23.720 -16.265 20.720 1.00 89.63 C +ATOM 4889 CG ASP A 721 23.723 -17.402 19.728 1.00 92.56 C +ATOM 4890 OD1 ASP A 721 23.423 -17.158 18.564 1.00 93.67 O +ATOM 4891 OD2 ASP A 721 24.033 -18.513 20.143 1.00 89.52 O +ATOM 4892 N ALA A 722 23.618 -13.027 21.465 1.00 89.74 N +ATOM 4893 CA ALA A 722 23.756 -12.054 22.536 1.00 91.43 C +ATOM 4894 C ALA A 722 22.452 -11.934 23.283 1.00 94.35 C +ATOM 4895 O ALA A 722 21.381 -12.233 22.757 1.00 95.44 O +ATOM 4896 CB ALA A 722 24.129 -10.689 22.018 1.00 92.44 C +ATOM 4897 N ARG A 723 22.557 -11.570 24.542 1.00 96.00 N +ATOM 4898 CA ARG A 723 21.347 -11.555 25.324 1.00 96.03 C +ATOM 4899 C ARG A 723 21.530 -10.734 26.572 1.00 99.83 C +ATOM 4900 O ARG A 723 22.596 -10.790 27.178 1.00101.58 O +ATOM 4901 CB ARG A 723 20.885 -12.956 25.636 1.00 95.27 C +ATOM 4902 CG ARG A 723 19.653 -12.753 26.433 1.00 98.83 C +ATOM 4903 CD ARG A 723 20.153 -13.070 27.971 1.00 93.30 C +ATOM 4904 NE ARG A 723 19.125 -12.983 28.949 1.00 95.52 N +ATOM 4905 CZ ARG A 723 19.242 -13.201 30.260 1.00101.95 C +ATOM 4906 NH1 ARG A 723 20.363 -13.547 30.859 1.00103.00 N +ATOM 4907 NH2 ARG A 723 18.188 -12.941 31.031 1.00106.12 N +ATOM 4908 N ILE A 724 20.524 -9.891 26.853 1.00 99.74 N +ATOM 4909 CA ILE A 724 20.525 -8.904 27.934 1.00 96.62 C +ATOM 4910 C ILE A 724 19.198 -9.004 28.641 1.00 97.78 C +ATOM 4911 O ILE A 724 18.159 -8.839 27.994 1.00 96.90 O +ATOM 4912 CB ILE A 724 20.672 -7.457 27.427 1.00 97.57 C +ATOM 4913 CG1 ILE A 724 21.963 -7.297 26.629 1.00101.08 C +ATOM 4914 CG2 ILE A 724 20.657 -6.421 28.595 1.00 99.64 C +ATOM 4915 CD1 ILE A 724 23.178 -7.572 27.420 1.00102.59 C +ATOM 4916 N GLY A 725 19.224 -9.194 29.962 1.00 99.21 N +ATOM 4917 CA GLY A 725 18.009 -9.317 30.740 1.00101.86 C +ATOM 4918 C GLY A 725 18.070 -8.461 31.966 1.00105.56 C +ATOM 4919 O GLY A 725 19.138 -8.050 32.451 1.00103.74 O +ATOM 4920 N TYR A 726 16.886 -8.170 32.494 1.00106.26 N +ATOM 4921 CA TYR A 726 16.742 -7.462 33.744 1.00104.91 C +ATOM 4922 C TYR A 726 15.482 -7.889 34.476 1.00109.81 C +ATOM 4923 O TYR A 726 14.439 -8.099 33.856 1.00110.11 O +ATOM 4924 CB TYR A 726 16.668 -5.967 33.522 1.00108.38 C +ATOM 4925 CG TYR A 726 17.013 -5.219 34.776 1.00111.78 C +ATOM 4926 CD1 TYR A 726 16.117 -4.334 35.368 1.00112.33 C +ATOM 4927 CD2 TYR A 726 18.254 -5.392 35.367 1.00113.36 C +ATOM 4928 CE1 TYR A 726 16.457 -3.651 36.525 1.00116.76 C +ATOM 4929 CE2 TYR A 726 18.600 -4.719 36.515 1.00115.73 C +ATOM 4930 CZ TYR A 726 17.704 -3.848 37.094 1.00117.91 C +ATOM 4931 OH TYR A 726 18.067 -3.177 38.241 1.00122.43 O +ATOM 4932 N ASP A 727 15.563 -7.946 35.799 1.00111.27 N +ATOM 4933 CA ASP A 727 14.400 -8.157 36.651 1.00113.27 C +ATOM 4934 C ASP A 727 13.905 -6.807 37.150 1.00118.56 C +ATOM 4935 O ASP A 727 14.673 -6.058 37.760 1.00120.09 O +ATOM 4936 CB ASP A 727 14.754 -9.050 37.835 1.00113.59 C +ATOM 4937 CG ASP A 727 13.534 -9.450 38.653 1.00118.44 C +ATOM 4938 OD1 ASP A 727 12.544 -9.910 38.043 1.00120.81 O +ATOM 4939 OD2 ASP A 727 13.577 -9.322 39.900 1.00117.36 O +ATOM 4940 N LEU A 728 12.637 -6.484 36.895 1.00118.85 N +ATOM 4941 CA LEU A 728 12.140 -5.255 37.500 1.00117.77 C +ATOM 4942 C LEU A 728 11.728 -5.460 38.947 1.00124.14 C +ATOM 4943 O LEU A 728 11.430 -4.478 39.641 1.00125.63 O +ATOM 4944 CB LEU A 728 10.958 -4.688 36.734 1.00114.56 C +ATOM 4945 CG LEU A 728 11.386 -4.439 35.300 1.00113.98 C +ATOM 4946 CD1 LEU A 728 10.262 -3.759 34.527 1.00113.34 C +ATOM 4947 CD2 LEU A 728 12.744 -3.741 35.207 1.00113.20 C +ATOM 4948 N GLY A 729 11.698 -6.710 39.414 1.00128.01 N +ATOM 4949 CA GLY A 729 11.419 -6.941 40.815 1.00127.36 C +ATOM 4950 C GLY A 729 12.429 -6.263 41.710 1.00126.48 C +ATOM 4951 O GLY A 729 12.106 -5.880 42.836 1.00123.34 O +ATOM 4952 N LYS A 730 13.652 -6.077 41.211 1.00126.18 N +ATOM 4953 CA LYS A 730 14.698 -5.416 41.974 1.00125.63 C +ATOM 4954 C LYS A 730 14.442 -3.927 42.156 1.00126.22 C +ATOM 4955 O LYS A 730 15.147 -3.292 42.947 1.00126.35 O +ATOM 4956 CB LYS A 730 16.055 -5.627 41.304 1.00123.40 C +ATOM 4957 CG LYS A 730 16.380 -7.083 40.996 1.00123.05 C +ATOM 4958 CD LYS A 730 16.310 -7.952 42.245 1.00121.18 C +ATOM 4959 CE LYS A 730 16.312 -9.447 41.904 1.00127.61 C +ATOM 4960 NZ LYS A 730 14.951 -10.033 41.668 1.00124.11 N +ATOM 4961 N LEU A 731 13.451 -3.355 41.468 1.00124.15 N +ATOM 4962 CA LEU A 731 13.211 -1.923 41.527 1.00122.03 C +ATOM 4963 C LEU A 731 11.910 -1.593 42.233 1.00128.05 C +ATOM 4964 O LEU A 731 11.657 -0.417 42.521 1.00135.04 O +ATOM 4965 CB LEU A 731 13.158 -1.340 40.114 1.00117.00 C +ATOM 4966 CG LEU A 731 14.520 -1.490 39.456 1.00114.65 C +ATOM 4967 CD1 LEU A 731 14.685 -2.954 38.978 1.00120.28 C +ATOM 4968 CD2 LEU A 731 14.773 -0.504 38.351 1.00117.11 C +ATOM 4969 N GLY A 732 11.087 -2.603 42.505 1.00130.92 N +ATOM 4970 CA GLY A 732 9.772 -2.459 43.085 1.00131.68 C +ATOM 4971 C GLY A 732 8.716 -3.330 42.424 1.00131.39 C +ATOM 4972 O GLY A 732 7.833 -3.854 43.111 1.00131.43 O +ATOM 4973 N LEU A 733 8.803 -3.543 41.108 1.00127.55 N +ATOM 4974 CA LEU A 733 7.784 -4.326 40.403 1.00123.72 C +ATOM 4975 C LEU A 733 8.223 -5.786 40.329 1.00121.58 C +ATOM 4976 O LEU A 733 8.688 -6.283 39.301 1.00120.43 O +ATOM 4977 CB LEU A 733 7.517 -3.742 39.023 1.00122.90 C +ATOM 4978 CG LEU A 733 6.681 -2.461 39.053 1.00124.56 C +ATOM 4979 CD1 LEU A 733 6.197 -2.103 37.661 1.00121.36 C +ATOM 4980 CD2 LEU A 733 5.507 -2.597 40.014 1.00125.83 C +ATOM 4981 N LYS A 734 8.045 -6.492 41.444 1.00120.33 N +ATOM 4982 CA LYS A 734 8.460 -7.886 41.502 1.00122.70 C +ATOM 4983 C LYS A 734 7.538 -8.764 40.643 1.00119.66 C +ATOM 4984 O LYS A 734 6.440 -8.364 40.241 1.00120.78 O +ATOM 4985 CB LYS A 734 8.493 -8.373 42.953 1.00122.02 C +ATOM 4986 CG LYS A 734 8.844 -9.860 43.124 1.00119.85 C +ATOM 4987 CD LYS A 734 10.154 -10.238 42.437 1.00119.15 C +ATOM 4988 CE LYS A 734 10.316 -11.746 42.345 1.00119.91 C +ATOM 4989 NZ LYS A 734 11.547 -12.101 41.591 1.00122.40 N +ATOM 4990 N GLY A 735 8.010 -9.981 40.353 1.00118.89 N +ATOM 4991 CA GLY A 735 7.299 -10.915 39.498 1.00115.60 C +ATOM 4992 C GLY A 735 7.249 -10.468 38.052 1.00113.27 C +ATOM 4993 O GLY A 735 6.430 -10.960 37.270 1.00112.74 O +ATOM 4994 N LEU A 736 8.125 -9.527 37.693 1.00113.74 N +ATOM 4995 CA LEU A 736 8.104 -8.885 36.390 1.00108.13 C +ATOM 4996 C LEU A 736 9.549 -8.704 35.934 1.00108.69 C +ATOM 4997 O LEU A 736 10.334 -8.047 36.627 1.00112.92 O +ATOM 4998 CB LEU A 736 7.397 -7.539 36.518 1.00108.53 C +ATOM 4999 CG LEU A 736 6.931 -6.739 35.323 1.00109.92 C +ATOM 5000 CD1 LEU A 736 5.763 -7.538 34.675 1.00108.99 C +ATOM 5001 CD2 LEU A 736 6.557 -5.315 35.750 1.00113.35 C +ATOM 5002 N ASP A 737 9.912 -9.260 34.774 1.00111.14 N +ATOM 5003 CA ASP A 737 11.216 -8.908 34.210 1.00110.67 C +ATOM 5004 C ASP A 737 11.086 -8.659 32.721 1.00107.81 C +ATOM 5005 O ASP A 737 10.025 -8.840 32.108 1.00106.05 O +ATOM 5006 CB ASP A 737 12.329 -9.967 34.360 1.00110.09 C +ATOM 5007 CG ASP A 737 12.151 -11.162 33.425 1.00109.09 C +ATOM 5008 OD1 ASP A 737 11.139 -11.225 32.701 1.00110.15 O +ATOM 5009 OD2 ASP A 737 13.059 -12.001 33.362 1.00107.73 O +ATOM 5010 N VAL A 738 12.208 -8.281 32.141 1.00106.58 N +ATOM 5011 CA VAL A 738 12.280 -8.109 30.710 1.00103.73 C +ATOM 5012 C VAL A 738 13.613 -8.624 30.200 1.00103.10 C +ATOM 5013 O VAL A 738 14.629 -8.575 30.900 1.00104.11 O +ATOM 5014 CB VAL A 738 12.084 -6.645 30.347 1.00102.46 C +ATOM 5015 CG1 VAL A 738 12.514 -6.429 28.924 1.00104.00 C +ATOM 5016 CG2 VAL A 738 10.646 -6.299 30.592 1.00103.41 C +ATOM 5017 N SER A 739 13.601 -9.113 28.972 1.00103.24 N +ATOM 5018 CA SER A 739 14.780 -9.657 28.331 1.00104.41 C +ATOM 5019 C SER A 739 14.906 -9.104 26.918 1.00102.33 C +ATOM 5020 O SER A 739 13.946 -8.591 26.328 1.00100.71 O +ATOM 5021 CB SER A 739 14.717 -11.180 28.313 1.00102.60 C +ATOM 5022 OG SER A 739 13.426 -11.603 27.899 1.00101.37 O +ATOM 5023 N LEU A 740 16.117 -9.209 26.382 1.00 99.29 N +ATOM 5024 CA LEU A 740 16.398 -8.701 25.051 1.00 94.75 C +ATOM 5025 C LEU A 740 17.475 -9.551 24.403 1.00 96.25 C +ATOM 5026 O LEU A 740 18.634 -9.504 24.829 1.00 97.92 O +ATOM 5027 CB LEU A 740 16.841 -7.257 25.134 1.00 92.30 C +ATOM 5028 CG LEU A 740 16.725 -6.710 23.736 1.00 96.82 C +ATOM 5029 CD1 LEU A 740 15.304 -6.986 23.270 1.00100.61 C +ATOM 5030 CD2 LEU A 740 17.035 -5.232 23.760 1.00 98.13 C +ATOM 5031 N ASN A 741 17.107 -10.286 23.354 1.00 94.04 N +ATOM 5032 CA ASN A 741 17.993 -11.271 22.745 1.00 96.02 C +ATOM 5033 C ASN A 741 18.287 -10.881 21.307 1.00 93.17 C +ATOM 5034 O ASN A 741 17.470 -10.241 20.642 1.00 94.77 O +ATOM 5035 CB ASN A 741 17.385 -12.695 22.745 1.00 92.49 C +ATOM 5036 CG ASN A 741 16.855 -13.122 24.104 1.00 91.44 C +ATOM 5037 OD1 ASN A 741 17.528 -13.837 24.858 1.00 88.79 O +ATOM 5038 ND2 ASN A 741 15.629 -12.706 24.413 1.00 92.45 N +ATOM 5039 N ALA A 742 19.441 -11.324 20.852 1.00 93.76 N +ATOM 5040 CA ALA A 742 19.864 -11.125 19.463 1.00 94.27 C +ATOM 5041 C ALA A 742 20.515 -12.429 19.037 1.00 96.53 C +ATOM 5042 O ALA A 742 21.469 -12.833 19.681 1.00 97.30 O +ATOM 5043 CB ALA A 742 20.836 -9.988 19.394 1.00 91.94 C +ATOM 5044 N ASN A 743 19.970 -13.080 18.023 1.00 93.54 N +ATOM 5045 CA ASN A 743 20.556 -14.360 17.578 1.00 95.18 C +ATOM 5046 C ASN A 743 21.247 -14.064 16.263 1.00 97.12 C +ATOM 5047 O ASN A 743 20.653 -13.360 15.488 1.00 99.82 O +ATOM 5048 CB ASN A 743 19.474 -15.413 17.378 1.00 96.64 C +ATOM 5049 CG ASN A 743 19.431 -16.452 18.471 1.00 98.49 C +ATOM 5050 OD1 ASN A 743 20.386 -17.190 18.653 1.00101.90 O +ATOM 5051 ND2 ASN A 743 18.316 -16.547 19.172 1.00 95.08 N +ATOM 5052 N ASN A 744 22.432 -14.616 16.042 1.00101.65 N +ATOM 5053 CA ASN A 744 23.201 -14.331 14.805 1.00104.25 C +ATOM 5054 C ASN A 744 23.362 -12.820 14.682 1.00105.97 C +ATOM 5055 O ASN A 744 22.925 -12.255 13.705 1.00107.61 O +ATOM 5056 CB ASN A 744 22.618 -15.037 13.595 1.00107.96 C +ATOM 5057 CG ASN A 744 23.181 -14.535 12.298 1.00102.44 C +ATOM 5058 OD1 ASN A 744 22.547 -13.725 11.654 1.00104.87 O +ATOM 5059 ND2 ASN A 744 24.340 -15.018 11.909 1.00100.42 N +ATOM 5060 N LEU A 745 24.024 -12.239 15.677 1.00102.81 N +ATOM 5061 CA LEU A 745 24.253 -10.792 15.871 1.00100.47 C +ATOM 5062 C LEU A 745 25.047 -10.157 14.736 1.00107.44 C +ATOM 5063 O LEU A 745 24.956 -8.954 14.589 1.00109.10 O +ATOM 5064 CB LEU A 745 25.016 -10.610 17.174 1.00 99.67 C +ATOM 5065 CG LEU A 745 24.878 -9.214 17.739 1.00100.86 C +ATOM 5066 CD1 LEU A 745 23.446 -8.779 17.589 1.00108.62 C +ATOM 5067 CD2 LEU A 745 25.279 -9.192 19.191 1.00 96.75 C +ATOM 5068 N LEU A 746 25.887 -10.900 14.024 1.00107.82 N +ATOM 5069 CA LEU A 746 26.639 -10.263 12.913 1.00106.83 C +ATOM 5070 C LEU A 746 25.863 -10.382 11.601 1.00113.40 C +ATOM 5071 O LEU A 746 26.434 -10.090 10.570 1.00119.85 O +ATOM 5072 CB LEU A 746 28.043 -10.854 12.824 1.00104.21 C +ATOM 5073 CG LEU A 746 29.035 -10.236 13.803 1.00101.24 C +ATOM 5074 CD1 LEU A 746 28.405 -9.990 15.154 1.00 98.51 C +ATOM 5075 CD2 LEU A 746 30.254 -11.105 13.952 1.00103.91 C +ATOM 5076 N ASP A 747 24.655 -10.935 11.643 1.00112.20 N +ATOM 5077 CA ASP A 747 23.729 -10.978 10.490 1.00114.78 C +ATOM 5078 C ASP A 747 24.402 -11.584 9.273 1.00116.76 C +ATOM 5079 O ASP A 747 24.205 -11.068 8.199 1.00122.89 O +ATOM 5080 CB ASP A 747 23.190 -9.591 10.182 1.00121.09 C +ATOM 5081 CG ASP A 747 21.867 -9.641 9.465 1.00118.72 C +ATOM 5082 OD1 ASP A 747 20.890 -9.117 10.002 1.00114.36 O +ATOM 5083 OD2 ASP A 747 21.836 -10.197 8.386 1.00121.16 O +ATOM 5084 N LYS A 748 25.112 -12.683 9.446 1.00107.47 N +ATOM 5085 CA LYS A 748 25.841 -13.264 8.304 1.00106.39 C +ATOM 5086 C LYS A 748 24.896 -13.861 7.247 1.00105.76 C +ATOM 5087 O LYS A 748 23.798 -14.254 7.603 1.00103.72 O +ATOM 5088 CB LYS A 748 26.846 -14.256 8.878 1.00100.52 C +ATOM 5089 CG LYS A 748 27.585 -15.080 7.854 1.00 97.52 C +ATOM 5090 CD LYS A 748 28.736 -15.791 8.460 1.00 97.86 C +ATOM 5091 CE LYS A 748 29.440 -16.656 7.450 1.00101.39 C +ATOM 5092 NZ LYS A 748 30.852 -16.859 7.833 1.00105.58 N +ATOM 5093 N ASP A 749 25.283 -13.772 5.971 1.00106.42 N +ATOM 5094 CA ASP A 749 24.645 -14.437 4.835 1.00104.42 C +ATOM 5095 C ASP A 749 25.375 -15.737 4.533 1.00102.09 C +ATOM 5096 O ASP A 749 26.598 -15.752 4.346 1.00108.75 O +ATOM 5097 CB ASP A 749 24.672 -13.518 3.618 1.00114.54 C +ATOM 5098 CG ASP A 749 23.456 -12.620 3.560 1.00122.65 C +ATOM 5099 OD1 ASP A 749 22.544 -12.891 4.361 1.00120.36 O +ATOM 5100 OD2 ASP A 749 23.399 -11.659 2.753 1.00136.32 O +ATOM 5101 N TYR A 750 24.616 -16.813 4.584 1.00 93.97 N +ATOM 5102 CA TYR A 750 25.248 -18.115 4.318 1.00 93.02 C +ATOM 5103 C TYR A 750 24.179 -19.151 4.087 1.00 91.08 C +ATOM 5104 O TYR A 750 23.022 -18.947 4.366 1.00 89.34 O +ATOM 5105 CB TYR A 750 25.977 -18.651 5.552 1.00 95.55 C +ATOM 5106 CG TYR A 750 25.129 -18.751 6.792 1.00 92.42 C +ATOM 5107 CD1 TYR A 750 24.809 -19.969 7.357 1.00 86.02 C +ATOM 5108 CD2 TYR A 750 24.647 -17.612 7.394 1.00 95.52 C +ATOM 5109 CE1 TYR A 750 24.031 -20.047 8.494 1.00 88.83 C +ATOM 5110 CE2 TYR A 750 23.867 -17.672 8.530 1.00 92.18 C +ATOM 5111 CZ TYR A 750 23.559 -18.893 9.079 1.00 90.59 C +ATOM 5112 OH TYR A 750 22.782 -18.919 10.191 1.00 88.96 O +ATOM 5113 N VAL A 751 24.627 -20.206 3.461 1.00 87.47 N +ATOM 5114 CA VAL A 751 23.814 -21.397 3.328 1.00 87.77 C +ATOM 5115 C VAL A 751 24.058 -22.271 4.548 1.00 85.08 C +ATOM 5116 O VAL A 751 25.205 -22.471 4.960 1.00 83.61 O +ATOM 5117 CB VAL A 751 24.160 -22.149 2.038 1.00 84.47 C +ATOM 5118 CG1 VAL A 751 23.522 -23.531 2.078 1.00 88.88 C +ATOM 5119 CG2 VAL A 751 23.706 -21.356 0.835 1.00 87.31 C +ATOM 5120 N ALA A 752 22.983 -22.767 5.150 1.00 83.61 N +ATOM 5121 CA ALA A 752 23.156 -23.769 6.190 1.00 77.63 C +ATOM 5122 C ALA A 752 23.723 -25.048 5.593 1.00 80.78 C +ATOM 5123 O ALA A 752 24.759 -25.557 6.037 1.00 79.97 O +ATOM 5124 CB ALA A 752 21.824 -24.028 6.885 1.00 80.70 C +ATOM 5125 N SER A 753 23.079 -25.554 4.550 1.00 80.19 N +ATOM 5126 CA SER A 753 23.453 -26.817 3.942 1.00 78.31 C +ATOM 5127 C SER A 753 22.692 -26.937 2.636 1.00 79.80 C +ATOM 5128 O SER A 753 22.050 -25.983 2.184 1.00 80.23 O +ATOM 5129 CB SER A 753 23.154 -27.978 4.892 1.00 76.15 C +ATOM 5130 OG SER A 753 21.775 -28.312 4.834 1.00 69.80 O +ATOM 5131 N CYS A 754 22.752 -28.118 2.030 1.00 81.33 N +ATOM 5132 CA CYS A 754 21.974 -28.405 0.833 1.00 80.13 C +ATOM 5133 C CYS A 754 21.578 -29.868 0.811 1.00 82.35 C +ATOM 5134 O CYS A 754 22.423 -30.742 1.029 1.00 81.86 O +ATOM 5135 CB CYS A 754 22.755 -28.075 -0.426 1.00 85.25 C +ATOM 5136 SG CYS A 754 23.452 -26.449 -0.408 1.00 93.97 S +ATOM 5137 N TYR A 755 20.298 -30.132 0.531 1.00 81.31 N +ATOM 5138 CA TYR A 755 19.853 -31.517 0.440 1.00 82.45 C +ATOM 5139 C TYR A 755 20.432 -32.184 -0.796 1.00 81.06 C +ATOM 5140 O TYR A 755 20.655 -33.400 -0.806 1.00 85.02 O +ATOM 5141 CB TYR A 755 18.322 -31.602 0.415 1.00 81.02 C +ATOM 5142 CG TYR A 755 17.774 -32.953 0.856 1.00 84.63 C +ATOM 5143 CD1 TYR A 755 17.368 -33.913 -0.077 1.00 88.17 C +ATOM 5144 CD2 TYR A 755 17.666 -33.272 2.213 1.00 82.99 C +ATOM 5145 CE1 TYR A 755 16.866 -35.161 0.333 1.00 86.21 C +ATOM 5146 CE2 TYR A 755 17.170 -34.512 2.631 1.00 89.48 C +ATOM 5147 CZ TYR A 755 16.771 -35.453 1.687 1.00 90.89 C +ATOM 5148 OH TYR A 755 16.279 -36.677 2.115 1.00 94.10 O +ATOM 5149 N SER A 756 20.626 -31.417 -1.855 1.00 80.10 N +ATOM 5150 CA SER A 756 21.143 -31.934 -3.103 1.00 81.27 C +ATOM 5151 C SER A 756 21.808 -30.778 -3.817 1.00 82.43 C +ATOM 5152 O SER A 756 22.032 -29.712 -3.237 1.00 86.95 O +ATOM 5153 CB SER A 756 20.033 -32.516 -3.980 1.00 85.30 C +ATOM 5154 OG SER A 756 19.430 -31.451 -4.699 1.00 85.03 O +ATOM 5155 N LEU A 757 22.060 -30.957 -5.093 1.00 81.43 N +ATOM 5156 CA LEU A 757 22.700 -29.884 -5.824 1.00 89.90 C +ATOM 5157 C LEU A 757 21.705 -28.780 -6.151 1.00 91.78 C +ATOM 5158 O LEU A 757 22.097 -27.625 -6.358 1.00 87.85 O +ATOM 5159 CB LEU A 757 23.304 -30.414 -7.122 1.00 87.34 C +ATOM 5160 CG LEU A 757 24.400 -31.454 -6.870 1.00 89.33 C +ATOM 5161 CD1 LEU A 757 23.734 -32.848 -6.652 1.00 85.54 C +ATOM 5162 CD2 LEU A 757 25.514 -31.451 -7.905 1.00 90.55 C +ATOM 5163 N ASP A 758 20.427 -29.121 -6.205 1.00 93.57 N +ATOM 5164 CA ASP A 758 19.387 -28.188 -6.589 1.00 91.10 C +ATOM 5165 C ASP A 758 18.768 -27.467 -5.392 1.00 90.57 C +ATOM 5166 O ASP A 758 18.097 -26.443 -5.578 1.00 88.95 O +ATOM 5167 CB ASP A 758 18.304 -28.947 -7.370 1.00 93.08 C +ATOM 5168 CG ASP A 758 18.862 -29.741 -8.565 1.00 93.03 C +ATOM 5169 OD1 ASP A 758 19.815 -29.288 -9.233 1.00 89.19 O +ATOM 5170 OD2 ASP A 758 18.339 -30.845 -8.830 1.00 96.89 O +ATOM 5171 N PHE A 759 18.992 -27.961 -4.171 1.00 86.75 N +ATOM 5172 CA PHE A 759 18.253 -27.509 -2.993 1.00 84.94 C +ATOM 5173 C PHE A 759 19.213 -27.066 -1.904 1.00 82.94 C +ATOM 5174 O PHE A 759 19.659 -27.861 -1.068 1.00 86.64 O +ATOM 5175 CB PHE A 759 17.324 -28.605 -2.505 1.00 88.19 C +ATOM 5176 CG PHE A 759 16.276 -28.951 -3.500 1.00 89.89 C +ATOM 5177 CD1 PHE A 759 15.255 -28.055 -3.773 1.00 88.76 C +ATOM 5178 CD2 PHE A 759 16.338 -30.141 -4.210 1.00 89.84 C +ATOM 5179 CE1 PHE A 759 14.297 -28.351 -4.712 1.00 88.18 C +ATOM 5180 CE2 PHE A 759 15.380 -30.449 -5.156 1.00 85.23 C +ATOM 5181 CZ PHE A 759 14.355 -29.554 -5.402 1.00 87.01 C +ATOM 5182 N CYS A 760 19.486 -25.776 -1.883 1.00 78.69 N +ATOM 5183 CA CYS A 760 20.222 -25.200 -0.783 1.00 79.71 C +ATOM 5184 C CYS A 760 19.298 -24.325 0.045 1.00 79.54 C +ATOM 5185 O CYS A 760 18.225 -23.914 -0.404 1.00 81.84 O +ATOM 5186 CB CYS A 760 21.418 -24.429 -1.309 1.00 86.61 C +ATOM 5187 SG CYS A 760 22.595 -25.585 -2.046 1.00 84.10 S +ATOM 5188 N TYR A 761 19.723 -24.065 1.272 1.00 77.23 N +ATOM 5189 CA TYR A 761 18.861 -23.471 2.272 1.00 78.74 C +ATOM 5190 C TYR A 761 19.575 -22.313 2.941 1.00 81.66 C +ATOM 5191 O TYR A 761 20.803 -22.298 3.063 1.00 80.75 O +ATOM 5192 CB TYR A 761 18.454 -24.510 3.283 1.00 77.02 C +ATOM 5193 CG TYR A 761 17.879 -25.739 2.626 1.00 77.18 C +ATOM 5194 CD1 TYR A 761 16.792 -25.652 1.771 1.00 76.66 C +ATOM 5195 CD2 TYR A 761 18.450 -26.979 2.823 1.00 79.27 C +ATOM 5196 CE1 TYR A 761 16.264 -26.777 1.178 1.00 74.75 C +ATOM 5197 CE2 TYR A 761 17.935 -28.106 2.228 1.00 79.71 C +ATOM 5198 CZ TYR A 761 16.846 -28.004 1.408 1.00 76.76 C +ATOM 5199 OH TYR A 761 16.345 -29.145 0.828 1.00 83.49 O +ATOM 5200 N PHE A 762 18.784 -21.337 3.354 1.00 82.78 N +ATOM 5201 CA PHE A 762 19.316 -20.079 3.842 1.00 83.76 C +ATOM 5202 C PHE A 762 19.426 -20.113 5.347 1.00 82.70 C +ATOM 5203 O PHE A 762 18.434 -20.343 6.045 1.00 84.57 O +ATOM 5204 CB PHE A 762 18.414 -18.927 3.428 1.00 90.33 C +ATOM 5205 CG PHE A 762 18.768 -18.345 2.106 1.00 94.15 C +ATOM 5206 CD1 PHE A 762 17.830 -18.281 1.091 1.00 93.29 C +ATOM 5207 CD2 PHE A 762 20.038 -17.855 1.878 1.00 93.46 C +ATOM 5208 CE1 PHE A 762 18.158 -17.747 -0.129 1.00 92.28 C +ATOM 5209 CE2 PHE A 762 20.369 -17.314 0.667 1.00 89.94 C +ATOM 5210 CZ PHE A 762 19.429 -17.260 -0.341 1.00 95.10 C +ATOM 5211 N GLY A 763 20.624 -19.860 5.851 1.00 83.14 N +ATOM 5212 CA GLY A 763 20.741 -19.582 7.267 1.00 84.50 C +ATOM 5213 C GLY A 763 19.907 -18.365 7.623 1.00 86.91 C +ATOM 5214 O GLY A 763 19.809 -17.411 6.849 1.00 90.30 O +ATOM 5215 N GLU A 764 19.343 -18.402 8.822 1.00 86.86 N +ATOM 5216 CA GLU A 764 18.492 -17.307 9.324 1.00 88.86 C +ATOM 5217 C GLU A 764 19.379 -16.103 9.579 1.00 94.53 C +ATOM 5218 O GLU A 764 20.523 -16.271 9.965 1.00 96.04 O +ATOM 5219 CB GLU A 764 17.835 -17.687 10.644 1.00 89.87 C +ATOM 5220 CG GLU A 764 16.639 -16.831 10.979 1.00 92.05 C +ATOM 5221 CD GLU A 764 16.253 -16.735 12.439 1.00 97.81 C +ATOM 5222 OE1 GLU A 764 17.124 -16.857 13.277 1.00102.02 O +ATOM 5223 OE2 GLU A 764 15.080 -16.518 12.726 1.00 98.84 O +ATOM 5224 N LYS A 765 18.784 -14.925 9.475 1.00100.62 N +ATOM 5225 CA LYS A 765 19.464 -13.632 9.678 1.00104.86 C +ATOM 5226 C LYS A 765 19.401 -13.251 11.152 1.00103.61 C +ATOM 5227 O LYS A 765 18.886 -14.015 11.942 1.00 96.20 O +ATOM 5228 CB LYS A 765 18.749 -12.582 8.832 1.00106.25 C +ATOM 5229 CG LYS A 765 17.235 -12.701 8.816 1.00104.51 C +ATOM 5230 CD LYS A 765 16.572 -11.502 8.232 1.00102.05 C +ATOM 5231 CE LYS A 765 17.065 -10.225 8.860 1.00107.70 C +ATOM 5232 NZ LYS A 765 17.061 -10.314 10.334 1.00106.33 N +ATOM 5233 N ARG A 766 19.871 -12.057 11.485 1.00110.29 N +ATOM 5234 CA ARG A 766 19.879 -11.623 12.899 1.00107.58 C +ATOM 5235 C ARG A 766 18.443 -11.638 13.405 1.00104.35 C +ATOM 5236 O ARG A 766 17.572 -11.127 12.715 1.00108.37 O +ATOM 5237 CB ARG A 766 20.527 -10.239 12.989 1.00108.87 C +ATOM 5238 CG ARG A 766 20.489 -9.587 14.360 1.00110.25 C +ATOM 5239 CD ARG A 766 21.753 -8.787 14.648 1.00114.57 C +ATOM 5240 NE ARG A 766 21.843 -7.364 14.315 1.00117.51 N +ATOM 5241 CZ ARG A 766 22.736 -6.814 13.494 1.00117.31 C +ATOM 5242 NH1 ARG A 766 23.633 -7.563 12.885 1.00117.35 N +ATOM 5243 NH2 ARG A 766 22.730 -5.515 13.279 1.00110.34 N +ATOM 5244 N ASN A 767 18.218 -12.219 14.574 1.00 96.93 N +ATOM 5245 CA ASN A 767 16.847 -12.235 15.129 1.00 96.00 C +ATOM 5246 C ASN A 767 16.912 -11.571 16.490 1.00 98.85 C +ATOM 5247 O ASN A 767 17.643 -12.068 17.341 1.00 95.72 O +ATOM 5248 CB ASN A 767 16.258 -13.635 15.229 1.00 96.75 C +ATOM 5249 CG ASN A 767 14.885 -13.620 15.845 1.00 97.20 C +ATOM 5250 OD1 ASN A 767 14.672 -13.016 16.883 1.00 98.21 O +ATOM 5251 ND2 ASN A 767 13.944 -14.281 15.212 1.00 96.31 N +ATOM 5252 N VAL A 768 16.157 -10.491 16.641 1.00100.68 N +ATOM 5253 CA VAL A 768 16.142 -9.701 17.864 1.00 99.75 C +ATOM 5254 C VAL A 768 14.767 -9.809 18.481 1.00 99.64 C +ATOM 5255 O VAL A 768 13.762 -9.639 17.783 1.00 98.83 O +ATOM 5256 CB VAL A 768 16.469 -8.233 17.584 1.00 97.84 C +ATOM 5257 CG1 VAL A 768 16.142 -7.428 18.795 1.00100.44 C +ATOM 5258 CG2 VAL A 768 17.936 -8.106 17.223 1.00 94.66 C +ATOM 5259 N THR A 769 14.729 -10.076 19.786 1.00 98.12 N +ATOM 5260 CA THR A 769 13.491 -10.357 20.497 1.00 99.10 C +ATOM 5261 C THR A 769 13.499 -9.648 21.838 1.00 99.19 C +ATOM 5262 O THR A 769 14.295 -9.980 22.725 1.00 99.87 O +ATOM 5263 CB THR A 769 13.309 -11.852 20.722 1.00 96.42 C +ATOM 5264 OG1 THR A 769 13.416 -12.533 19.470 1.00 99.09 O +ATOM 5265 CG2 THR A 769 11.957 -12.102 21.332 1.00 98.69 C +ATOM 5266 N ALA A 770 12.580 -8.708 21.985 1.00 96.59 N +ATOM 5267 CA ALA A 770 12.258 -8.091 23.254 1.00 94.71 C +ATOM 5268 C ALA A 770 11.212 -8.922 23.966 1.00 95.47 C +ATOM 5269 O ALA A 770 10.347 -9.531 23.334 1.00 97.55 O +ATOM 5270 CB ALA A 770 11.722 -6.685 23.035 1.00 94.73 C +ATOM 5271 N THR A 771 11.283 -8.943 25.287 1.00 95.47 N +ATOM 5272 CA THR A 771 10.408 -9.870 25.975 1.00 98.76 C +ATOM 5273 C THR A 771 10.087 -9.354 27.369 1.00100.95 C +ATOM 5274 O THR A 771 10.934 -8.748 28.037 1.00101.32 O +ATOM 5275 CB THR A 771 11.067 -11.246 26.023 1.00 98.57 C +ATOM 5276 OG1 THR A 771 11.394 -11.642 24.676 1.00 95.10 O +ATOM 5277 CG2 THR A 771 10.093 -12.250 26.613 1.00100.39 C +ATOM 5278 N VAL A 772 8.849 -9.571 27.786 1.00 99.75 N +ATOM 5279 CA VAL A 772 8.389 -9.164 29.103 1.00101.62 C +ATOM 5280 C VAL A 772 7.669 -10.334 29.742 1.00104.19 C +ATOM 5281 O VAL A 772 6.866 -11.005 29.083 1.00102.64 O +ATOM 5282 CB VAL A 772 7.442 -7.959 29.034 1.00 99.49 C +ATOM 5283 CG1 VAL A 772 6.253 -8.301 28.173 1.00102.58 C +ATOM 5284 CG2 VAL A 772 6.975 -7.629 30.419 1.00100.33 C +ATOM 5285 N ASN A 773 7.939 -10.562 31.034 1.00104.25 N +ATOM 5286 CA ASN A 773 7.327 -11.646 31.800 1.00105.62 C +ATOM 5287 C ASN A 773 6.785 -11.120 33.128 1.00107.42 C +ATOM 5288 O ASN A 773 7.359 -10.214 33.737 1.00109.17 O +ATOM 5289 CB ASN A 773 8.337 -12.774 32.070 1.00105.36 C +ATOM 5290 CG ASN A 773 9.104 -13.174 30.827 1.00105.65 C +ATOM 5291 OD1 ASN A 773 8.637 -13.992 30.034 1.00105.42 O +ATOM 5292 ND2 ASN A 773 10.282 -12.574 30.635 1.00105.24 N +ATOM 5293 N TYR A 774 5.680 -11.706 33.586 1.00105.10 N +ATOM 5294 CA TYR A 774 5.068 -11.308 34.847 1.00107.07 C +ATOM 5295 C TYR A 774 4.537 -12.536 35.572 1.00107.79 C +ATOM 5296 O TYR A 774 4.072 -13.483 34.943 1.00107.36 O +ATOM 5297 CB TYR A 774 3.943 -10.291 34.623 1.00107.76 C +ATOM 5298 CG TYR A 774 3.298 -9.824 35.900 1.00113.41 C +ATOM 5299 CD1 TYR A 774 1.938 -9.992 36.124 1.00115.08 C +ATOM 5300 CD2 TYR A 774 4.063 -9.254 36.908 1.00114.82 C +ATOM 5301 CE1 TYR A 774 1.351 -9.571 37.305 1.00119.04 C +ATOM 5302 CE2 TYR A 774 3.493 -8.837 38.098 1.00116.99 C +ATOM 5303 CZ TYR A 774 2.133 -8.996 38.295 1.00120.31 C +ATOM 5304 OH TYR A 774 1.556 -8.579 39.479 1.00119.93 O +ATOM 5305 N GLN A 775 4.609 -12.517 36.902 1.00109.27 N +ATOM 5306 CA GLN A 775 4.126 -13.629 37.720 1.00110.67 C +ATOM 5307 C GLN A 775 3.186 -13.073 38.779 1.00111.53 C +ATOM 5308 O GLN A 775 3.622 -12.369 39.694 1.00111.63 O +ATOM 5309 CB GLN A 775 5.287 -14.407 38.348 1.00105.34 C +ATOM 5310 CG GLN A 775 6.416 -14.656 37.361 1.00107.16 C +ATOM 5311 CD GLN A 775 7.655 -15.223 38.002 1.00108.43 C +ATOM 5312 OE1 GLN A 775 7.695 -15.458 39.207 1.00108.84 O +ATOM 5313 NE2 GLN A 775 8.685 -15.439 37.196 1.00113.20 N +ATOM 5314 N PHE A 776 1.899 -13.369 38.643 1.00110.32 N +ATOM 5315 CA PHE A 776 0.920 -12.961 39.638 1.00110.06 C +ATOM 5316 C PHE A 776 1.309 -13.513 40.998 1.00113.70 C +ATOM 5317 O PHE A 776 1.319 -14.731 41.194 1.00109.26 O +ATOM 5318 CB PHE A 776 -0.472 -13.453 39.262 1.00109.88 C +ATOM 5319 CG PHE A 776 -1.098 -12.692 38.148 1.00112.80 C +ATOM 5320 CD1 PHE A 776 -1.391 -11.347 38.288 1.00123.41 C +ATOM 5321 CD2 PHE A 776 -1.395 -13.316 36.954 1.00110.76 C +ATOM 5322 CE1 PHE A 776 -1.974 -10.634 37.251 1.00121.21 C +ATOM 5323 CE2 PHE A 776 -1.974 -12.612 35.913 1.00113.56 C +ATOM 5324 CZ PHE A 776 -2.265 -11.269 36.061 1.00117.94 C +TER 5325 PHE A 776 +END diff --git a/modules/mol/alg/tests/testfiles/T1118v1LG035_1.pdb b/modules/mol/alg/tests/testfiles/T1118v1LG035_1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..279417d897624893ac7091ffa893c0e39f0b42ca --- /dev/null +++ b/modules/mol/alg/tests/testfiles/T1118v1LG035_1.pdb @@ -0,0 +1,6047 @@ +PFRMAT TS +TARGET T1118v1 +MODEL 1 +PARENT N/A +ATOM 1 N ALA 1 -36.491 -44.651 29.120 1.00 41.69 N +ATOM 2 CA ALA 1 -35.805 -43.408 29.604 1.00 41.69 C +ATOM 3 C ALA 1 -36.865 -42.290 29.523 1.00 41.69 C +ATOM 4 O ALA 1 -37.624 -42.221 28.554 1.00 41.69 O +ATOM 5 CB ALA 1 -34.569 -43.105 28.739 1.00 41.69 C +ATOM 13 N SER 2 -36.890 -41.435 30.559 1.00 36.47 N +ATOM 14 CA SER 2 -37.787 -40.286 30.664 1.00 36.47 C +ATOM 15 C SER 2 -37.053 -38.993 30.275 1.00 36.47 C +ATOM 16 O SER 2 -35.939 -38.750 30.742 1.00 36.47 O +ATOM 17 CB SER 2 -38.377 -40.238 32.092 1.00 36.47 C +ATOM 18 OG SER 2 -37.404 -39.991 33.089 1.00 36.47 O +ATOM 24 N ALA 3 -37.718 -38.180 29.440 1.00 30.91 N +ATOM 25 CA ALA 3 -37.295 -36.826 29.100 1.00 30.91 C +ATOM 26 C ALA 3 -38.020 -35.852 30.033 1.00 30.91 C +ATOM 27 O ALA 3 -39.249 -35.774 29.989 1.00 30.91 O +ATOM 28 CB ALA 3 -37.633 -36.545 27.627 1.00 30.91 C +ATOM 34 N ALA 4 -37.246 -35.143 30.870 1.00 31.65 N +ATOM 35 CA ALA 4 -37.758 -34.136 31.795 1.00 31.65 C +ATOM 36 C ALA 4 -38.182 -32.871 31.036 1.00 31.65 C +ATOM 37 O ALA 4 -37.331 -32.220 30.429 1.00 31.65 O +ATOM 38 CB ALA 4 -36.679 -33.819 32.843 1.00 31.65 C +ATOM 44 N GLU 5 -39.486 -32.549 31.094 1.00 29.72 N +ATOM 45 CA GLU 5 -40.042 -31.316 30.538 1.00 29.72 C +ATOM 46 C GLU 5 -39.561 -30.100 31.343 1.00 29.72 C +ATOM 47 O GLU 5 -39.753 -30.065 32.560 1.00 29.72 O +ATOM 48 CB GLU 5 -41.583 -31.372 30.528 1.00 29.72 C +ATOM 49 CG GLU 5 -42.162 -32.438 29.580 1.00 29.72 C +ATOM 50 CD GLU 5 -43.690 -32.387 29.536 1.00 29.72 C +ATOM 51 OE1 GLU 5 -44.222 -32.138 28.432 1.00 29.72 O +ATOM 52 OE2 GLU 5 -44.301 -32.595 30.607 1.00 29.72 O +ATOM 59 N ALA 6 -38.961 -29.128 30.639 1.00 36.83 N +ATOM 60 CA ALA 6 -38.557 -27.842 31.198 1.00 36.83 C +ATOM 61 C ALA 6 -39.802 -26.992 31.490 1.00 36.83 C +ATOM 62 O ALA 6 -40.440 -26.511 30.552 1.00 36.83 O +ATOM 63 CB ALA 6 -37.605 -27.139 30.217 1.00 36.83 C +ATOM 69 N ALA 7 -40.136 -26.866 32.785 1.00 42.39 N +ATOM 70 CA ALA 7 -41.295 -26.126 33.280 1.00 42.39 C +ATOM 71 C ALA 7 -41.190 -24.632 32.945 1.00 42.39 C +ATOM 72 O ALA 7 -40.217 -23.990 33.344 1.00 42.39 O +ATOM 73 CB ALA 7 -41.424 -26.348 34.795 1.00 42.39 C +ATOM 79 N ALA 8 -42.186 -24.127 32.199 1.00 54.97 N +ATOM 80 CA ALA 8 -42.272 -22.738 31.751 1.00 54.97 C +ATOM 81 C ALA 8 -42.403 -21.772 32.937 1.00 54.97 C +ATOM 82 O ALA 8 -43.343 -21.900 33.723 1.00 54.97 O +ATOM 83 CB ALA 8 -43.458 -22.596 30.784 1.00 54.97 C +ATOM 89 N GLU 9 -41.434 -20.847 33.045 1.00 72.27 N +ATOM 90 CA GLU 9 -41.334 -19.864 34.121 1.00 72.27 C +ATOM 91 C GLU 9 -42.507 -18.872 34.085 1.00 72.27 C +ATOM 92 O GLU 9 -42.665 -18.152 33.099 1.00 72.27 O +ATOM 93 CB GLU 9 -39.957 -19.173 34.042 1.00 72.27 C +ATOM 94 CG GLU 9 -39.707 -18.125 35.143 1.00 72.27 C +ATOM 95 CD GLU 9 -38.284 -17.575 35.077 1.00 72.27 C +ATOM 96 OE1 GLU 9 -37.481 -17.969 35.949 1.00 72.27 O +ATOM 97 OE2 GLU 9 -38.028 -16.760 34.164 1.00 72.27 O +ATOM 104 N GLN 10 -43.308 -18.877 35.162 1.00 81.08 N +ATOM 105 CA GLN 10 -44.488 -18.030 35.321 1.00 81.08 C +ATOM 106 C GLN 10 -44.113 -16.562 35.571 1.00 81.08 C +ATOM 107 O GLN 10 -43.157 -16.288 36.299 1.00 81.08 O +ATOM 108 CB GLN 10 -45.354 -18.570 36.475 1.00 81.08 C +ATOM 109 CG GLN 10 -45.989 -19.941 36.167 1.00 81.08 C +ATOM 110 CD GLN 10 -46.938 -20.423 37.268 1.00 81.08 C +ATOM 111 NE2 GLN 10 -47.897 -21.276 36.905 1.00 81.08 N +ATOM 112 OE1 GLN 10 -46.801 -20.054 38.433 1.00 81.08 O +ATOM 121 N ALA 11 -44.909 -15.653 34.985 1.00 90.59 N +ATOM 122 CA ALA 11 -44.794 -14.214 35.198 1.00 90.59 C +ATOM 123 C ALA 11 -45.348 -13.808 36.573 1.00 90.59 C +ATOM 124 O ALA 11 -46.407 -14.295 36.971 1.00 90.59 O +ATOM 125 CB ALA 11 -45.513 -13.470 34.064 1.00 90.59 C +ATOM 131 N ARG 12 -44.606 -12.929 37.262 1.00 92.01 N +ATOM 132 CA ARG 12 -44.882 -12.459 38.620 1.00 92.01 C +ATOM 133 C ARG 12 -44.918 -10.919 38.628 1.00 92.01 C +ATOM 134 O ARG 12 -44.064 -10.310 37.981 1.00 92.01 O +ATOM 135 CB ARG 12 -43.742 -12.944 39.540 1.00 92.01 C +ATOM 136 CG ARG 12 -43.695 -14.469 39.719 1.00 92.01 C +ATOM 137 CD ARG 12 -42.618 -14.898 40.723 1.00 92.01 C +ATOM 138 NE ARG 12 -42.479 -16.359 40.769 1.00 92.01 N +ATOM 139 NH1 ARG 12 -40.753 -16.394 42.350 1.00 92.01 N +ATOM 140 NH2 ARG 12 -41.609 -18.373 41.508 1.00 92.01 N +ATOM 141 CZ ARG 12 -41.614 -17.034 41.545 1.00 92.01 C +ATOM 155 N PRO 13 -45.882 -10.309 39.360 1.00 94.41 N +ATOM 156 CA PRO 13 -45.976 -8.843 39.486 1.00 94.41 C +ATOM 157 C PRO 13 -44.820 -8.240 40.306 1.00 94.41 C +ATOM 158 O PRO 13 -44.651 -8.592 41.473 1.00 94.41 O +ATOM 159 CB PRO 13 -47.345 -8.628 40.151 1.00 94.41 C +ATOM 160 CG PRO 13 -47.577 -9.880 40.980 1.00 94.41 C +ATOM 161 CD PRO 13 -46.932 -10.975 40.137 1.00 94.41 C +ATOM 169 N TYR 14 -44.059 -7.338 39.667 1.00 95.06 N +ATOM 170 CA TYR 14 -43.010 -6.533 40.294 1.00 95.06 C +ATOM 171 C TYR 14 -43.475 -5.072 40.400 1.00 95.06 C +ATOM 172 O TYR 14 -44.344 -4.644 39.639 1.00 95.06 O +ATOM 173 CB TYR 14 -41.713 -6.651 39.466 1.00 95.06 C +ATOM 174 CG TYR 14 -41.137 -8.057 39.430 1.00 95.06 C +ATOM 175 CD1 TYR 14 -40.523 -8.601 40.578 1.00 95.06 C +ATOM 176 CD2 TYR 14 -41.233 -8.836 38.258 1.00 95.06 C +ATOM 177 CE1 TYR 14 -40.031 -9.921 40.563 1.00 95.06 C +ATOM 178 CE2 TYR 14 -40.729 -10.150 38.240 1.00 95.06 C +ATOM 179 OH TYR 14 -39.680 -11.984 39.375 1.00 95.06 O +ATOM 180 CZ TYR 14 -40.141 -10.700 39.394 1.00 95.06 C +ATOM 190 N ALA 15 -42.882 -4.340 41.355 1.00 95.79 N +ATOM 191 CA ALA 15 -43.181 -2.936 41.638 1.00 95.79 C +ATOM 192 C ALA 15 -41.944 -2.286 42.271 1.00 95.79 C +ATOM 193 O ALA 15 -41.939 -1.975 43.462 1.00 95.79 O +ATOM 194 CB ALA 15 -44.446 -2.830 42.512 1.00 95.79 C +ATOM 200 N ILE 16 -40.903 -2.137 41.442 1.00 95.77 N +ATOM 201 CA ILE 16 -39.570 -1.671 41.810 1.00 95.77 C +ATOM 202 C ILE 16 -39.368 -0.261 41.209 1.00 95.77 C +ATOM 203 O ILE 16 -39.565 -0.103 40.003 1.00 95.77 O +ATOM 204 CB ILE 16 -38.505 -2.629 41.198 1.00 95.77 C +ATOM 205 CG1 ILE 16 -38.666 -4.041 41.804 1.00 95.77 C +ATOM 206 CG2 ILE 16 -37.048 -2.138 41.369 1.00 95.77 C +ATOM 207 CD1 ILE 16 -37.793 -5.103 41.141 1.00 95.77 C +ATOM 219 N PRO 17 -39.004 0.742 42.042 1.00 94.74 N +ATOM 220 CA PRO 17 -38.796 2.125 41.574 1.00 94.74 C +ATOM 221 C PRO 17 -37.490 2.314 40.780 1.00 94.74 C +ATOM 222 O PRO 17 -36.581 1.488 40.870 1.00 94.74 O +ATOM 223 CB PRO 17 -38.777 2.930 42.884 1.00 94.74 C +ATOM 224 CG PRO 17 -38.186 1.975 43.906 1.00 94.74 C +ATOM 225 CD PRO 17 -38.755 0.626 43.481 1.00 94.74 C +ATOM 233 N ALA 18 -37.421 3.434 40.043 1.00 94.82 N +ATOM 234 CA ALA 18 -36.213 3.920 39.374 1.00 94.82 C +ATOM 235 C ALA 18 -35.127 4.356 40.376 1.00 94.82 C +ATOM 236 O ALA 18 -35.449 4.766 41.493 1.00 94.82 O +ATOM 237 CB ALA 18 -36.601 5.100 38.468 1.00 94.82 C +ATOM 243 N GLY 19 -33.861 4.284 39.943 1.00 94.81 N +ATOM 244 CA GLY 19 -32.710 4.641 40.768 1.00 94.81 C +ATOM 245 C GLY 19 -31.446 4.032 40.156 1.00 94.81 C +ATOM 246 O GLY 19 -31.444 3.617 38.997 1.00 94.81 O +ATOM 250 N GLN 20 -30.362 3.993 40.952 1.00 95.31 N +ATOM 251 CA GLN 20 -29.073 3.378 40.609 1.00 95.31 C +ATOM 252 C GLN 20 -29.214 1.881 40.287 1.00 95.31 C +ATOM 253 O GLN 20 -29.944 1.185 40.994 1.00 95.31 O +ATOM 254 CB GLN 20 -28.083 3.582 41.779 1.00 95.31 C +ATOM 255 CG GLN 20 -27.646 5.043 42.016 1.00 95.31 C +ATOM 256 CD GLN 20 -26.841 5.645 40.859 1.00 95.31 C +ATOM 257 NE2 GLN 20 -27.042 6.936 40.587 1.00 95.31 N +ATOM 258 OE1 GLN 20 -26.026 4.968 40.236 1.00 95.31 O +ATOM 267 N LEU 21 -28.514 1.426 39.232 1.00 95.61 N +ATOM 268 CA LEU 21 -28.608 0.067 38.686 1.00 95.61 C +ATOM 269 C LEU 21 -28.322 -1.037 39.722 1.00 95.61 C +ATOM 270 O LEU 21 -29.038 -2.035 39.721 1.00 95.61 O +ATOM 271 CB LEU 21 -27.696 -0.071 37.441 1.00 95.61 C +ATOM 272 CG LEU 21 -27.831 -1.417 36.682 1.00 95.61 C +ATOM 273 CD1 LEU 21 -29.180 -1.521 35.945 1.00 95.61 C +ATOM 274 CD2 LEU 21 -26.636 -1.687 35.748 1.00 95.61 C +ATOM 286 N GLY 22 -27.318 -0.828 40.592 1.00 94.16 N +ATOM 287 CA GLY 22 -26.908 -1.782 41.624 1.00 94.16 C +ATOM 288 C GLY 22 -28.023 -2.025 42.650 1.00 94.16 C +ATOM 289 O GLY 22 -28.342 -3.178 42.930 1.00 94.16 O +ATOM 293 N ASP 23 -28.640 -0.946 43.164 1.00 95.04 N +ATOM 294 CA ASP 23 -29.748 -0.980 44.129 1.00 95.04 C +ATOM 295 C ASP 23 -31.030 -1.607 43.552 1.00 95.04 C +ATOM 296 O ASP 23 -31.686 -2.381 44.249 1.00 95.04 O +ATOM 297 CB ASP 23 -30.075 0.411 44.729 1.00 95.04 C +ATOM 298 CG ASP 23 -28.873 1.182 45.286 1.00 95.04 C +ATOM 299 OD1 ASP 23 -27.901 0.524 45.719 1.00 95.04 O +ATOM 300 OD2 ASP 23 -28.983 2.426 45.337 1.00 95.04 O +ATOM 305 N VAL 24 -31.343 -1.274 42.289 1.00 96.88 N +ATOM 306 CA VAL 24 -32.502 -1.776 41.551 1.00 96.88 C +ATOM 307 C VAL 24 -32.386 -3.277 41.200 1.00 96.88 C +ATOM 308 O VAL 24 -33.387 -3.988 41.302 1.00 96.88 O +ATOM 309 CB VAL 24 -32.746 -0.922 40.271 1.00 96.88 C +ATOM 310 CG1 VAL 24 -33.723 -1.530 39.249 1.00 96.88 C +ATOM 311 CG2 VAL 24 -33.227 0.493 40.646 1.00 96.88 C +ATOM 321 N LEU 25 -31.172 -3.737 40.845 1.00 96.37 N +ATOM 322 CA LEU 25 -30.861 -5.144 40.579 1.00 96.37 C +ATOM 323 C LEU 25 -30.871 -6.015 41.848 1.00 96.37 C +ATOM 324 O LEU 25 -31.367 -7.139 41.779 1.00 96.37 O +ATOM 325 CB LEU 25 -29.491 -5.268 39.872 1.00 96.37 C +ATOM 326 CG LEU 25 -29.488 -5.015 38.345 1.00 96.37 C +ATOM 327 CD1 LEU 25 -28.054 -5.142 37.791 1.00 96.37 C +ATOM 328 CD2 LEU 25 -30.469 -5.919 37.567 1.00 96.37 C +ATOM 340 N ASN 26 -30.350 -5.491 42.975 1.00 95.04 N +ATOM 341 CA ASN 26 -30.360 -6.166 44.281 1.00 95.04 C +ATOM 342 C ASN 26 -31.782 -6.314 44.843 1.00 95.04 C +ATOM 343 O ASN 26 -32.078 -7.354 45.433 1.00 95.04 O +ATOM 344 CB ASN 26 -29.459 -5.406 45.285 1.00 95.04 C +ATOM 345 CG ASN 26 -27.952 -5.549 45.034 1.00 95.04 C +ATOM 346 ND2 ASN 26 -27.168 -4.593 45.535 1.00 95.04 N +ATOM 347 OD1 ASN 26 -27.493 -6.512 44.424 1.00 95.04 O +ATOM 354 N ARG 27 -32.642 -5.303 44.618 1.00 95.61 N +ATOM 355 CA ARG 27 -34.062 -5.355 44.958 1.00 95.61 C +ATOM 356 C ARG 27 -34.830 -6.373 44.095 1.00 95.61 C +ATOM 357 O ARG 27 -35.644 -7.109 44.649 1.00 95.61 O +ATOM 358 CB ARG 27 -34.678 -3.940 44.903 1.00 95.61 C +ATOM 359 CG ARG 27 -36.179 -3.926 45.240 1.00 95.61 C +ATOM 360 CD ARG 27 -36.761 -2.533 45.495 1.00 95.61 C +ATOM 361 NE ARG 27 -38.220 -2.616 45.621 1.00 95.61 N +ATOM 362 NH1 ARG 27 -38.583 -0.515 46.589 1.00 95.61 N +ATOM 363 NH2 ARG 27 -40.357 -1.940 46.151 1.00 95.61 N +ATOM 364 CZ ARG 27 -39.045 -1.684 46.121 1.00 95.61 C +ATOM 378 N PHE 28 -34.540 -6.420 42.781 1.00 96.39 N +ATOM 379 CA PHE 28 -35.135 -7.385 41.854 1.00 96.39 C +ATOM 380 C PHE 28 -34.781 -8.837 42.187 1.00 96.39 C +ATOM 381 O PHE 28 -35.678 -9.675 42.183 1.00 96.39 O +ATOM 382 CB PHE 28 -34.800 -7.036 40.387 1.00 96.39 C +ATOM 383 CG PHE 28 -35.377 -8.005 39.364 1.00 96.39 C +ATOM 384 CD1 PHE 28 -34.653 -9.154 38.974 1.00 96.39 C +ATOM 385 CD2 PHE 28 -36.723 -7.881 38.961 1.00 96.39 C +ATOM 386 CE1 PHE 28 -35.254 -10.114 38.172 1.00 96.39 C +ATOM 387 CE2 PHE 28 -37.296 -8.839 38.140 1.00 96.39 C +ATOM 388 CZ PHE 28 -36.563 -9.947 37.745 1.00 96.39 C +ATOM 398 N ALA 29 -33.496 -9.098 42.480 1.00 95.23 N +ATOM 399 CA ALA 29 -32.985 -10.416 42.847 1.00 95.23 C +ATOM 400 C ALA 29 -33.629 -10.978 44.125 1.00 95.23 C +ATOM 401 O ALA 29 -33.919 -12.171 44.175 1.00 95.23 O +ATOM 402 CB ALA 29 -31.455 -10.348 42.969 1.00 95.23 C +ATOM 408 N ARG 30 -33.894 -10.095 45.101 1.00 94.44 N +ATOM 409 CA ARG 30 -34.585 -10.406 46.349 1.00 94.44 C +ATOM 410 C ARG 30 -36.090 -10.687 46.154 1.00 94.44 C +ATOM 411 O ARG 30 -36.587 -11.648 46.741 1.00 94.44 O +ATOM 412 CB ARG 30 -34.298 -9.265 47.344 1.00 94.44 C +ATOM 413 CG ARG 30 -34.931 -9.424 48.740 1.00 94.44 C +ATOM 414 CD ARG 30 -34.544 -8.279 49.687 1.00 94.44 C +ATOM 415 NE ARG 30 -35.159 -7.007 49.278 1.00 94.44 N +ATOM 416 NH1 ARG 30 -33.568 -5.583 50.246 1.00 94.44 N +ATOM 417 NH2 ARG 30 -35.381 -4.712 49.105 1.00 94.44 N +ATOM 418 CZ ARG 30 -34.697 -5.774 49.548 1.00 94.44 C +ATOM 432 N GLU 31 -36.777 -9.873 45.330 1.00 94.77 N +ATOM 433 CA GLU 31 -38.200 -10.037 44.999 1.00 94.77 C +ATOM 434 C GLU 31 -38.486 -11.267 44.114 1.00 94.77 C +ATOM 435 O GLU 31 -39.510 -11.920 44.312 1.00 94.77 O +ATOM 436 CB GLU 31 -38.755 -8.750 44.347 1.00 94.77 C +ATOM 437 CG GLU 31 -38.920 -7.576 45.337 1.00 94.77 C +ATOM 438 CD GLU 31 -39.482 -6.296 44.706 1.00 94.77 C +ATOM 439 OE1 GLU 31 -39.298 -5.230 45.334 1.00 94.77 O +ATOM 440 OE2 GLU 31 -40.099 -6.386 43.621 1.00 94.77 O +ATOM 447 N ALA 32 -37.577 -11.565 43.171 1.00 94.05 N +ATOM 448 CA ALA 32 -37.646 -12.710 42.262 1.00 94.05 C +ATOM 449 C ALA 32 -37.212 -14.037 42.910 1.00 94.05 C +ATOM 450 O ALA 32 -37.640 -15.090 42.438 1.00 94.05 O +ATOM 451 CB ALA 32 -36.780 -12.410 41.030 1.00 94.05 C +ATOM 457 N GLY 33 -36.391 -13.969 43.973 1.00 93.24 N +ATOM 458 CA GLY 33 -35.893 -15.132 44.708 1.00 93.24 C +ATOM 459 C GLY 33 -34.671 -15.779 44.032 1.00 93.24 C +ATOM 460 O GLY 33 -34.439 -16.968 44.247 1.00 93.24 O +ATOM 464 N ILE 34 -33.910 -15.021 43.223 1.00 94.17 N +ATOM 465 CA ILE 34 -32.709 -15.479 42.517 1.00 94.17 C +ATOM 466 C ILE 34 -31.423 -14.891 43.128 1.00 94.17 C +ATOM 467 O ILE 34 -31.476 -13.914 43.876 1.00 94.17 O +ATOM 468 CB ILE 34 -32.754 -15.077 41.013 1.00 94.17 C +ATOM 469 CG1 ILE 34 -32.788 -13.553 40.728 1.00 94.17 C +ATOM 470 CG2 ILE 34 -33.895 -15.824 40.302 1.00 94.17 C +ATOM 471 CD1 ILE 34 -32.336 -13.161 39.315 1.00 94.17 C +ATOM 483 N THR 35 -30.283 -15.489 42.752 1.00 92.69 N +ATOM 484 CA THR 35 -28.946 -14.990 43.057 1.00 92.69 C +ATOM 485 C THR 35 -28.392 -14.305 41.796 1.00 92.69 C +ATOM 486 O THR 35 -28.077 -14.998 40.831 1.00 92.69 O +ATOM 487 CB THR 35 -28.000 -16.163 43.443 1.00 92.69 C +ATOM 488 CG2 THR 35 -26.511 -15.800 43.611 1.00 92.69 C +ATOM 489 OG1 THR 35 -28.447 -16.725 44.660 1.00 92.69 O +ATOM 497 N LEU 36 -28.275 -12.967 41.824 1.00 94.96 N +ATOM 498 CA LEU 36 -27.619 -12.200 40.764 1.00 94.96 C +ATOM 499 C LEU 36 -26.200 -11.838 41.223 1.00 94.96 C +ATOM 500 O LEU 36 -26.045 -11.043 42.151 1.00 94.96 O +ATOM 501 CB LEU 36 -28.457 -10.950 40.405 1.00 94.96 C +ATOM 502 CG LEU 36 -27.867 -10.092 39.255 1.00 94.96 C +ATOM 503 CD1 LEU 36 -27.772 -10.860 37.924 1.00 94.96 C +ATOM 504 CD2 LEU 36 -28.648 -8.779 39.083 1.00 94.96 C +ATOM 516 N SER 37 -25.198 -12.415 40.544 1.00 93.63 N +ATOM 517 CA SER 37 -23.786 -12.083 40.712 1.00 93.63 C +ATOM 518 C SER 37 -23.455 -10.838 39.872 1.00 93.63 C +ATOM 519 O SER 37 -23.661 -10.854 38.658 1.00 93.63 O +ATOM 520 CB SER 37 -22.936 -13.307 40.316 1.00 93.63 C +ATOM 521 OG SER 37 -21.554 -13.059 40.484 1.00 93.63 O +ATOM 527 N ALA 38 -22.956 -9.788 40.540 1.00 92.43 N +ATOM 528 CA ALA 38 -22.605 -8.507 39.935 1.00 92.43 C +ATOM 529 C ALA 38 -21.645 -7.750 40.857 1.00 92.43 C +ATOM 530 O ALA 38 -21.829 -7.773 42.075 1.00 92.43 O +ATOM 531 CB ALA 38 -23.878 -7.679 39.691 1.00 92.43 C +ATOM 537 N THR 39 -20.658 -7.071 40.254 1.00 88.43 N +ATOM 538 CA THR 39 -19.693 -6.228 40.962 1.00 88.43 C +ATOM 539 C THR 39 -20.166 -4.750 40.962 1.00 88.43 C +ATOM 540 O THR 39 -20.869 -4.349 40.029 1.00 88.43 O +ATOM 541 CB THR 39 -18.289 -6.296 40.296 1.00 88.43 C +ATOM 542 CG2 THR 39 -17.758 -7.729 40.131 1.00 88.43 C +ATOM 543 OG1 THR 39 -18.225 -5.635 39.047 1.00 88.43 O +ATOM 551 N PRO 40 -19.735 -3.944 41.965 1.00 84.46 N +ATOM 552 CA PRO 40 -19.938 -2.478 41.961 1.00 84.46 C +ATOM 553 C PRO 40 -19.334 -1.711 40.768 1.00 84.46 C +ATOM 554 O PRO 40 -19.824 -0.627 40.461 1.00 84.46 O +ATOM 555 CB PRO 40 -19.311 -2.005 43.286 1.00 84.46 C +ATOM 556 CG PRO 40 -19.323 -3.230 44.181 1.00 84.46 C +ATOM 557 CD PRO 40 -19.081 -4.372 43.205 1.00 84.46 C +ATOM 565 N ALA 41 -18.297 -2.275 40.122 1.00 85.70 N +ATOM 566 CA ALA 41 -17.652 -1.710 38.936 1.00 85.70 C +ATOM 567 C ALA 41 -18.511 -1.823 37.663 1.00 85.70 C +ATOM 568 O ALA 41 -18.457 -0.920 36.830 1.00 85.70 O +ATOM 569 CB ALA 41 -16.291 -2.395 38.735 1.00 85.70 C +ATOM 575 N GLN 42 -19.290 -2.913 37.545 1.00 89.70 N +ATOM 576 CA GLN 42 -20.210 -3.164 36.432 1.00 89.70 C +ATOM 577 C GLN 42 -21.469 -2.287 36.480 1.00 89.70 C +ATOM 578 O GLN 42 -21.858 -1.748 35.447 1.00 89.70 O +ATOM 579 CB GLN 42 -20.602 -4.654 36.408 1.00 89.70 C +ATOM 580 CG GLN 42 -19.481 -5.574 35.894 1.00 89.70 C +ATOM 581 CD GLN 42 -19.813 -7.049 36.121 1.00 89.70 C +ATOM 582 NE2 GLN 42 -19.703 -7.864 35.071 1.00 89.70 N +ATOM 583 OE1 GLN 42 -20.143 -7.453 37.235 1.00 89.70 O +ATOM 592 N THR 43 -22.082 -2.181 37.670 1.00 91.34 N +ATOM 593 CA THR 43 -23.349 -1.480 37.892 1.00 91.34 C +ATOM 594 C THR 43 -23.172 0.013 38.252 1.00 91.34 C +ATOM 595 O THR 43 -24.163 0.745 38.232 1.00 91.34 O +ATOM 596 CB THR 43 -24.152 -2.167 39.031 1.00 91.34 C +ATOM 597 CG2 THR 43 -24.403 -3.665 38.800 1.00 91.34 C +ATOM 598 OG1 THR 43 -23.555 -1.988 40.305 1.00 91.34 O +ATOM 606 N GLY 44 -21.936 0.442 38.562 1.00 88.69 N +ATOM 607 CA GLY 44 -21.610 1.807 38.971 1.00 88.69 C +ATOM 608 C GLY 44 -21.697 2.771 37.782 1.00 88.69 C +ATOM 609 O GLY 44 -21.272 2.444 36.673 1.00 88.69 O +ATOM 613 N GLY 45 -22.235 3.974 38.043 1.00 88.05 N +ATOM 614 CA GLY 45 -22.410 5.046 37.060 1.00 88.05 C +ATOM 615 C GLY 45 -23.659 4.866 36.177 1.00 88.05 C +ATOM 616 O GLY 45 -23.960 5.766 35.394 1.00 88.05 O +ATOM 620 N TYR 46 -24.382 3.739 36.300 1.00 92.92 N +ATOM 621 CA TYR 46 -25.594 3.428 35.543 1.00 92.92 C +ATOM 622 C TYR 46 -26.830 3.545 36.438 1.00 92.92 C +ATOM 623 O TYR 46 -26.756 3.292 37.642 1.00 92.92 O +ATOM 624 CB TYR 46 -25.490 1.996 34.986 1.00 92.92 C +ATOM 625 CG TYR 46 -24.372 1.797 33.981 1.00 92.92 C +ATOM 626 CD1 TYR 46 -24.454 2.389 32.704 1.00 92.92 C +ATOM 627 CD2 TYR 46 -23.234 1.043 34.331 1.00 92.92 C +ATOM 628 CE1 TYR 46 -23.391 2.247 31.791 1.00 92.92 C +ATOM 629 CE2 TYR 46 -22.176 0.893 33.416 1.00 92.92 C +ATOM 630 OH TYR 46 -21.217 1.373 31.267 1.00 92.92 O +ATOM 631 CZ TYR 46 -22.250 1.502 32.148 1.00 92.92 C +ATOM 641 N SER 47 -27.956 3.881 35.797 1.00 93.03 N +ATOM 642 CA SER 47 -29.284 3.935 36.395 1.00 93.03 C +ATOM 643 C SER 47 -30.263 3.069 35.585 1.00 93.03 C +ATOM 644 O SER 47 -29.949 2.630 34.476 1.00 93.03 O +ATOM 645 CB SER 47 -29.721 5.413 36.515 1.00 93.03 C +ATOM 646 OG SER 47 -30.005 6.000 35.259 1.00 93.03 O +ATOM 652 N SER 48 -31.437 2.842 36.183 1.00 94.81 N +ATOM 653 CA SER 48 -32.536 2.071 35.619 1.00 94.81 C +ATOM 654 C SER 48 -33.855 2.819 35.857 1.00 94.81 C +ATOM 655 O SER 48 -33.985 3.539 36.849 1.00 94.81 O +ATOM 656 CB SER 48 -32.542 0.686 36.291 1.00 94.81 C +ATOM 657 OG SER 48 -33.533 -0.150 35.735 1.00 94.81 O +ATOM 663 N GLN 49 -34.822 2.592 34.954 1.00 92.90 N +ATOM 664 CA GLN 49 -36.188 3.117 35.032 1.00 92.90 C +ATOM 665 C GLN 49 -37.089 2.350 36.022 1.00 92.90 C +ATOM 666 O GLN 49 -38.224 2.777 36.238 1.00 92.90 O +ATOM 667 CB GLN 49 -36.818 3.093 33.618 1.00 92.90 C +ATOM 668 CG GLN 49 -36.049 3.870 32.527 1.00 92.90 C +ATOM 669 CD GLN 49 -35.812 5.352 32.835 1.00 92.90 C +ATOM 670 NE2 GLN 49 -34.728 5.907 32.290 1.00 92.90 N +ATOM 671 OE1 GLN 49 -36.603 5.995 33.524 1.00 92.90 O +ATOM 680 N GLY 50 -36.592 1.241 36.597 1.00 94.04 N +ATOM 681 CA GLY 50 -37.358 0.364 37.477 1.00 94.04 C +ATOM 682 C GLY 50 -38.198 -0.621 36.650 1.00 94.04 C +ATOM 683 O GLY 50 -38.043 -0.731 35.431 1.00 94.04 O +ATOM 687 N LEU 51 -39.070 -1.366 37.343 1.00 95.52 N +ATOM 688 CA LEU 51 -39.894 -2.424 36.767 1.00 95.52 C +ATOM 689 C LEU 51 -41.278 -2.391 37.423 1.00 95.52 C +ATOM 690 O LEU 51 -41.359 -2.443 38.648 1.00 95.52 O +ATOM 691 CB LEU 51 -39.192 -3.782 36.996 1.00 95.52 C +ATOM 692 CG LEU 51 -39.741 -4.931 36.131 1.00 95.52 C +ATOM 693 CD1 LEU 51 -39.452 -4.704 34.635 1.00 95.52 C +ATOM 694 CD2 LEU 51 -39.178 -6.277 36.608 1.00 95.52 C +ATOM 706 N ARG 52 -42.338 -2.334 36.602 1.00 95.32 N +ATOM 707 CA ARG 52 -43.720 -2.332 37.075 1.00 95.32 C +ATOM 708 C ARG 52 -44.605 -3.098 36.084 1.00 95.32 C +ATOM 709 O ARG 52 -44.604 -2.774 34.896 1.00 95.32 O +ATOM 710 CB ARG 52 -44.189 -0.886 37.344 1.00 95.32 C +ATOM 711 CG ARG 52 -45.594 -0.792 37.966 1.00 95.32 C +ATOM 712 CD ARG 52 -46.001 0.651 38.292 1.00 95.32 C +ATOM 713 NE ARG 52 -47.247 0.694 39.069 1.00 95.32 N +ATOM 714 NH1 ARG 52 -47.507 3.021 39.024 1.00 95.32 N +ATOM 715 NH2 ARG 52 -49.057 1.693 40.113 1.00 95.32 N +ATOM 716 CZ ARG 52 -47.931 1.804 39.397 1.00 95.32 C +ATOM 730 N GLY 53 -45.334 -4.096 36.607 1.00 93.40 N +ATOM 731 CA GLY 53 -46.161 -5.023 35.835 1.00 93.40 C +ATOM 732 C GLY 53 -45.647 -6.457 36.031 1.00 93.40 C +ATOM 733 O GLY 53 -44.679 -6.698 36.756 1.00 93.40 O +ATOM 737 N SER 54 -46.329 -7.414 35.379 1.00 95.02 N +ATOM 738 CA SER 54 -46.019 -8.843 35.438 1.00 95.02 C +ATOM 739 C SER 54 -44.970 -9.232 34.388 1.00 95.02 C +ATOM 740 O SER 54 -45.184 -8.988 33.200 1.00 95.02 O +ATOM 741 CB SER 54 -47.312 -9.662 35.266 1.00 95.02 C +ATOM 742 OG SER 54 -48.044 -9.670 36.475 1.00 95.02 O +ATOM 748 N PHE 55 -43.867 -9.840 34.854 1.00 93.54 N +ATOM 749 CA PHE 55 -42.753 -10.307 34.027 1.00 93.54 C +ATOM 750 C PHE 55 -42.236 -11.640 34.576 1.00 93.54 C +ATOM 751 O PHE 55 -42.321 -11.879 35.780 1.00 93.54 O +ATOM 752 CB PHE 55 -41.595 -9.281 34.057 1.00 93.54 C +ATOM 753 CG PHE 55 -41.931 -7.898 33.537 1.00 93.54 C +ATOM 754 CD1 PHE 55 -42.026 -7.662 32.150 1.00 93.54 C +ATOM 755 CD2 PHE 55 -42.309 -6.879 34.435 1.00 93.54 C +ATOM 756 CE1 PHE 55 -42.431 -6.417 31.686 1.00 93.54 C +ATOM 757 CE2 PHE 55 -42.715 -5.646 33.950 1.00 93.54 C +ATOM 758 CZ PHE 55 -42.770 -5.412 32.583 1.00 93.54 C +ATOM 768 N THR 56 -41.625 -12.450 33.697 1.00 94.82 N +ATOM 769 CA THR 56 -40.729 -13.542 34.095 1.00 94.82 C +ATOM 770 C THR 56 -39.374 -12.973 34.588 1.00 94.82 C +ATOM 771 O THR 56 -39.145 -11.765 34.492 1.00 94.82 O +ATOM 772 CB THR 56 -40.493 -14.541 32.927 1.00 94.82 C +ATOM 773 CG2 THR 56 -41.783 -15.007 32.234 1.00 94.82 C +ATOM 774 OG1 THR 56 -39.551 -14.100 31.966 1.00 94.82 O +ATOM 782 N VAL 57 -38.499 -13.839 35.127 1.00 94.34 N +ATOM 783 CA VAL 57 -37.200 -13.428 35.671 1.00 94.34 C +ATOM 784 C VAL 57 -36.256 -12.849 34.595 1.00 94.34 C +ATOM 785 O VAL 57 -35.651 -11.802 34.829 1.00 94.34 O +ATOM 786 CB VAL 57 -36.486 -14.586 36.418 1.00 94.34 C +ATOM 787 CG1 VAL 57 -35.061 -14.255 36.895 1.00 94.34 C +ATOM 788 CG2 VAL 57 -37.322 -15.069 37.617 1.00 94.34 C +ATOM 798 N GLN 58 -36.187 -13.521 33.432 1.00 92.50 N +ATOM 799 CA GLN 58 -35.397 -13.101 32.273 1.00 92.50 C +ATOM 800 C GLN 58 -35.913 -11.803 31.624 1.00 92.50 C +ATOM 801 O GLN 58 -35.097 -10.955 31.266 1.00 92.50 O +ATOM 802 CB GLN 58 -35.337 -14.242 31.242 1.00 92.50 C +ATOM 803 CG GLN 58 -34.554 -15.479 31.731 1.00 92.50 C +ATOM 804 CD GLN 58 -34.453 -16.586 30.677 1.00 92.50 C +ATOM 805 NE2 GLN 58 -33.700 -17.644 30.979 1.00 92.50 N +ATOM 806 OE1 GLN 58 -35.048 -16.502 29.604 1.00 92.50 O +ATOM 815 N GLN 59 -37.248 -11.658 31.526 1.00 93.62 N +ATOM 816 CA GLN 59 -37.927 -10.444 31.058 1.00 93.62 C +ATOM 817 C GLN 59 -37.704 -9.231 31.975 1.00 93.62 C +ATOM 818 O GLN 59 -37.566 -8.116 31.473 1.00 93.62 O +ATOM 819 CB GLN 59 -39.438 -10.711 30.926 1.00 93.62 C +ATOM 820 CG GLN 59 -39.823 -11.604 29.734 1.00 93.62 C +ATOM 821 CD GLN 59 -41.323 -11.914 29.691 1.00 93.62 C +ATOM 822 NE2 GLN 59 -41.788 -12.463 28.568 1.00 93.62 N +ATOM 823 OE1 GLN 59 -42.055 -11.681 30.652 1.00 93.62 O +ATOM 832 N GLY 60 -37.670 -9.483 33.295 1.00 95.26 N +ATOM 833 CA GLY 60 -37.473 -8.473 34.325 1.00 95.26 C +ATOM 834 C GLY 60 -36.041 -7.930 34.283 1.00 95.26 C +ATOM 835 O GLY 60 -35.867 -6.715 34.245 1.00 95.26 O +ATOM 839 N LEU 61 -35.032 -8.819 34.226 1.00 95.83 N +ATOM 840 CA LEU 61 -33.613 -8.470 34.091 1.00 95.83 C +ATOM 841 C LEU 61 -33.300 -7.708 32.794 1.00 95.83 C +ATOM 842 O LEU 61 -32.582 -6.713 32.856 1.00 95.83 O +ATOM 843 CB LEU 61 -32.742 -9.742 34.186 1.00 95.83 C +ATOM 844 CG LEU 61 -32.600 -10.296 35.618 1.00 95.83 C +ATOM 845 CD1 LEU 61 -32.023 -11.726 35.623 1.00 95.83 C +ATOM 846 CD2 LEU 61 -31.800 -9.345 36.534 1.00 95.83 C +ATOM 858 N ALA 62 -33.868 -8.158 31.661 1.00 93.41 N +ATOM 859 CA ALA 62 -33.706 -7.534 30.346 1.00 93.41 C +ATOM 860 C ALA 62 -34.255 -6.099 30.265 1.00 93.41 C +ATOM 861 O ALA 62 -33.641 -5.266 29.599 1.00 93.41 O +ATOM 862 CB ALA 62 -34.362 -8.424 29.280 1.00 93.41 C +ATOM 868 N ARG 63 -35.376 -5.832 30.959 1.00 93.52 N +ATOM 869 CA ARG 63 -36.011 -4.516 31.021 1.00 93.52 C +ATOM 870 C ARG 63 -35.258 -3.532 31.938 1.00 93.52 C +ATOM 871 O ARG 63 -35.177 -2.351 31.602 1.00 93.52 O +ATOM 872 CB ARG 63 -37.494 -4.689 31.421 1.00 93.52 C +ATOM 873 CG ARG 63 -38.353 -3.407 31.382 1.00 93.52 C +ATOM 874 CD ARG 63 -38.354 -2.732 30.000 1.00 93.52 C +ATOM 875 NE ARG 63 -39.339 -1.647 29.910 1.00 93.52 N +ATOM 876 NH1 ARG 63 -38.678 -0.902 27.791 1.00 93.52 N +ATOM 877 NH2 ARG 63 -40.400 0.155 28.915 1.00 93.52 N +ATOM 878 CZ ARG 63 -39.467 -0.803 28.871 1.00 93.52 C +ATOM 892 N LEU 64 -34.700 -4.035 33.054 1.00 95.75 N +ATOM 893 CA LEU 64 -33.883 -3.268 34.001 1.00 95.75 C +ATOM 894 C LEU 64 -32.514 -2.855 33.428 1.00 95.75 C +ATOM 895 O LEU 64 -31.992 -1.811 33.820 1.00 95.75 O +ATOM 896 CB LEU 64 -33.685 -4.095 35.291 1.00 95.75 C +ATOM 897 CG LEU 64 -34.963 -4.256 36.141 1.00 95.75 C +ATOM 898 CD1 LEU 64 -34.764 -5.301 37.252 1.00 95.75 C +ATOM 899 CD2 LEU 64 -35.466 -2.917 36.692 1.00 95.75 C +ATOM 911 N LEU 65 -31.973 -3.675 32.515 1.00 95.36 N +ATOM 912 CA LEU 65 -30.663 -3.502 31.886 1.00 95.36 C +ATOM 913 C LEU 65 -30.745 -2.855 30.490 1.00 95.36 C +ATOM 914 O LEU 65 -29.699 -2.701 29.863 1.00 95.36 O +ATOM 915 CB LEU 65 -29.991 -4.892 31.794 1.00 95.36 C +ATOM 916 CG LEU 65 -29.604 -5.515 33.154 1.00 95.36 C +ATOM 917 CD1 LEU 65 -29.328 -7.024 33.019 1.00 95.36 C +ATOM 918 CD2 LEU 65 -28.446 -4.761 33.837 1.00 95.36 C +ATOM 930 N ALA 66 -31.955 -2.496 30.021 1.00 89.10 N +ATOM 931 CA ALA 66 -32.235 -1.993 28.671 1.00 89.10 C +ATOM 932 C ALA 66 -31.460 -0.728 28.251 1.00 89.10 C +ATOM 933 O ALA 66 -31.107 -0.614 27.078 1.00 89.10 O +ATOM 934 CB ALA 66 -33.748 -1.759 28.534 1.00 89.10 C +ATOM 940 N ASP 67 -31.197 0.175 29.212 1.00 85.51 N +ATOM 941 CA ASP 67 -30.489 1.449 29.012 1.00 85.51 C +ATOM 942 C ASP 67 -28.984 1.359 29.358 1.00 85.51 C +ATOM 943 O ASP 67 -28.338 2.400 29.481 1.00 85.51 O +ATOM 944 CB ASP 67 -31.158 2.628 29.774 1.00 85.51 C +ATOM 945 CG ASP 67 -32.669 2.796 29.561 1.00 85.51 C +ATOM 946 OD1 ASP 67 -33.179 2.334 28.516 1.00 85.51 O +ATOM 947 OD2 ASP 67 -33.282 3.464 30.423 1.00 85.51 O +ATOM 952 N THR 68 -28.450 0.136 29.519 1.00 91.00 N +ATOM 953 CA THR 68 -27.072 -0.142 29.933 1.00 91.00 C +ATOM 954 C THR 68 -26.424 -1.161 28.958 1.00 91.00 C +ATOM 955 O THR 68 -27.153 -1.929 28.327 1.00 91.00 O +ATOM 956 CB THR 68 -27.041 -0.706 31.391 1.00 91.00 C +ATOM 957 CG2 THR 68 -27.943 0.051 32.382 1.00 91.00 C +ATOM 958 OG1 THR 68 -27.295 -2.096 31.477 1.00 91.00 O +ATOM 966 N PRO 69 -25.072 -1.191 28.867 1.00 89.88 N +ATOM 967 CA PRO 69 -24.352 -2.172 28.028 1.00 89.88 C +ATOM 968 C PRO 69 -24.182 -3.565 28.680 1.00 89.88 C +ATOM 969 O PRO 69 -23.263 -4.286 28.296 1.00 89.88 O +ATOM 970 CB PRO 69 -23.007 -1.466 27.781 1.00 89.88 C +ATOM 971 CG PRO 69 -22.747 -0.713 29.073 1.00 89.88 C +ATOM 972 CD PRO 69 -24.139 -0.242 29.482 1.00 89.88 C +ATOM 980 N LEU 70 -25.043 -3.916 29.650 1.00 92.95 N +ATOM 981 CA LEU 70 -24.981 -5.152 30.428 1.00 92.95 C +ATOM 982 C LEU 70 -26.148 -6.087 30.068 1.00 92.95 C +ATOM 983 O LEU 70 -27.172 -5.635 29.555 1.00 92.95 O +ATOM 984 CB LEU 70 -25.046 -4.802 31.934 1.00 92.95 C +ATOM 985 CG LEU 70 -23.952 -3.837 32.448 1.00 92.95 C +ATOM 986 CD1 LEU 70 -24.229 -3.439 33.910 1.00 92.95 C +ATOM 987 CD2 LEU 70 -22.528 -4.395 32.259 1.00 92.95 C +ATOM 999 N GLU 71 -25.974 -7.377 30.396 1.00 94.04 N +ATOM 1000 CA GLU 71 -26.994 -8.421 30.299 1.00 94.04 C +ATOM 1001 C GLU 71 -26.755 -9.467 31.400 1.00 94.04 C +ATOM 1002 O GLU 71 -25.610 -9.689 31.799 1.00 94.04 O +ATOM 1003 CB GLU 71 -26.999 -9.037 28.880 1.00 94.04 C +ATOM 1004 CG GLU 71 -25.748 -9.869 28.510 1.00 94.04 C +ATOM 1005 CD GLU 71 -25.779 -10.443 27.091 1.00 94.04 C +ATOM 1006 OE1 GLU 71 -24.797 -11.142 26.760 1.00 94.04 O +ATOM 1007 OE2 GLU 71 -26.755 -10.185 26.355 1.00 94.04 O +ATOM 1014 N ALA 72 -27.847 -10.103 31.854 1.00 94.00 N +ATOM 1015 CA ALA 72 -27.825 -11.161 32.862 1.00 94.00 C +ATOM 1016 C ALA 72 -27.938 -12.529 32.175 1.00 94.00 C +ATOM 1017 O ALA 72 -29.007 -12.871 31.668 1.00 94.00 O +ATOM 1018 CB ALA 72 -28.980 -10.933 33.849 1.00 94.00 C +ATOM 1024 N GLU 73 -26.828 -13.282 32.179 1.00 93.08 N +ATOM 1025 CA GLU 73 -26.740 -14.642 31.652 1.00 93.08 C +ATOM 1026 C GLU 73 -27.243 -15.648 32.699 1.00 93.08 C +ATOM 1027 O GLU 73 -26.685 -15.700 33.795 1.00 93.08 O +ATOM 1028 CB GLU 73 -25.277 -14.919 31.241 1.00 93.08 C +ATOM 1029 CG GLU 73 -25.033 -16.333 30.666 1.00 93.08 C +ATOM 1030 CD GLU 73 -23.584 -16.577 30.242 1.00 93.08 C +ATOM 1031 OE1 GLU 73 -23.402 -17.369 29.292 1.00 93.08 O +ATOM 1032 OE2 GLU 73 -22.678 -15.972 30.857 1.00 93.08 O +ATOM 1039 N ASP 74 -28.260 -16.444 32.327 1.00 92.91 N +ATOM 1040 CA ASP 74 -28.827 -17.517 33.149 1.00 92.91 C +ATOM 1041 C ASP 74 -27.849 -18.707 33.202 1.00 92.91 C +ATOM 1042 O ASP 74 -27.352 -19.134 32.159 1.00 92.91 O +ATOM 1043 CB ASP 74 -30.209 -17.950 32.594 1.00 92.91 C +ATOM 1044 CG ASP 74 -31.078 -18.797 33.538 1.00 92.91 C +ATOM 1045 OD1 ASP 74 -30.622 -19.136 34.652 1.00 92.91 O +ATOM 1046 OD2 ASP 74 -32.217 -19.089 33.114 1.00 92.91 O +ATOM 1051 N GLN 75 -27.617 -19.220 34.420 1.00 91.23 N +ATOM 1052 CA GLN 75 -26.762 -20.377 34.692 1.00 91.23 C +ATOM 1053 C GLN 75 -27.566 -21.691 34.797 1.00 91.23 C +ATOM 1054 O GLN 75 -26.951 -22.756 34.852 1.00 91.23 O +ATOM 1055 CB GLN 75 -25.954 -20.104 35.980 1.00 91.23 C +ATOM 1056 CG GLN 75 -25.118 -18.802 35.972 1.00 91.23 C +ATOM 1057 CD GLN 75 -24.138 -18.705 34.798 1.00 91.23 C +ATOM 1058 NE2 GLN 75 -24.254 -17.651 33.987 1.00 91.23 N +ATOM 1059 OE1 GLN 75 -23.276 -19.564 34.634 1.00 91.23 O +ATOM 1068 N GLY 76 -28.909 -21.607 34.789 1.00 83.41 N +ATOM 1069 CA GLY 76 -29.825 -22.747 34.698 1.00 83.41 C +ATOM 1070 C GLY 76 -30.191 -23.362 36.060 1.00 83.41 C +ATOM 1071 O GLY 76 -31.094 -24.196 36.105 1.00 83.41 O +ATOM 1075 N ASP 77 -29.527 -22.956 37.155 1.00 84.54 N +ATOM 1076 CA ASP 77 -29.799 -23.386 38.537 1.00 84.54 C +ATOM 1077 C ASP 77 -30.674 -22.366 39.302 1.00 84.54 C +ATOM 1078 O ASP 77 -30.968 -22.591 40.476 1.00 84.54 O +ATOM 1079 CB ASP 77 -28.498 -23.695 39.332 1.00 84.54 C +ATOM 1080 CG ASP 77 -27.404 -22.617 39.315 1.00 84.54 C +ATOM 1081 OD1 ASP 77 -27.635 -21.533 38.734 1.00 84.54 O +ATOM 1082 OD2 ASP 77 -26.343 -22.891 39.915 1.00 84.54 O +ATOM 1087 N GLY 78 -31.057 -21.262 38.638 1.00 82.56 N +ATOM 1088 CA GLY 78 -31.772 -20.137 39.235 1.00 82.56 C +ATOM 1089 C GLY 78 -30.812 -19.002 39.622 1.00 82.56 C +ATOM 1090 O GLY 78 -31.293 -17.956 40.057 1.00 82.56 O +ATOM 1094 N SER 79 -29.485 -19.173 39.452 1.00 90.95 N +ATOM 1095 CA SER 79 -28.506 -18.093 39.559 1.00 90.95 C +ATOM 1096 C SER 79 -28.267 -17.450 38.182 1.00 90.95 C +ATOM 1097 O SER 79 -28.432 -18.095 37.146 1.00 90.95 O +ATOM 1098 CB SER 79 -27.212 -18.591 40.248 1.00 90.95 C +ATOM 1099 OG SER 79 -26.290 -19.215 39.378 1.00 90.95 O +ATOM 1105 N PHE 80 -27.891 -16.168 38.226 1.00 95.24 N +ATOM 1106 CA PHE 80 -27.614 -15.314 37.081 1.00 95.24 C +ATOM 1107 C PHE 80 -26.266 -14.618 37.292 1.00 95.24 C +ATOM 1108 O PHE 80 -25.924 -14.285 38.428 1.00 95.24 O +ATOM 1109 CB PHE 80 -28.748 -14.278 36.931 1.00 95.24 C +ATOM 1110 CG PHE 80 -30.044 -14.810 36.346 1.00 95.24 C +ATOM 1111 CD1 PHE 80 -30.302 -14.676 34.966 1.00 95.24 C +ATOM 1112 CD2 PHE 80 -30.937 -15.562 37.139 1.00 95.24 C +ATOM 1113 CE1 PHE 80 -31.459 -15.215 34.422 1.00 95.24 C +ATOM 1114 CE2 PHE 80 -32.072 -16.121 36.569 1.00 95.24 C +ATOM 1115 CZ PHE 80 -32.339 -15.937 35.218 1.00 95.24 C +ATOM 1125 N VAL 81 -25.537 -14.390 36.192 1.00 94.39 N +ATOM 1126 CA VAL 81 -24.264 -13.676 36.185 1.00 94.39 C +ATOM 1127 C VAL 81 -24.399 -12.467 35.256 1.00 94.39 C +ATOM 1128 O VAL 81 -24.659 -12.636 34.064 1.00 94.39 O +ATOM 1129 CB VAL 81 -23.095 -14.579 35.692 1.00 94.39 C +ATOM 1130 CG1 VAL 81 -21.770 -13.827 35.430 1.00 94.39 C +ATOM 1131 CG2 VAL 81 -22.836 -15.728 36.682 1.00 94.39 C +ATOM 1141 N LEU 82 -24.194 -11.271 35.828 1.00 93.97 N +ATOM 1142 CA LEU 82 -24.134 -10.020 35.087 1.00 93.97 C +ATOM 1143 C LEU 82 -22.786 -9.916 34.360 1.00 93.97 C +ATOM 1144 O LEU 82 -21.737 -10.087 34.983 1.00 93.97 O +ATOM 1145 CB LEU 82 -24.379 -8.833 36.048 1.00 93.97 C +ATOM 1146 CG LEU 82 -24.816 -7.537 35.332 1.00 93.97 C +ATOM 1147 CD1 LEU 82 -26.228 -7.689 34.733 1.00 93.97 C +ATOM 1148 CD2 LEU 82 -24.734 -6.310 36.257 1.00 93.97 C +ATOM 1160 N ARG 83 -22.858 -9.646 33.053 1.00 91.57 N +ATOM 1161 CA ARG 83 -21.716 -9.471 32.164 1.00 91.57 C +ATOM 1162 C ARG 83 -22.001 -8.295 31.223 1.00 91.57 C +ATOM 1163 O ARG 83 -23.162 -7.919 31.055 1.00 91.57 O +ATOM 1164 CB ARG 83 -21.454 -10.790 31.394 1.00 91.57 C +ATOM 1165 CG ARG 83 -22.492 -11.169 30.313 1.00 91.57 C +ATOM 1166 CD ARG 83 -22.150 -12.494 29.616 1.00 91.57 C +ATOM 1167 NE ARG 83 -22.941 -12.682 28.393 1.00 91.57 N +ATOM 1168 NH1 ARG 83 -22.170 -14.833 27.881 1.00 91.57 N +ATOM 1169 NH2 ARG 83 -23.690 -13.766 26.501 1.00 91.57 N +ATOM 1170 CZ ARG 83 -22.927 -13.765 27.599 1.00 91.57 C +ATOM 1184 N GLU 84 -20.946 -7.779 30.573 1.00 86.17 N +ATOM 1185 CA GLU 84 -21.089 -6.872 29.436 1.00 86.17 C +ATOM 1186 C GLU 84 -21.683 -7.624 28.236 1.00 86.17 C +ATOM 1187 O GLU 84 -21.159 -8.671 27.850 1.00 86.17 O +ATOM 1188 CB GLU 84 -19.736 -6.233 29.071 1.00 86.17 C +ATOM 1189 CG GLU 84 -19.218 -5.256 30.146 1.00 86.17 C +ATOM 1190 CD GLU 84 -17.921 -4.539 29.759 1.00 86.17 C +ATOM 1191 OE1 GLU 84 -17.641 -3.508 30.409 1.00 86.17 O +ATOM 1192 OE2 GLU 84 -17.227 -5.022 28.836 1.00 86.17 O +ATOM 1199 N ALA 85 -22.766 -7.064 27.678 1.00 78.21 N +ATOM 1200 CA ALA 85 -23.415 -7.541 26.463 1.00 78.21 C +ATOM 1201 C ALA 85 -22.483 -7.317 25.255 1.00 78.21 C +ATOM 1202 O ALA 85 -21.914 -6.227 25.155 1.00 78.21 O +ATOM 1203 CB ALA 85 -24.724 -6.756 26.291 1.00 78.21 C +ATOM 1209 N PRO 86 -22.302 -8.344 24.390 1.00 64.41 N +ATOM 1210 CA PRO 86 -21.376 -8.257 23.248 1.00 64.41 C +ATOM 1211 C PRO 86 -21.794 -7.162 22.254 1.00 64.41 C +ATOM 1212 O PRO 86 -22.948 -7.146 21.822 1.00 64.41 O +ATOM 1213 CB PRO 86 -21.418 -9.665 22.630 1.00 64.41 C +ATOM 1214 CG PRO 86 -22.778 -10.223 23.017 1.00 64.41 C +ATOM 1215 CD PRO 86 -23.013 -9.625 24.399 1.00 64.41 C +ATOM 1223 N ALA 87 -20.851 -6.247 21.964 1.00 48.40 N +ATOM 1224 CA ALA 87 -21.027 -5.106 21.064 1.00 48.40 C +ATOM 1225 C ALA 87 -21.523 -5.543 19.680 1.00 48.40 C +ATOM 1226 O ALA 87 -20.945 -6.460 19.095 1.00 48.40 O +ATOM 1227 CB ALA 87 -19.698 -4.343 20.952 1.00 48.40 C +ATOM 1233 N LYS 88 -22.618 -4.913 19.227 1.00 45.52 N +ATOM 1234 CA LYS 88 -23.343 -5.270 18.009 1.00 45.52 C +ATOM 1235 C LYS 88 -22.579 -4.848 16.742 1.00 45.52 C +ATOM 1236 O LYS 88 -22.902 -3.820 16.146 1.00 45.52 O +ATOM 1237 CB LYS 88 -24.769 -4.672 18.066 1.00 45.52 C +ATOM 1238 CG LYS 88 -25.665 -5.307 19.145 1.00 45.52 C +ATOM 1239 CD LYS 88 -27.112 -4.792 19.077 1.00 45.52 C +ATOM 1240 CE LYS 88 -28.031 -5.456 20.112 1.00 45.52 C +ATOM 1241 NZ LYS 88 -29.416 -4.973 19.984 1.00 45.52 N +ATOM 1255 N ASP 89 -21.589 -5.672 16.350 1.00 36.75 N +ATOM 1256 CA ASP 89 -20.886 -5.590 15.068 1.00 36.75 C +ATOM 1257 C ASP 89 -21.864 -5.920 13.930 1.00 36.75 C +ATOM 1258 O ASP 89 -22.381 -7.036 13.865 1.00 36.75 O +ATOM 1259 CB ASP 89 -19.606 -6.462 14.982 1.00 36.75 C +ATOM 1260 CG ASP 89 -18.522 -6.175 16.033 1.00 36.75 C +ATOM 1261 OD1 ASP 89 -18.644 -5.169 16.767 1.00 36.75 O +ATOM 1262 OD2 ASP 89 -17.539 -6.948 16.041 1.00 36.75 O +ATOM 1267 N GLY 90 -22.122 -4.905 13.098 1.00 30.38 N +ATOM 1268 CA GLY 90 -23.238 -4.853 12.166 1.00 30.38 C +ATOM 1269 C GLY 90 -23.852 -3.478 12.404 1.00 30.38 C +ATOM 1270 O GLY 90 -24.806 -3.350 13.173 1.00 30.38 O +ATOM 1274 N ASP 91 -23.246 -2.455 11.775 1.00 31.36 N +ATOM 1275 CA ASP 91 -23.558 -1.036 11.947 1.00 31.36 C +ATOM 1276 C ASP 91 -24.921 -0.642 11.357 1.00 31.36 C +ATOM 1277 O ASP 91 -24.993 -0.166 10.224 1.00 31.36 O +ATOM 1278 CB ASP 91 -22.442 -0.091 11.424 1.00 31.36 C +ATOM 1279 CG ASP 91 -21.051 -0.313 12.029 1.00 31.36 C +ATOM 1280 OD1 ASP 91 -20.975 -0.867 13.148 1.00 31.36 O +ATOM 1281 OD2 ASP 91 -20.083 0.154 11.390 1.00 31.36 O +ATOM 1286 N VAL 92 -25.967 -0.770 12.187 1.00 31.16 N +ATOM 1287 CA VAL 92 -27.183 0.027 12.070 1.00 31.16 C +ATOM 1288 C VAL 92 -26.818 1.443 12.552 1.00 31.16 C +ATOM 1289 O VAL 92 -26.493 1.604 13.730 1.00 31.16 O +ATOM 1290 CB VAL 92 -28.334 -0.547 12.950 1.00 31.16 C +ATOM 1291 CG1 VAL 92 -29.571 0.373 13.057 1.00 31.16 C +ATOM 1292 CG2 VAL 92 -28.770 -1.937 12.452 1.00 31.16 C +ATOM 1302 N LEU 93 -26.817 2.413 11.619 1.00 32.47 N +ATOM 1303 CA LEU 93 -26.484 3.819 11.869 1.00 32.47 C +ATOM 1304 C LEU 93 -27.575 4.465 12.734 1.00 32.47 C +ATOM 1305 O LEU 93 -28.545 5.011 12.208 1.00 32.47 O +ATOM 1306 CB LEU 93 -26.288 4.558 10.522 1.00 32.47 C +ATOM 1307 CG LEU 93 -24.961 4.225 9.800 1.00 32.47 C +ATOM 1308 CD1 LEU 93 -24.976 4.746 8.345 1.00 32.47 C +ATOM 1309 CD2 LEU 93 -23.726 4.722 10.586 1.00 32.47 C +ATOM 1321 N ASN 94 -27.401 4.321 14.057 1.00 25.95 N +ATOM 1322 CA ASN 94 -28.349 4.714 15.087 1.00 25.95 C +ATOM 1323 C ASN 94 -28.279 6.233 15.287 1.00 25.95 C +ATOM 1324 O ASN 94 -27.432 6.719 16.038 1.00 25.95 O +ATOM 1325 CB ASN 94 -28.036 3.912 16.375 1.00 25.95 C +ATOM 1326 CG ASN 94 -29.149 3.939 17.429 1.00 25.95 C +ATOM 1327 ND2 ASN 94 -28.791 3.672 18.686 1.00 25.95 N +ATOM 1328 OD1 ASN 94 -30.316 4.173 17.123 1.00 25.95 O +ATOM 1335 N MET 95 -29.164 6.944 14.570 1.00 31.66 N +ATOM 1336 CA MET 95 -29.321 8.393 14.629 1.00 31.66 C +ATOM 1337 C MET 95 -29.788 8.816 16.028 1.00 31.66 C +ATOM 1338 O MET 95 -30.891 8.446 16.431 1.00 31.66 O +ATOM 1339 CB MET 95 -30.326 8.857 13.551 1.00 31.66 C +ATOM 1340 CG MET 95 -29.938 8.474 12.112 1.00 31.66 C +ATOM 1341 SD MET 95 -31.008 9.174 10.823 1.00 31.66 S +ATOM 1342 CE MET 95 -32.557 8.287 11.147 1.00 31.66 C +ATOM 1352 N GLN 96 -28.935 9.578 16.735 1.00 25.48 N +ATOM 1353 CA GLN 96 -29.251 10.168 18.038 1.00 25.48 C +ATOM 1354 C GLN 96 -30.417 11.168 17.952 1.00 25.48 C +ATOM 1355 O GLN 96 -30.665 11.717 16.878 1.00 25.48 O +ATOM 1356 CB GLN 96 -27.993 10.812 18.653 1.00 25.48 C +ATOM 1357 CG GLN 96 -26.951 9.771 19.113 1.00 25.48 C +ATOM 1358 CD GLN 96 -25.799 10.376 19.921 1.00 25.48 C +ATOM 1359 NE2 GLN 96 -24.984 9.516 20.534 1.00 25.48 N +ATOM 1360 OE1 GLN 96 -25.632 11.593 19.992 1.00 25.48 O +ATOM 1369 N ALA 97 -31.123 11.325 19.084 1.00 26.88 N +ATOM 1370 CA ALA 97 -32.428 11.971 19.220 1.00 26.88 C +ATOM 1371 C ALA 97 -32.487 13.471 18.866 1.00 26.88 C +ATOM 1372 O ALA 97 -32.646 14.313 19.750 1.00 26.88 O +ATOM 1373 CB ALA 97 -32.964 11.685 20.634 1.00 26.88 C +ATOM 1379 N VAL 98 -32.468 13.754 17.555 1.00 35.19 N +ATOM 1380 CA VAL 98 -33.067 14.938 16.949 1.00 35.19 C +ATOM 1381 C VAL 98 -34.591 14.706 16.944 1.00 35.19 C +ATOM 1382 O VAL 98 -35.017 13.624 16.535 1.00 35.19 O +ATOM 1383 CB VAL 98 -32.587 15.111 15.475 1.00 35.19 C +ATOM 1384 CG1 VAL 98 -33.321 16.219 14.687 1.00 35.19 C +ATOM 1385 CG2 VAL 98 -31.068 15.352 15.402 1.00 35.19 C +ATOM 1395 N GLU 99 -35.367 15.702 17.411 1.00 52.87 N +ATOM 1396 CA GLU 99 -36.836 15.669 17.482 1.00 52.87 C +ATOM 1397 C GLU 99 -37.462 15.339 16.118 1.00 52.87 C +ATOM 1398 O GLU 99 -37.327 16.113 15.170 1.00 52.87 O +ATOM 1399 CB GLU 99 -37.360 17.002 18.061 1.00 52.87 C +ATOM 1400 CG GLU 99 -37.450 17.041 19.602 1.00 52.87 C +ATOM 1401 CD GLU 99 -38.546 16.155 20.208 1.00 52.87 C +ATOM 1402 OE1 GLU 99 -38.442 15.887 21.424 1.00 52.87 O +ATOM 1403 OE2 GLU 99 -39.476 15.768 19.464 1.00 52.87 O +ATOM 1410 N VAL 100 -38.045 14.135 16.049 1.00 65.53 N +ATOM 1411 CA VAL 100 -38.273 13.393 14.817 1.00 65.53 C +ATOM 1412 C VAL 100 -39.506 13.926 14.056 1.00 65.53 C +ATOM 1413 O VAL 100 -40.633 13.758 14.524 1.00 65.53 O +ATOM 1414 CB VAL 100 -38.443 11.878 15.139 1.00 65.53 C +ATOM 1415 CG1 VAL 100 -38.678 11.018 13.893 1.00 65.53 C +ATOM 1416 CG2 VAL 100 -37.239 11.309 15.914 1.00 65.53 C +ATOM 1426 N PHE 101 -39.256 14.569 12.902 1.00 83.39 N +ATOM 1427 CA PHE 101 -40.283 15.133 12.022 1.00 83.39 C +ATOM 1428 C PHE 101 -40.896 14.024 11.152 1.00 83.39 C +ATOM 1429 O PHE 101 -40.186 13.451 10.325 1.00 83.39 O +ATOM 1430 CB PHE 101 -39.666 16.228 11.123 1.00 83.39 C +ATOM 1431 CG PHE 101 -39.045 17.415 11.839 1.00 83.39 C +ATOM 1432 CD1 PHE 101 -39.851 18.470 12.319 1.00 83.39 C +ATOM 1433 CD2 PHE 101 -37.666 17.414 12.143 1.00 83.39 C +ATOM 1434 CE1 PHE 101 -39.270 19.516 13.024 1.00 83.39 C +ATOM 1435 CE2 PHE 101 -37.108 18.468 12.852 1.00 83.39 C +ATOM 1436 CZ PHE 101 -37.906 19.517 13.286 1.00 83.39 C +ATOM 1446 N ALA 102 -42.198 13.749 11.345 1.00 92.72 N +ATOM 1447 CA ALA 102 -42.957 12.766 10.564 1.00 92.72 C +ATOM 1448 C ALA 102 -43.148 13.181 9.098 1.00 92.72 C +ATOM 1449 O ALA 102 -42.926 12.361 8.207 1.00 92.72 O +ATOM 1450 CB ALA 102 -44.311 12.501 11.241 1.00 92.72 C +ATOM 1456 N LEU 103 -43.536 14.450 8.892 1.00 97.26 N +ATOM 1457 CA LEU 103 -43.810 15.074 7.600 1.00 97.26 C +ATOM 1458 C LEU 103 -42.577 15.062 6.676 1.00 97.26 C +ATOM 1459 O LEU 103 -41.539 15.601 7.055 1.00 97.26 O +ATOM 1460 CB LEU 103 -44.342 16.502 7.883 1.00 97.26 C +ATOM 1461 CG LEU 103 -44.748 17.362 6.663 1.00 97.26 C +ATOM 1462 CD1 LEU 103 -45.807 16.683 5.773 1.00 97.26 C +ATOM 1463 CD2 LEU 103 -45.199 18.767 7.116 1.00 97.26 C +ATOM 1475 N GLY 104 -42.736 14.452 5.489 1.00 96.00 N +ATOM 1476 CA GLY 104 -41.765 14.427 4.393 1.00 96.00 C +ATOM 1477 C GLY 104 -40.538 13.519 4.600 1.00 96.00 C +ATOM 1478 O GLY 104 -39.672 13.521 3.726 1.00 96.00 O +ATOM 1482 N ASN 105 -40.442 12.759 5.708 1.00 95.43 N +ATOM 1483 CA ASN 105 -39.341 11.821 5.983 1.00 95.43 C +ATOM 1484 C ASN 105 -39.883 10.391 6.079 1.00 95.43 C +ATOM 1485 O ASN 105 -40.984 10.194 6.591 1.00 95.43 O +ATOM 1486 CB ASN 105 -38.650 12.172 7.319 1.00 95.43 C +ATOM 1487 CG ASN 105 -37.908 13.509 7.324 1.00 95.43 C +ATOM 1488 ND2 ASN 105 -38.064 14.278 8.401 1.00 95.43 N +ATOM 1489 OD1 ASN 105 -37.197 13.841 6.378 1.00 95.43 O +ATOM 1496 N ASN 106 -39.072 9.417 5.624 1.00 92.79 N +ATOM 1497 CA ASN 106 -39.361 7.978 5.703 1.00 92.79 C +ATOM 1498 C ASN 106 -39.442 7.486 7.157 1.00 92.79 C +ATOM 1499 O ASN 106 -40.428 6.844 7.518 1.00 92.79 O +ATOM 1500 CB ASN 106 -38.280 7.164 4.947 1.00 92.79 C +ATOM 1501 CG ASN 106 -38.242 7.409 3.436 1.00 92.79 C +ATOM 1502 ND2 ASN 106 -37.107 7.894 2.928 1.00 92.79 N +ATOM 1503 OD1 ASN 106 -39.212 7.137 2.735 1.00 92.79 O +ATOM 1510 N LEU 107 -38.396 7.803 7.944 1.00 92.32 N +ATOM 1511 CA LEU 107 -38.160 7.383 9.331 1.00 92.32 C +ATOM 1512 C LEU 107 -38.098 5.847 9.483 1.00 92.32 C +ATOM 1513 O LEU 107 -37.694 5.155 8.546 1.00 92.32 O +ATOM 1514 CB LEU 107 -39.165 8.036 10.315 1.00 92.32 C +ATOM 1515 CG LEU 107 -39.347 9.558 10.195 1.00 92.32 C +ATOM 1516 CD1 LEU 107 -40.420 10.010 11.195 1.00 92.32 C +ATOM 1517 CD2 LEU 107 -38.024 10.315 10.415 1.00 92.32 C +ATOM 1529 N GLY 108 -38.475 5.352 10.675 1.00 91.35 N +ATOM 1530 CA GLY 108 -38.431 3.945 11.056 1.00 91.35 C +ATOM 1531 C GLY 108 -36.984 3.467 11.205 1.00 91.35 C +ATOM 1532 O GLY 108 -36.060 4.258 11.404 1.00 91.35 O +ATOM 1536 N SER 109 -36.817 2.145 11.099 1.00 92.27 N +ATOM 1537 CA SER 109 -35.530 1.465 11.021 1.00 92.27 C +ATOM 1538 C SER 109 -35.384 0.773 9.657 1.00 92.27 C +ATOM 1539 O SER 109 -36.382 0.418 9.022 1.00 92.27 O +ATOM 1540 CB SER 109 -35.427 0.472 12.199 1.00 92.27 C +ATOM 1541 OG SER 109 -36.330 -0.613 12.079 1.00 92.27 O +ATOM 1547 N THR 110 -34.119 0.556 9.276 1.00 93.61 N +ATOM 1548 CA THR 110 -33.715 -0.378 8.233 1.00 93.61 C +ATOM 1549 C THR 110 -32.696 -1.348 8.856 1.00 93.61 C +ATOM 1550 O THR 110 -31.904 -0.952 9.716 1.00 93.61 O +ATOM 1551 CB THR 110 -33.075 0.333 7.005 1.00 93.61 C +ATOM 1552 CG2 THR 110 -33.978 1.400 6.368 1.00 93.61 C +ATOM 1553 OG1 THR 110 -31.806 0.903 7.273 1.00 93.61 O +ATOM 1561 N ASP 111 -32.759 -2.610 8.417 1.00 93.72 N +ATOM 1562 CA ASP 111 -31.898 -3.687 8.888 1.00 93.72 C +ATOM 1563 C ASP 111 -31.877 -4.738 7.774 1.00 93.72 C +ATOM 1564 O ASP 111 -32.942 -5.184 7.342 1.00 93.72 O +ATOM 1565 CB ASP 111 -32.378 -4.263 10.247 1.00 93.72 C +ATOM 1566 CG ASP 111 -31.407 -5.241 10.922 1.00 93.72 C +ATOM 1567 OD1 ASP 111 -30.259 -5.376 10.448 1.00 93.72 O +ATOM 1568 OD2 ASP 111 -31.836 -5.821 11.943 1.00 93.72 O +ATOM 1573 N GLY 112 -30.664 -5.082 7.312 1.00 94.53 N +ATOM 1574 CA GLY 112 -30.444 -5.954 6.164 1.00 94.53 C +ATOM 1575 C GLY 112 -30.942 -5.257 4.890 1.00 94.53 C +ATOM 1576 O GLY 112 -30.587 -4.109 4.615 1.00 94.53 O +ATOM 1580 N TYR 113 -31.775 -5.976 4.126 1.00 96.57 N +ATOM 1581 CA TYR 113 -32.394 -5.500 2.887 1.00 96.57 C +ATOM 1582 C TYR 113 -33.818 -4.947 3.089 1.00 96.57 C +ATOM 1583 O TYR 113 -34.420 -4.513 2.108 1.00 96.57 O +ATOM 1584 CB TYR 113 -32.383 -6.654 1.864 1.00 96.57 C +ATOM 1585 CG TYR 113 -31.025 -7.292 1.605 1.00 96.57 C +ATOM 1586 CD1 TYR 113 -29.874 -6.492 1.441 1.00 96.57 C +ATOM 1587 CD2 TYR 113 -30.909 -8.697 1.518 1.00 96.57 C +ATOM 1588 CE1 TYR 113 -28.627 -7.085 1.176 1.00 96.57 C +ATOM 1589 CE2 TYR 113 -29.661 -9.291 1.246 1.00 96.57 C +ATOM 1590 OH TYR 113 -27.313 -9.053 0.803 1.00 96.57 O +ATOM 1591 CZ TYR 113 -28.521 -8.483 1.072 1.00 96.57 C +ATOM 1601 N LEU 114 -34.332 -4.961 4.332 1.00 97.55 N +ATOM 1602 CA LEU 114 -35.693 -4.549 4.674 1.00 97.55 C +ATOM 1603 C LEU 114 -35.711 -3.153 5.320 1.00 97.55 C +ATOM 1604 O LEU 114 -34.820 -2.827 6.105 1.00 97.55 O +ATOM 1605 CB LEU 114 -36.287 -5.621 5.620 1.00 97.55 C +ATOM 1606 CG LEU 114 -37.752 -5.411 6.070 1.00 97.55 C +ATOM 1607 CD1 LEU 114 -38.721 -5.279 4.883 1.00 97.55 C +ATOM 1608 CD2 LEU 114 -38.195 -6.528 7.032 1.00 97.55 C +ATOM 1620 N ALA 115 -36.780 -2.399 5.019 1.00 97.63 N +ATOM 1621 CA ALA 115 -37.191 -1.178 5.710 1.00 97.63 C +ATOM 1622 C ALA 115 -38.594 -1.382 6.302 1.00 97.63 C +ATOM 1623 O ALA 115 -39.377 -2.168 5.766 1.00 97.63 O +ATOM 1624 CB ALA 115 -37.206 -0.017 4.706 1.00 97.63 C +ATOM 1630 N THR 116 -38.886 -0.664 7.396 1.00 97.30 N +ATOM 1631 CA THR 116 -40.143 -0.784 8.143 1.00 97.30 C +ATOM 1632 C THR 116 -41.153 0.339 7.820 1.00 97.30 C +ATOM 1633 O THR 116 -42.352 0.090 7.942 1.00 97.30 O +ATOM 1634 CB THR 116 -39.874 -0.755 9.672 1.00 97.30 C +ATOM 1635 CG2 THR 116 -38.986 -1.918 10.142 1.00 97.30 C +ATOM 1636 OG1 THR 116 -39.260 0.457 10.072 1.00 97.30 O +ATOM 1644 N HIS 117 -40.676 1.532 7.419 1.00 98.15 N +ATOM 1645 CA HIS 117 -41.499 2.709 7.114 1.00 98.15 C +ATOM 1646 C HIS 117 -41.074 3.334 5.776 1.00 98.15 C +ATOM 1647 O HIS 117 -39.965 3.083 5.306 1.00 98.15 O +ATOM 1648 CB HIS 117 -41.353 3.773 8.228 1.00 98.15 C +ATOM 1649 CG HIS 117 -41.957 3.467 9.576 1.00 98.15 C +ATOM 1650 CD2 HIS 117 -42.933 4.123 10.294 1.00 98.15 C +ATOM 1651 ND1 HIS 117 -41.551 2.418 10.382 1.00 98.15 N +ATOM 1652 CE1 HIS 117 -42.268 2.479 11.506 1.00 98.15 C +ATOM 1653 NE2 HIS 117 -43.121 3.495 11.526 1.00 98.15 N +ATOM 1661 N SER 118 -41.957 4.185 5.227 1.00 98.54 N +ATOM 1662 CA SER 118 -41.712 5.025 4.055 1.00 98.54 C +ATOM 1663 C SER 118 -42.673 6.228 4.068 1.00 98.54 C +ATOM 1664 O SER 118 -43.717 6.171 4.721 1.00 98.54 O +ATOM 1665 CB SER 118 -41.863 4.184 2.767 1.00 98.54 C +ATOM 1666 OG SER 118 -41.579 4.927 1.601 1.00 98.54 O +ATOM 1672 N GLN 119 -42.313 7.278 3.310 1.00 98.28 N +ATOM 1673 CA GLN 119 -43.172 8.431 3.033 1.00 98.28 C +ATOM 1674 C GLN 119 -43.658 8.489 1.580 1.00 98.28 C +ATOM 1675 O GLN 119 -44.434 9.390 1.282 1.00 98.28 O +ATOM 1676 CB GLN 119 -42.470 9.745 3.461 1.00 98.28 C +ATOM 1677 CG GLN 119 -41.147 10.122 2.750 1.00 98.28 C +ATOM 1678 CD GLN 119 -41.299 10.726 1.351 1.00 98.28 C +ATOM 1679 NE2 GLN 119 -40.520 10.228 0.388 1.00 98.28 N +ATOM 1680 OE1 GLN 119 -42.095 11.639 1.143 1.00 98.28 O +ATOM 1689 N ILE 120 -43.193 7.596 0.686 1.00 98.60 N +ATOM 1690 CA ILE 120 -43.424 7.725 -0.759 1.00 98.60 C +ATOM 1691 C ILE 120 -44.914 7.733 -1.173 1.00 98.60 C +ATOM 1692 O ILE 120 -45.278 8.500 -2.061 1.00 98.60 O +ATOM 1693 CB ILE 120 -42.657 6.649 -1.580 1.00 98.60 C +ATOM 1694 CG1 ILE 120 -42.608 7.016 -3.083 1.00 98.60 C +ATOM 1695 CG2 ILE 120 -43.179 5.209 -1.369 1.00 98.60 C +ATOM 1696 CD1 ILE 120 -41.640 6.161 -3.901 1.00 98.60 C +ATOM 1708 N ALA 121 -45.747 6.927 -0.497 1.00 98.48 N +ATOM 1709 CA ALA 121 -47.173 6.795 -0.785 1.00 98.48 C +ATOM 1710 C ALA 121 -48.063 7.840 -0.088 1.00 98.48 C +ATOM 1711 O ALA 121 -49.257 7.851 -0.378 1.00 98.48 O +ATOM 1712 CB ALA 121 -47.609 5.374 -0.396 1.00 98.48 C +ATOM 1718 N THR 122 -47.516 8.656 0.831 1.00 98.54 N +ATOM 1719 CA THR 122 -48.311 9.442 1.787 1.00 98.54 C +ATOM 1720 C THR 122 -47.736 10.846 2.106 1.00 98.54 C +ATOM 1721 O THR 122 -48.443 11.620 2.748 1.00 98.54 O +ATOM 1722 CB THR 122 -48.494 8.646 3.115 1.00 98.54 C +ATOM 1723 CG2 THR 122 -49.380 7.397 2.973 1.00 98.54 C +ATOM 1724 OG1 THR 122 -47.251 8.195 3.612 1.00 98.54 O +ATOM 1732 N LYS 123 -46.508 11.182 1.664 1.00 98.62 N +ATOM 1733 CA LYS 123 -45.766 12.425 1.964 1.00 98.62 C +ATOM 1734 C LYS 123 -45.508 12.689 3.471 1.00 98.62 C +ATOM 1735 O LYS 123 -45.283 13.828 3.878 1.00 98.62 O +ATOM 1736 CB LYS 123 -46.350 13.642 1.194 1.00 98.62 C +ATOM 1737 CG LYS 123 -45.800 13.803 -0.234 1.00 98.62 C +ATOM 1738 CD LYS 123 -46.217 15.144 -0.862 1.00 98.62 C +ATOM 1739 CE LYS 123 -45.586 15.389 -2.240 1.00 98.62 C +ATOM 1740 NZ LYS 123 -45.967 16.705 -2.780 1.00 98.62 N +ATOM 1754 N THR 124 -45.507 11.613 4.266 1.00 98.41 N +ATOM 1755 CA THR 124 -45.274 11.594 5.707 1.00 98.41 C +ATOM 1756 C THR 124 -45.010 10.141 6.130 1.00 98.41 C +ATOM 1757 O THR 124 -45.517 9.232 5.478 1.00 98.41 O +ATOM 1758 CB THR 124 -46.484 12.167 6.503 1.00 98.41 C +ATOM 1759 CG2 THR 124 -47.820 11.420 6.323 1.00 98.41 C +ATOM 1760 OG1 THR 124 -46.230 12.174 7.894 1.00 98.41 O +ATOM 1768 N SER 125 -44.226 9.940 7.200 1.00 98.14 N +ATOM 1769 CA SER 125 -43.870 8.624 7.730 1.00 98.14 C +ATOM 1770 C SER 125 -45.100 7.767 8.075 1.00 98.14 C +ATOM 1771 O SER 125 -45.982 8.221 8.806 1.00 98.14 O +ATOM 1772 CB SER 125 -42.976 8.805 8.962 1.00 98.14 C +ATOM 1773 OG SER 125 -42.540 7.558 9.466 1.00 98.14 O +ATOM 1779 N LYS 126 -45.110 6.544 7.532 1.00 97.99 N +ATOM 1780 CA LYS 126 -46.171 5.565 7.717 1.00 97.99 C +ATOM 1781 C LYS 126 -45.518 4.174 7.599 1.00 97.99 C +ATOM 1782 O LYS 126 -44.741 3.980 6.660 1.00 97.99 O +ATOM 1783 CB LYS 126 -47.237 5.796 6.616 1.00 97.99 C +ATOM 1784 CG LYS 126 -48.579 5.078 6.855 1.00 97.99 C +ATOM 1785 CD LYS 126 -49.339 5.623 8.077 1.00 97.99 C +ATOM 1786 CE LYS 126 -50.751 5.045 8.228 1.00 97.99 C +ATOM 1787 NZ LYS 126 -51.355 5.485 9.495 1.00 97.99 N +ATOM 1801 N PRO 127 -45.823 3.226 8.522 1.00 98.15 N +ATOM 1802 CA PRO 127 -45.415 1.814 8.369 1.00 98.15 C +ATOM 1803 C PRO 127 -45.850 1.204 7.027 1.00 98.15 C +ATOM 1804 O PRO 127 -46.982 1.440 6.602 1.00 98.15 O +ATOM 1805 CB PRO 127 -46.105 1.090 9.539 1.00 98.15 C +ATOM 1806 CG PRO 127 -46.358 2.166 10.575 1.00 98.15 C +ATOM 1807 CD PRO 127 -46.625 3.406 9.734 1.00 98.15 C +ATOM 1815 N LEU 128 -44.953 0.429 6.395 1.00 98.40 N +ATOM 1816 CA LEU 128 -45.235 -0.296 5.150 1.00 98.40 C +ATOM 1817 C LEU 128 -46.389 -1.306 5.294 1.00 98.40 C +ATOM 1818 O LEU 128 -47.132 -1.500 4.336 1.00 98.40 O +ATOM 1819 CB LEU 128 -43.959 -1.006 4.643 1.00 98.40 C +ATOM 1820 CG LEU 128 -42.804 -0.060 4.253 1.00 98.40 C +ATOM 1821 CD1 LEU 128 -41.574 -0.849 3.771 1.00 98.40 C +ATOM 1822 CD2 LEU 128 -43.231 0.992 3.218 1.00 98.40 C +ATOM 1834 N LEU 129 -46.542 -1.878 6.500 1.00 98.49 N +ATOM 1835 CA LEU 129 -47.619 -2.786 6.884 1.00 98.49 C +ATOM 1836 C LEU 129 -48.997 -2.097 6.996 1.00 98.49 C +ATOM 1837 O LEU 129 -50.005 -2.771 6.792 1.00 98.49 O +ATOM 1838 CB LEU 129 -47.196 -3.470 8.206 1.00 98.49 C +ATOM 1839 CG LEU 129 -48.008 -4.713 8.628 1.00 98.49 C +ATOM 1840 CD1 LEU 129 -47.909 -5.855 7.592 1.00 98.49 C +ATOM 1841 CD2 LEU 129 -47.564 -5.185 10.026 1.00 98.49 C +ATOM 1853 N GLU 130 -49.018 -0.782 7.291 1.00 98.64 N +ATOM 1854 CA GLU 130 -50.235 0.030 7.403 1.00 98.64 C +ATOM 1855 C GLU 130 -50.597 0.798 6.116 1.00 98.64 C +ATOM 1856 O GLU 130 -51.726 1.282 6.020 1.00 98.64 O +ATOM 1857 CB GLU 130 -50.113 1.015 8.581 1.00 98.64 C +ATOM 1858 CG GLU 130 -50.039 0.330 9.960 1.00 98.64 C +ATOM 1859 CD GLU 130 -50.139 1.315 11.129 1.00 98.64 C +ATOM 1860 OE1 GLU 130 -50.440 0.833 12.243 1.00 98.64 O +ATOM 1861 OE2 GLU 130 -49.982 2.535 10.897 1.00 98.64 O +ATOM 1868 N THR 131 -49.654 0.913 5.165 1.00 98.77 N +ATOM 1869 CA THR 131 -49.830 1.636 3.903 1.00 98.77 C +ATOM 1870 C THR 131 -50.689 0.819 2.913 1.00 98.77 C +ATOM 1871 O THR 131 -50.389 -0.350 2.670 1.00 98.77 O +ATOM 1872 CB THR 131 -48.451 1.940 3.254 1.00 98.77 C +ATOM 1873 CG2 THR 131 -48.491 2.600 1.863 1.00 98.77 C +ATOM 1874 OG1 THR 131 -47.728 2.811 4.103 1.00 98.77 O +ATOM 1882 N SER 132 -51.732 1.464 2.364 1.00 98.62 N +ATOM 1883 CA SER 132 -52.734 0.878 1.464 1.00 98.62 C +ATOM 1884 C SER 132 -52.382 0.997 -0.039 1.00 98.62 C +ATOM 1885 O SER 132 -53.286 1.038 -0.870 1.00 98.62 O +ATOM 1886 CB SER 132 -54.117 1.459 1.835 1.00 98.62 C +ATOM 1887 OG SER 132 -54.203 2.843 1.554 1.00 98.62 O +ATOM 1893 N GLN 133 -51.081 1.006 -0.365 1.00 98.73 N +ATOM 1894 CA GLN 133 -50.528 0.928 -1.720 1.00 98.73 C +ATOM 1895 C GLN 133 -49.315 -0.010 -1.701 1.00 98.73 C +ATOM 1896 O GLN 133 -48.632 -0.080 -0.677 1.00 98.73 O +ATOM 1897 CB GLN 133 -50.079 2.334 -2.194 1.00 98.73 C +ATOM 1898 CG GLN 133 -51.198 3.326 -2.575 1.00 98.73 C +ATOM 1899 CD GLN 133 -51.874 2.991 -3.909 1.00 98.73 C +ATOM 1900 NE2 GLN 133 -51.636 3.809 -4.938 1.00 98.73 N +ATOM 1901 OE1 GLN 133 -52.621 2.022 -4.012 1.00 98.73 O +ATOM 1910 N THR 134 -49.026 -0.674 -2.835 1.00 98.86 N +ATOM 1911 CA THR 134 -47.803 -1.466 -3.006 1.00 98.86 C +ATOM 1912 C THR 134 -46.557 -0.558 -2.978 1.00 98.86 C +ATOM 1913 O THR 134 -46.396 0.282 -3.867 1.00 98.86 O +ATOM 1914 CB THR 134 -47.764 -2.253 -4.343 1.00 98.86 C +ATOM 1915 CG2 THR 134 -46.574 -3.226 -4.460 1.00 98.86 C +ATOM 1916 OG1 THR 134 -48.939 -3.007 -4.512 1.00 98.86 O +ATOM 1924 N VAL 135 -45.723 -0.745 -1.944 1.00 98.90 N +ATOM 1925 CA VAL 135 -44.469 -0.022 -1.766 1.00 98.90 C +ATOM 1926 C VAL 135 -43.352 -1.039 -1.499 1.00 98.90 C +ATOM 1927 O VAL 135 -43.480 -1.865 -0.594 1.00 98.90 O +ATOM 1928 CB VAL 135 -44.524 1.007 -0.596 1.00 98.90 C +ATOM 1929 CG1 VAL 135 -43.159 1.643 -0.246 1.00 98.90 C +ATOM 1930 CG2 VAL 135 -45.531 2.134 -0.885 1.00 98.90 C +ATOM 1940 N SER 136 -42.274 -0.919 -2.285 1.00 98.88 N +ATOM 1941 CA SER 136 -41.022 -1.656 -2.121 1.00 98.88 C +ATOM 1942 C SER 136 -39.941 -0.638 -1.725 1.00 98.88 C +ATOM 1943 O SER 136 -40.007 0.512 -2.162 1.00 98.88 O +ATOM 1944 CB SER 136 -40.647 -2.323 -3.461 1.00 98.88 C +ATOM 1945 OG SER 136 -41.666 -3.192 -3.916 1.00 98.88 O +ATOM 1951 N VAL 137 -38.959 -1.071 -0.920 1.00 98.82 N +ATOM 1952 CA VAL 137 -37.826 -0.234 -0.523 1.00 98.82 C +ATOM 1953 C VAL 137 -36.531 -1.045 -0.664 1.00 98.82 C +ATOM 1954 O VAL 137 -36.430 -2.147 -0.125 1.00 98.82 O +ATOM 1955 CB VAL 137 -37.932 0.283 0.943 1.00 98.82 C +ATOM 1956 CG1 VAL 137 -36.722 1.148 1.366 1.00 98.82 C +ATOM 1957 CG2 VAL 137 -39.233 1.073 1.187 1.00 98.82 C +ATOM 1967 N ILE 138 -35.567 -0.446 -1.374 1.00 98.83 N +ATOM 1968 CA ILE 138 -34.216 -0.954 -1.576 1.00 98.83 C +ATOM 1969 C ILE 138 -33.285 -0.135 -0.663 1.00 98.83 C +ATOM 1970 O ILE 138 -33.246 1.090 -0.784 1.00 98.83 O +ATOM 1971 CB ILE 138 -33.785 -0.736 -3.057 1.00 98.83 C +ATOM 1972 CG1 ILE 138 -34.689 -1.486 -4.063 1.00 98.83 C +ATOM 1973 CG2 ILE 138 -32.302 -1.034 -3.354 1.00 98.83 C +ATOM 1974 CD1 ILE 138 -34.914 -0.684 -5.353 1.00 98.83 C +ATOM 1986 N THR 139 -32.564 -0.818 0.237 1.00 98.53 N +ATOM 1987 CA THR 139 -31.630 -0.197 1.183 1.00 98.53 C +ATOM 1988 C THR 139 -30.244 0.054 0.544 1.00 98.53 C +ATOM 1989 O THR 139 -29.947 -0.483 -0.524 1.00 98.53 O +ATOM 1990 CB THR 139 -31.446 -1.101 2.438 1.00 98.53 C +ATOM 1991 CG2 THR 139 -32.764 -1.458 3.145 1.00 98.53 C +ATOM 1992 OG1 THR 139 -30.709 -2.282 2.168 1.00 98.53 O +ATOM 2000 N ARG 140 -29.411 0.848 1.244 1.00 98.10 N +ATOM 2001 CA ARG 140 -27.984 1.083 0.969 1.00 98.10 C +ATOM 2002 C ARG 140 -27.191 -0.225 0.799 1.00 98.10 C +ATOM 2003 O ARG 140 -26.461 -0.368 -0.180 1.00 98.10 O +ATOM 2004 CB ARG 140 -27.417 1.945 2.125 1.00 98.10 C +ATOM 2005 CG ARG 140 -25.907 2.275 2.140 1.00 98.10 C +ATOM 2006 CD ARG 140 -25.417 3.152 0.975 1.00 98.10 C +ATOM 2007 NE ARG 140 -25.018 2.378 -0.211 1.00 98.10 N +ATOM 2008 NH1 ARG 140 -25.659 3.950 -1.818 1.00 98.10 N +ATOM 2009 NH2 ARG 140 -24.506 2.073 -2.453 1.00 98.10 N +ATOM 2010 CZ ARG 140 -25.068 2.801 -1.486 1.00 98.10 C +ATOM 2024 N GLU 141 -27.395 -1.159 1.743 1.00 97.78 N +ATOM 2025 CA GLU 141 -26.770 -2.477 1.792 1.00 97.78 C +ATOM 2026 C GLU 141 -27.123 -3.366 0.584 1.00 97.78 C +ATOM 2027 O GLU 141 -26.242 -4.068 0.091 1.00 97.78 O +ATOM 2028 CB GLU 141 -27.146 -3.130 3.138 1.00 97.78 C +ATOM 2029 CG GLU 141 -26.457 -4.477 3.424 1.00 97.78 C +ATOM 2030 CD GLU 141 -26.910 -5.094 4.747 1.00 97.78 C +ATOM 2031 OE1 GLU 141 -27.135 -6.323 4.743 1.00 97.78 O +ATOM 2032 OE2 GLU 141 -27.030 -4.342 5.738 1.00 97.78 O +ATOM 2039 N GLN 142 -28.377 -3.288 0.099 1.00 98.47 N +ATOM 2040 CA GLN 142 -28.842 -4.003 -1.092 1.00 98.47 C +ATOM 2041 C GLN 142 -28.157 -3.513 -2.382 1.00 98.47 C +ATOM 2042 O GLN 142 -27.800 -4.348 -3.210 1.00 98.47 O +ATOM 2043 CB GLN 142 -30.383 -3.934 -1.180 1.00 98.47 C +ATOM 2044 CG GLN 142 -30.989 -4.785 -2.320 1.00 98.47 C +ATOM 2045 CD GLN 142 -32.520 -4.818 -2.315 1.00 98.47 C +ATOM 2046 NE2 GLN 142 -33.114 -5.242 -3.432 1.00 98.47 N +ATOM 2047 OE1 GLN 142 -33.164 -4.484 -1.323 1.00 98.47 O +ATOM 2056 N ILE 143 -27.949 -2.189 -2.514 1.00 98.77 N +ATOM 2057 CA ILE 143 -27.253 -1.563 -3.647 1.00 98.77 C +ATOM 2058 C ILE 143 -25.765 -1.978 -3.714 1.00 98.77 C +ATOM 2059 O ILE 143 -25.280 -2.272 -4.806 1.00 98.77 O +ATOM 2060 CB ILE 143 -27.353 -0.004 -3.605 1.00 98.77 C +ATOM 2061 CG1 ILE 143 -28.823 0.470 -3.672 1.00 98.77 C +ATOM 2062 CG2 ILE 143 -26.534 0.733 -4.691 1.00 98.77 C +ATOM 2063 CD1 ILE 143 -29.043 1.914 -3.193 1.00 98.77 C +ATOM 2075 N ASP 144 -25.097 -2.027 -2.547 1.00 98.34 N +ATOM 2076 CA ASP 144 -23.706 -2.466 -2.374 1.00 98.34 C +ATOM 2077 C ASP 144 -23.488 -3.954 -2.689 1.00 98.34 C +ATOM 2078 O ASP 144 -22.593 -4.270 -3.474 1.00 98.34 O +ATOM 2079 CB ASP 144 -23.134 -2.120 -0.975 1.00 98.34 C +ATOM 2080 CG ASP 144 -23.166 -0.625 -0.648 1.00 98.34 C +ATOM 2081 OD1 ASP 144 -22.789 0.157 -1.546 1.00 98.34 O +ATOM 2082 OD2 ASP 144 -23.486 -0.280 0.510 1.00 98.34 O +ATOM 2087 N ASP 145 -24.305 -4.832 -2.084 1.00 98.45 N +ATOM 2088 CA ASP 145 -24.218 -6.290 -2.225 1.00 98.45 C +ATOM 2089 C ASP 145 -24.543 -6.808 -3.638 1.00 98.45 C +ATOM 2090 O ASP 145 -23.820 -7.676 -4.125 1.00 98.45 O +ATOM 2091 CB ASP 145 -25.013 -7.050 -1.134 1.00 98.45 C +ATOM 2092 CG ASP 145 -24.517 -6.824 0.303 1.00 98.45 C +ATOM 2093 OD1 ASP 145 -23.374 -6.345 0.472 1.00 98.45 O +ATOM 2094 OD2 ASP 145 -25.269 -7.227 1.217 1.00 98.45 O +ATOM 2099 N THR 146 -25.566 -6.244 -4.300 1.00 98.43 N +ATOM 2100 CA THR 146 -25.887 -6.554 -5.702 1.00 98.43 C +ATOM 2101 C THR 146 -24.994 -5.795 -6.718 1.00 98.43 C +ATOM 2102 O THR 146 -25.091 -6.081 -7.911 1.00 98.43 O +ATOM 2103 CB THR 146 -27.375 -6.254 -6.031 1.00 98.43 C +ATOM 2104 CG2 THR 146 -28.364 -7.018 -5.133 1.00 98.43 C +ATOM 2105 OG1 THR 146 -27.663 -4.868 -5.990 1.00 98.43 O +ATOM 2113 N ALA 147 -24.143 -4.864 -6.241 1.00 98.45 N +ATOM 2114 CA ALA 147 -23.181 -4.060 -7.009 1.00 98.45 C +ATOM 2115 C ALA 147 -23.831 -3.264 -8.157 1.00 98.45 C +ATOM 2116 O ALA 147 -23.352 -3.304 -9.292 1.00 98.45 O +ATOM 2117 CB ALA 147 -22.009 -4.943 -7.477 1.00 98.45 C +ATOM 2123 N SER 148 -24.940 -2.587 -7.827 1.00 98.26 N +ATOM 2124 CA SER 148 -25.782 -1.849 -8.760 1.00 98.26 C +ATOM 2125 C SER 148 -25.170 -0.477 -9.081 1.00 98.26 C +ATOM 2126 O SER 148 -25.138 0.395 -8.212 1.00 98.26 O +ATOM 2127 CB SER 148 -27.188 -1.727 -8.153 1.00 98.26 C +ATOM 2128 OG SER 148 -27.834 -2.984 -8.218 1.00 98.26 O +ATOM 2134 N LYS 149 -24.674 -0.337 -10.321 1.00 96.32 N +ATOM 2135 CA LYS 149 -23.920 0.825 -10.801 1.00 96.32 C +ATOM 2136 C LYS 149 -24.802 2.044 -11.136 1.00 96.32 C +ATOM 2137 O LYS 149 -24.288 3.163 -11.149 1.00 96.32 O +ATOM 2138 CB LYS 149 -23.093 0.420 -12.044 1.00 96.32 C +ATOM 2139 CG LYS 149 -22.185 -0.816 -11.877 1.00 96.32 C +ATOM 2140 CD LYS 149 -21.260 -0.768 -10.648 1.00 96.32 C +ATOM 2141 CE LYS 149 -20.153 -1.835 -10.661 1.00 96.32 C +ATOM 2142 NZ LYS 149 -20.686 -3.206 -10.761 1.00 96.32 N +ATOM 2156 N THR 150 -26.096 1.803 -11.403 1.00 98.83 N +ATOM 2157 CA THR 150 -27.111 2.815 -11.698 1.00 98.83 C +ATOM 2158 C THR 150 -28.370 2.542 -10.849 1.00 98.83 C +ATOM 2159 O THR 150 -28.504 1.465 -10.264 1.00 98.83 O +ATOM 2160 CB THR 150 -27.507 2.797 -13.203 1.00 98.83 C +ATOM 2161 CG2 THR 150 -26.328 2.943 -14.175 1.00 98.83 C +ATOM 2162 OG1 THR 150 -28.271 1.664 -13.573 1.00 98.83 O +ATOM 2170 N VAL 151 -29.273 3.536 -10.794 1.00 98.77 N +ATOM 2171 CA VAL 151 -30.573 3.421 -10.125 1.00 98.77 C +ATOM 2172 C VAL 151 -31.503 2.415 -10.832 1.00 98.77 C +ATOM 2173 O VAL 151 -32.225 1.708 -10.137 1.00 98.77 O +ATOM 2174 CB VAL 151 -31.257 4.810 -9.978 1.00 98.77 C +ATOM 2175 CG1 VAL 151 -32.777 4.813 -9.703 1.00 98.77 C +ATOM 2176 CG2 VAL 151 -30.526 5.646 -8.914 1.00 98.77 C +ATOM 2186 N GLN 152 -31.406 2.306 -12.170 1.00 98.65 N +ATOM 2187 CA GLN 152 -32.020 1.249 -12.982 1.00 98.65 C +ATOM 2188 C GLN 152 -31.587 -0.175 -12.573 1.00 98.65 C +ATOM 2189 O GLN 152 -32.446 -1.052 -12.481 1.00 98.65 O +ATOM 2190 CB GLN 152 -31.790 1.578 -14.478 1.00 98.65 C +ATOM 2191 CG GLN 152 -32.053 0.454 -15.509 1.00 98.65 C +ATOM 2192 CD GLN 152 -31.711 0.883 -16.942 1.00 98.65 C +ATOM 2193 NE2 GLN 152 -31.433 -0.078 -17.822 1.00 98.65 N +ATOM 2194 OE1 GLN 152 -31.701 2.066 -17.267 1.00 98.65 O +ATOM 2203 N GLN 153 -30.285 -0.365 -12.288 1.00 98.76 N +ATOM 2204 CA GLN 153 -29.726 -1.624 -11.786 1.00 98.76 C +ATOM 2205 C GLN 153 -30.181 -1.996 -10.362 1.00 98.76 C +ATOM 2206 O GLN 153 -30.280 -3.185 -10.064 1.00 98.76 O +ATOM 2207 CB GLN 153 -28.186 -1.627 -11.894 1.00 98.76 C +ATOM 2208 CG GLN 153 -27.670 -1.796 -13.338 1.00 98.76 C +ATOM 2209 CD GLN 153 -26.142 -1.879 -13.423 1.00 98.76 C +ATOM 2210 NE2 GLN 153 -25.576 -1.499 -14.570 1.00 98.76 N +ATOM 2211 OE1 GLN 153 -25.475 -2.310 -12.484 1.00 98.76 O +ATOM 2220 N ALA 154 -30.471 -1.004 -9.506 1.00 98.80 N +ATOM 2221 CA ALA 154 -30.924 -1.227 -8.128 1.00 98.80 C +ATOM 2222 C ALA 154 -32.329 -1.857 -8.015 1.00 98.80 C +ATOM 2223 O ALA 154 -32.639 -2.437 -6.974 1.00 98.80 O +ATOM 2224 CB ALA 154 -30.847 0.099 -7.365 1.00 98.80 C +ATOM 2230 N MET 155 -33.129 -1.754 -9.089 1.00 98.68 N +ATOM 2231 CA MET 155 -34.502 -2.253 -9.190 1.00 98.68 C +ATOM 2232 C MET 155 -34.597 -3.681 -9.772 1.00 98.68 C +ATOM 2233 O MET 155 -35.714 -4.168 -9.945 1.00 98.68 O +ATOM 2234 CB MET 155 -35.335 -1.288 -10.063 1.00 98.68 C +ATOM 2235 CG MET 155 -35.209 0.217 -9.761 1.00 98.68 C +ATOM 2236 SD MET 155 -36.138 0.864 -8.352 1.00 98.68 S +ATOM 2237 CE MET 155 -37.819 0.639 -8.976 1.00 98.68 C +ATOM 2247 N ARG 156 -33.454 -4.320 -10.086 1.00 98.71 N +ATOM 2248 CA ARG 156 -33.349 -5.640 -10.728 1.00 98.71 C +ATOM 2249 C ARG 156 -33.967 -6.822 -9.948 1.00 98.71 C +ATOM 2250 O ARG 156 -34.208 -7.858 -10.568 1.00 98.71 O +ATOM 2251 CB ARG 156 -31.863 -5.922 -11.035 1.00 98.71 C +ATOM 2252 CG ARG 156 -31.333 -5.192 -12.281 1.00 98.71 C +ATOM 2253 CD ARG 156 -29.863 -5.513 -12.617 1.00 98.71 C +ATOM 2254 NE ARG 156 -28.965 -5.210 -11.496 1.00 98.71 N +ATOM 2255 NH1 ARG 156 -27.017 -6.163 -12.373 1.00 98.71 N +ATOM 2256 NH2 ARG 156 -26.993 -5.137 -10.298 1.00 98.71 N +ATOM 2257 CZ ARG 156 -27.660 -5.507 -11.398 1.00 98.71 C +ATOM 2271 N TYR 157 -34.215 -6.659 -8.637 1.00 98.82 N +ATOM 2272 CA TYR 157 -34.844 -7.667 -7.776 1.00 98.82 C +ATOM 2273 C TYR 157 -36.217 -7.220 -7.226 1.00 98.82 C +ATOM 2274 O TYR 157 -36.837 -7.987 -6.488 1.00 98.82 O +ATOM 2275 CB TYR 157 -33.867 -8.049 -6.644 1.00 98.82 C +ATOM 2276 CG TYR 157 -32.673 -8.886 -7.078 1.00 98.82 C +ATOM 2277 CD1 TYR 157 -32.777 -10.293 -7.087 1.00 98.82 C +ATOM 2278 CD2 TYR 157 -31.464 -8.277 -7.480 1.00 98.82 C +ATOM 2279 CE1 TYR 157 -31.710 -11.083 -7.550 1.00 98.82 C +ATOM 2280 CE2 TYR 157 -30.384 -9.070 -7.918 1.00 98.82 C +ATOM 2281 OH TYR 157 -29.502 -11.247 -8.456 1.00 98.82 O +ATOM 2282 CZ TYR 157 -30.515 -10.473 -7.973 1.00 98.82 C +ATOM 2292 N THR 158 -36.690 -6.018 -7.596 1.00 98.88 N +ATOM 2293 CA THR 158 -37.984 -5.467 -7.183 1.00 98.88 C +ATOM 2294 C THR 158 -39.088 -5.928 -8.170 1.00 98.88 C +ATOM 2295 O THR 158 -38.883 -5.788 -9.378 1.00 98.88 O +ATOM 2296 CB THR 158 -37.925 -3.915 -7.225 1.00 98.88 C +ATOM 2297 CG2 THR 158 -39.225 -3.188 -6.834 1.00 98.88 C +ATOM 2298 OG1 THR 158 -36.916 -3.473 -6.338 1.00 98.88 O +ATOM 2306 N PRO 159 -40.225 -6.476 -7.669 1.00 98.82 N +ATOM 2307 CA PRO 159 -41.337 -6.921 -8.536 1.00 98.82 C +ATOM 2308 C PRO 159 -42.043 -5.758 -9.246 1.00 98.82 C +ATOM 2309 O PRO 159 -42.055 -4.646 -8.723 1.00 98.82 O +ATOM 2310 CB PRO 159 -42.303 -7.632 -7.580 1.00 98.82 C +ATOM 2311 CG PRO 159 -42.053 -6.982 -6.229 1.00 98.82 C +ATOM 2312 CD PRO 159 -40.571 -6.619 -6.252 1.00 98.82 C +ATOM 2320 N GLY 160 -42.612 -6.044 -10.425 1.00 98.68 N +ATOM 2321 CA GLY 160 -43.344 -5.076 -11.238 1.00 98.68 C +ATOM 2322 C GLY 160 -42.430 -4.211 -12.112 1.00 98.68 C +ATOM 2323 O GLY 160 -42.952 -3.412 -12.887 1.00 98.68 O +ATOM 2327 N ILE 161 -41.097 -4.343 -11.986 1.00 98.88 N +ATOM 2328 CA ILE 161 -40.129 -3.492 -12.668 1.00 98.88 C +ATOM 2329 C ILE 161 -39.357 -4.319 -13.702 1.00 98.88 C +ATOM 2330 O ILE 161 -38.841 -5.387 -13.369 1.00 98.88 O +ATOM 2331 CB ILE 161 -39.069 -2.886 -11.703 1.00 98.88 C +ATOM 2332 CG1 ILE 161 -39.677 -2.304 -10.410 1.00 98.88 C +ATOM 2333 CG2 ILE 161 -38.198 -1.834 -12.426 1.00 98.88 C +ATOM 2334 CD1 ILE 161 -40.560 -1.068 -10.605 1.00 98.88 C +ATOM 2346 N PHE 162 -39.249 -3.763 -14.917 1.00 98.83 N +ATOM 2347 CA PHE 162 -38.359 -4.239 -15.966 1.00 98.83 C +ATOM 2348 C PHE 162 -37.264 -3.187 -16.216 1.00 98.83 C +ATOM 2349 O PHE 162 -37.567 -2.004 -16.366 1.00 98.83 O +ATOM 2350 CB PHE 162 -39.184 -4.624 -17.211 1.00 98.83 C +ATOM 2351 CG PHE 162 -38.359 -5.025 -18.417 1.00 98.83 C +ATOM 2352 CD1 PHE 162 -38.259 -4.174 -19.537 1.00 98.83 C +ATOM 2353 CD2 PHE 162 -37.591 -6.206 -18.376 1.00 98.83 C +ATOM 2354 CE1 PHE 162 -37.451 -4.533 -20.606 1.00 98.83 C +ATOM 2355 CE2 PHE 162 -36.770 -6.532 -19.443 1.00 98.83 C +ATOM 2356 CZ PHE 162 -36.706 -5.704 -20.553 1.00 98.83 C +ATOM 2366 N THR 163 -36.006 -3.652 -16.213 1.00 98.30 N +ATOM 2367 CA THR 163 -34.795 -2.825 -16.213 1.00 98.30 C +ATOM 2368 C THR 163 -33.917 -3.069 -17.466 1.00 98.30 C +ATOM 2369 O THR 163 -32.763 -2.642 -17.475 1.00 98.30 O +ATOM 2370 CB THR 163 -33.947 -3.132 -14.941 1.00 98.30 C +ATOM 2371 CG2 THR 163 -34.730 -3.030 -13.622 1.00 98.30 C +ATOM 2372 OG1 THR 163 -33.317 -4.400 -15.002 1.00 98.30 O +ATOM 2380 N GLY 164 -34.453 -3.764 -18.483 1.00 97.87 N +ATOM 2381 CA GLY 164 -33.715 -4.178 -19.678 1.00 97.87 C +ATOM 2382 C GLY 164 -34.130 -3.390 -20.930 1.00 97.87 C +ATOM 2383 O GLY 164 -33.832 -3.857 -22.029 1.00 97.87 O +ATOM 2387 N GLN 165 -34.835 -2.249 -20.787 1.00 98.35 N +ATOM 2388 CA GLN 165 -35.422 -1.461 -21.882 1.00 98.35 C +ATOM 2389 C GLN 165 -34.438 -1.013 -22.980 1.00 98.35 C +ATOM 2390 O GLN 165 -34.821 -1.027 -24.148 1.00 98.35 O +ATOM 2391 CB GLN 165 -36.236 -0.282 -21.305 1.00 98.35 C +ATOM 2392 CG GLN 165 -36.841 0.662 -22.373 1.00 98.35 C +ATOM 2393 CD GLN 165 -37.824 1.690 -21.820 1.00 98.35 C +ATOM 2394 NE2 GLN 165 -38.531 2.386 -22.710 1.00 98.35 N +ATOM 2395 OE1 GLN 165 -37.938 1.875 -20.613 1.00 98.35 O +ATOM 2404 N VAL 166 -33.206 -0.646 -22.593 1.00 98.68 N +ATOM 2405 CA VAL 166 -32.126 -0.300 -23.525 1.00 98.68 C +ATOM 2406 C VAL 166 -30.864 -1.148 -23.212 1.00 98.68 C +ATOM 2407 O VAL 166 -29.749 -0.777 -23.574 1.00 98.68 O +ATOM 2408 CB VAL 166 -31.824 1.235 -23.557 1.00 98.68 C +ATOM 2409 CG1 VAL 166 -31.000 1.672 -24.791 1.00 98.68 C +ATOM 2410 CG2 VAL 166 -33.113 2.083 -23.541 1.00 98.68 C +ATOM 2420 N GLY 167 -31.075 -2.325 -22.588 1.00 98.34 N +ATOM 2421 CA GLY 167 -30.065 -3.347 -22.314 1.00 98.34 C +ATOM 2422 C GLY 167 -28.931 -2.819 -21.426 1.00 98.34 C +ATOM 2423 O GLY 167 -29.180 -2.280 -20.347 1.00 98.34 O +ATOM 2427 N ALA 168 -27.689 -3.011 -21.898 1.00 98.52 N +ATOM 2428 CA ALA 168 -26.432 -2.617 -21.255 1.00 98.52 C +ATOM 2429 C ALA 168 -26.174 -1.098 -21.153 1.00 98.52 C +ATOM 2430 O ALA 168 -25.182 -0.722 -20.528 1.00 98.52 O +ATOM 2431 CB ALA 168 -25.284 -3.298 -22.017 1.00 98.52 C +ATOM 2437 N SER 169 -27.034 -0.255 -21.756 1.00 98.58 N +ATOM 2438 CA SER 169 -26.949 1.206 -21.694 1.00 98.58 C +ATOM 2439 C SER 169 -27.193 1.733 -20.268 1.00 98.58 C +ATOM 2440 O SER 169 -28.236 1.443 -19.681 1.00 98.58 O +ATOM 2441 CB SER 169 -27.945 1.816 -22.700 1.00 98.58 C +ATOM 2442 OG SER 169 -27.875 3.229 -22.727 1.00 98.58 O +ATOM 2448 N ASN 170 -26.222 2.512 -19.768 1.00 98.05 N +ATOM 2449 CA ASN 170 -26.233 3.129 -18.438 1.00 98.05 C +ATOM 2450 C ASN 170 -26.412 4.658 -18.518 1.00 98.05 C +ATOM 2451 O ASN 170 -26.280 5.308 -17.483 1.00 98.05 O +ATOM 2452 CB ASN 170 -24.912 2.781 -17.706 1.00 98.05 C +ATOM 2453 CG ASN 170 -24.719 1.282 -17.452 1.00 98.05 C +ATOM 2454 ND2 ASN 170 -23.555 0.748 -17.829 1.00 98.05 N +ATOM 2455 OD1 ASN 170 -25.600 0.620 -16.906 1.00 98.05 O +ATOM 2462 N ARG 171 -26.693 5.214 -19.714 1.00 98.65 N +ATOM 2463 CA ARG 171 -26.791 6.659 -19.960 1.00 98.65 C +ATOM 2464 C ARG 171 -27.947 7.347 -19.202 1.00 98.65 C +ATOM 2465 O ARG 171 -27.770 8.475 -18.747 1.00 98.65 O +ATOM 2466 CB ARG 171 -26.859 6.924 -21.484 1.00 98.65 C +ATOM 2467 CG ARG 171 -26.699 8.413 -21.863 1.00 98.65 C +ATOM 2468 CD ARG 171 -26.709 8.686 -23.375 1.00 98.65 C +ATOM 2469 NE ARG 171 -25.477 8.246 -24.051 1.00 98.65 N +ATOM 2470 NH1 ARG 171 -26.051 9.117 -26.147 1.00 98.65 N +ATOM 2471 NH2 ARG 171 -24.081 7.949 -25.885 1.00 98.65 N +ATOM 2472 CZ ARG 171 -25.207 8.440 -25.355 1.00 98.65 C +ATOM 2486 N TYR 172 -29.091 6.657 -19.065 1.00 98.70 N +ATOM 2487 CA TYR 172 -30.268 7.123 -18.325 1.00 98.70 C +ATOM 2488 C TYR 172 -30.870 5.948 -17.539 1.00 98.70 C +ATOM 2489 O TYR 172 -30.625 4.793 -17.890 1.00 98.70 O +ATOM 2490 CB TYR 172 -31.335 7.694 -19.289 1.00 98.70 C +ATOM 2491 CG TYR 172 -30.862 8.682 -20.342 1.00 98.70 C +ATOM 2492 CD1 TYR 172 -30.697 10.043 -20.018 1.00 98.70 C +ATOM 2493 CD2 TYR 172 -30.608 8.246 -21.660 1.00 98.70 C +ATOM 2494 CE1 TYR 172 -30.300 10.964 -21.007 1.00 98.70 C +ATOM 2495 CE2 TYR 172 -30.221 9.166 -22.651 1.00 98.70 C +ATOM 2496 OH TYR 172 -29.716 11.416 -23.296 1.00 98.70 O +ATOM 2497 CZ TYR 172 -30.074 10.527 -22.327 1.00 98.70 C +ATOM 2507 N ASP 173 -31.678 6.271 -16.515 1.00 98.63 N +ATOM 2508 CA ASP 173 -32.422 5.302 -15.702 1.00 98.63 C +ATOM 2509 C ASP 173 -33.811 5.034 -16.307 1.00 98.63 C +ATOM 2510 O ASP 173 -34.770 5.735 -15.984 1.00 98.63 O +ATOM 2511 CB ASP 173 -32.524 5.719 -14.215 1.00 98.63 C +ATOM 2512 CG ASP 173 -31.174 6.014 -13.561 1.00 98.63 C +ATOM 2513 OD1 ASP 173 -30.267 5.162 -13.693 1.00 98.63 O +ATOM 2514 OD2 ASP 173 -31.094 7.047 -12.862 1.00 98.63 O +ATOM 2519 N TYR 174 -33.884 4.009 -17.170 1.00 98.69 N +ATOM 2520 CA TYR 174 -35.117 3.480 -17.754 1.00 98.69 C +ATOM 2521 C TYR 174 -35.734 2.452 -16.796 1.00 98.69 C +ATOM 2522 O TYR 174 -35.237 1.328 -16.711 1.00 98.69 O +ATOM 2523 CB TYR 174 -34.801 2.830 -19.116 1.00 98.69 C +ATOM 2524 CG TYR 174 -34.432 3.808 -20.214 1.00 98.69 C +ATOM 2525 CD1 TYR 174 -35.441 4.402 -20.998 1.00 98.69 C +ATOM 2526 CD2 TYR 174 -33.082 4.127 -20.456 1.00 98.69 C +ATOM 2527 CE1 TYR 174 -35.110 5.331 -22.001 1.00 98.69 C +ATOM 2528 CE2 TYR 174 -32.749 5.051 -21.465 1.00 98.69 C +ATOM 2529 OH TYR 174 -33.459 6.600 -23.176 1.00 98.69 O +ATOM 2530 CZ TYR 174 -33.763 5.670 -22.225 1.00 98.69 C +ATOM 2540 N VAL 175 -36.797 2.866 -16.089 1.00 98.53 N +ATOM 2541 CA VAL 175 -37.483 2.049 -15.091 1.00 98.53 C +ATOM 2542 C VAL 175 -38.933 1.829 -15.567 1.00 98.53 C +ATOM 2543 O VAL 175 -39.792 2.679 -15.330 1.00 98.53 O +ATOM 2544 CB VAL 175 -37.473 2.745 -13.696 1.00 98.53 C +ATOM 2545 CG1 VAL 175 -38.168 1.908 -12.607 1.00 98.53 C +ATOM 2546 CG2 VAL 175 -36.042 3.075 -13.226 1.00 98.53 C +ATOM 2556 N VAL 176 -39.167 0.706 -16.270 1.00 98.80 N +ATOM 2557 CA VAL 176 -40.478 0.311 -16.797 1.00 98.80 C +ATOM 2558 C VAL 176 -41.322 -0.286 -15.658 1.00 98.80 C +ATOM 2559 O VAL 176 -41.042 -1.402 -15.226 1.00 98.80 O +ATOM 2560 CB VAL 176 -40.348 -0.759 -17.922 1.00 98.80 C +ATOM 2561 CG1 VAL 176 -41.694 -1.286 -18.466 1.00 98.80 C +ATOM 2562 CG2 VAL 176 -39.484 -0.254 -19.082 1.00 98.80 C +ATOM 2572 N MET 177 -42.319 0.476 -15.184 1.00 98.89 N +ATOM 2573 CA MET 177 -43.168 0.096 -14.055 1.00 98.89 C +ATOM 2574 C MET 177 -44.520 -0.402 -14.580 1.00 98.89 C +ATOM 2575 O MET 177 -45.197 0.337 -15.292 1.00 98.89 O +ATOM 2576 CB MET 177 -43.328 1.294 -13.097 1.00 98.89 C +ATOM 2577 CG MET 177 -41.985 1.857 -12.609 1.00 98.89 C +ATOM 2578 SD MET 177 -42.041 3.138 -11.332 1.00 98.89 S +ATOM 2579 CE MET 177 -42.734 2.205 -9.945 1.00 98.89 C +ATOM 2589 N ARG 178 -44.866 -1.656 -14.240 1.00 98.80 N +ATOM 2590 CA ARG 178 -46.087 -2.377 -14.635 1.00 98.80 C +ATOM 2591 C ARG 178 -46.346 -2.379 -16.159 1.00 98.80 C +ATOM 2592 O ARG 178 -47.487 -2.231 -16.593 1.00 98.80 O +ATOM 2593 CB ARG 178 -47.299 -1.919 -13.781 1.00 98.80 C +ATOM 2594 CG ARG 178 -47.119 -2.255 -12.289 1.00 98.80 C +ATOM 2595 CD ARG 178 -48.339 -1.929 -11.412 1.00 98.80 C +ATOM 2596 NE ARG 178 -48.226 -2.565 -10.094 1.00 98.80 N +ATOM 2597 NH1 ARG 178 -50.033 -1.506 -9.046 1.00 98.80 N +ATOM 2598 NH2 ARG 178 -48.777 -3.044 -7.891 1.00 98.80 N +ATOM 2599 CZ ARG 178 -49.012 -2.367 -9.022 1.00 98.80 C +ATOM 2613 N GLY 179 -45.266 -2.546 -16.941 1.00 98.50 N +ATOM 2614 CA GLY 179 -45.286 -2.644 -18.401 1.00 98.50 C +ATOM 2615 C GLY 179 -45.383 -1.286 -19.124 1.00 98.50 C +ATOM 2616 O GLY 179 -45.281 -1.277 -20.350 1.00 98.50 O +ATOM 2620 N PHE 180 -45.563 -0.157 -18.409 1.00 98.64 N +ATOM 2621 CA PHE 180 -45.628 1.193 -18.983 1.00 98.64 C +ATOM 2622 C PHE 180 -44.212 1.717 -19.280 1.00 98.64 C +ATOM 2623 O PHE 180 -43.555 2.245 -18.381 1.00 98.64 O +ATOM 2624 CB PHE 180 -46.418 2.138 -18.049 1.00 98.64 C +ATOM 2625 CG PHE 180 -47.893 1.800 -17.911 1.00 98.64 C +ATOM 2626 CD1 PHE 180 -48.799 2.141 -18.938 1.00 98.64 C +ATOM 2627 CD2 PHE 180 -48.346 1.000 -16.841 1.00 98.64 C +ATOM 2628 CE1 PHE 180 -50.125 1.734 -18.862 1.00 98.64 C +ATOM 2629 CE2 PHE 180 -49.677 0.611 -16.779 1.00 98.64 C +ATOM 2630 CZ PHE 180 -50.564 0.977 -17.784 1.00 98.64 C +ATOM 2640 N ALA 181 -43.759 1.500 -20.527 1.00 97.37 N +ATOM 2641 CA ALA 181 -42.387 1.757 -20.968 1.00 97.37 C +ATOM 2642 C ALA 181 -42.154 3.160 -21.553 1.00 97.37 C +ATOM 2643 O ALA 181 -41.011 3.617 -21.531 1.00 97.37 O +ATOM 2644 CB ALA 181 -41.984 0.672 -21.981 1.00 97.37 C +ATOM 2650 N ASP 182 -43.209 3.825 -22.055 1.00 93.75 N +ATOM 2651 CA ASP 182 -43.135 5.195 -22.581 1.00 93.75 C +ATOM 2652 C ASP 182 -43.005 6.213 -21.437 1.00 93.75 C +ATOM 2653 O ASP 182 -43.779 6.155 -20.482 1.00 93.75 O +ATOM 2654 CB ASP 182 -44.312 5.571 -23.515 1.00 93.75 C +ATOM 2655 CG ASP 182 -44.539 4.629 -24.707 1.00 93.75 C +ATOM 2656 OD1 ASP 182 -43.601 3.880 -25.065 1.00 93.75 O +ATOM 2657 OD2 ASP 182 -45.633 4.741 -25.301 1.00 93.75 O +ATOM 2662 N ASN 183 -42.017 7.119 -21.568 1.00 95.46 N +ATOM 2663 CA ASN 183 -41.646 8.174 -20.608 1.00 95.46 C +ATOM 2664 C ASN 183 -41.175 7.618 -19.243 1.00 95.46 C +ATOM 2665 O ASN 183 -41.356 8.276 -18.220 1.00 95.46 O +ATOM 2666 CB ASN 183 -42.769 9.239 -20.457 1.00 95.46 C +ATOM 2667 CG ASN 183 -43.161 9.903 -21.782 1.00 95.46 C +ATOM 2668 ND2 ASN 183 -44.414 9.727 -22.207 1.00 95.46 N +ATOM 2669 OD1 ASN 183 -42.345 10.575 -22.410 1.00 95.46 O +ATOM 2676 N SER 184 -40.554 6.426 -19.252 1.00 97.60 N +ATOM 2677 CA SER 184 -40.025 5.728 -18.074 1.00 97.60 C +ATOM 2678 C SER 184 -38.855 6.441 -17.360 1.00 97.60 C +ATOM 2679 O SER 184 -38.637 6.183 -16.176 1.00 97.60 O +ATOM 2680 CB SER 184 -39.652 4.297 -18.494 1.00 97.60 C +ATOM 2681 OG SER 184 -38.554 4.302 -19.381 1.00 97.60 O +ATOM 2687 N VAL 185 -38.149 7.332 -18.077 1.00 97.52 N +ATOM 2688 CA VAL 185 -37.098 8.207 -17.549 1.00 97.52 C +ATOM 2689 C VAL 185 -37.636 9.360 -16.669 1.00 97.52 C +ATOM 2690 O VAL 185 -36.873 9.900 -15.868 1.00 97.52 O +ATOM 2691 CB VAL 185 -36.259 8.826 -18.704 1.00 97.52 C +ATOM 2692 CG1 VAL 185 -35.471 7.746 -19.463 1.00 97.52 C +ATOM 2693 CG2 VAL 185 -37.068 9.707 -19.682 1.00 97.52 C +ATOM 2703 N ASP 186 -38.931 9.697 -16.814 1.00 98.01 N +ATOM 2704 CA ASP 186 -39.631 10.741 -16.059 1.00 98.01 C +ATOM 2705 C ASP 186 -40.095 10.244 -14.666 1.00 98.01 C +ATOM 2706 O ASP 186 -40.433 11.075 -13.824 1.00 98.01 O +ATOM 2707 CB ASP 186 -40.832 11.269 -16.885 1.00 98.01 C +ATOM 2708 CG ASP 186 -41.395 12.618 -16.423 1.00 98.01 C +ATOM 2709 OD1 ASP 186 -40.617 13.596 -16.367 1.00 98.01 O +ATOM 2710 OD2 ASP 186 -42.622 12.673 -16.186 1.00 98.01 O +ATOM 2715 N ASN 187 -40.097 8.917 -14.433 1.00 98.09 N +ATOM 2716 CA ASN 187 -40.556 8.265 -13.193 1.00 98.09 C +ATOM 2717 C ASN 187 -39.683 8.554 -11.952 1.00 98.09 C +ATOM 2718 O ASN 187 -40.114 8.215 -10.852 1.00 98.09 O +ATOM 2719 CB ASN 187 -40.657 6.732 -13.417 1.00 98.09 C +ATOM 2720 CG ASN 187 -41.722 6.291 -14.430 1.00 98.09 C +ATOM 2721 ND2 ASN 187 -41.709 5.010 -14.802 1.00 98.09 N +ATOM 2722 OD1 ASN 187 -42.556 7.081 -14.867 1.00 98.09 O +ATOM 2729 N ILE 188 -38.492 9.150 -12.129 1.00 98.80 N +ATOM 2730 CA ILE 188 -37.546 9.433 -11.051 1.00 98.80 C +ATOM 2731 C ILE 188 -37.893 10.751 -10.322 1.00 98.80 C +ATOM 2732 O ILE 188 -38.176 11.766 -10.960 1.00 98.80 O +ATOM 2733 CB ILE 188 -36.085 9.519 -11.593 1.00 98.80 C +ATOM 2734 CG1 ILE 188 -35.675 8.251 -12.388 1.00 98.80 C +ATOM 2735 CG2 ILE 188 -35.031 9.827 -10.505 1.00 98.80 C +ATOM 2736 CD1 ILE 188 -35.810 6.920 -11.626 1.00 98.80 C +ATOM 2748 N TYR 189 -37.837 10.683 -8.984 1.00 98.86 N +ATOM 2749 CA TYR 189 -37.941 11.783 -8.027 1.00 98.86 C +ATOM 2750 C TYR 189 -36.714 11.690 -7.100 1.00 98.86 C +ATOM 2751 O TYR 189 -36.230 10.590 -6.841 1.00 98.86 O +ATOM 2752 CB TYR 189 -39.253 11.662 -7.201 1.00 98.86 C +ATOM 2753 CG TYR 189 -40.560 11.934 -7.935 1.00 98.86 C +ATOM 2754 CD1 TYR 189 -41.348 13.054 -7.597 1.00 98.86 C +ATOM 2755 CD2 TYR 189 -41.015 11.056 -8.940 1.00 98.86 C +ATOM 2756 CE1 TYR 189 -42.541 13.325 -8.295 1.00 98.86 C +ATOM 2757 CE2 TYR 189 -42.205 11.325 -9.642 1.00 98.86 C +ATOM 2758 OH TYR 189 -44.118 12.716 -10.014 1.00 98.86 O +ATOM 2759 CZ TYR 189 -42.970 12.460 -9.321 1.00 98.86 C +ATOM 2769 N LEU 190 -36.250 12.842 -6.598 1.00 98.88 N +ATOM 2770 CA LEU 190 -35.144 12.975 -5.652 1.00 98.88 C +ATOM 2771 C LEU 190 -35.625 13.842 -4.479 1.00 98.88 C +ATOM 2772 O LEU 190 -35.950 15.012 -4.684 1.00 98.88 O +ATOM 2773 CB LEU 190 -33.915 13.566 -6.390 1.00 98.88 C +ATOM 2774 CG LEU 190 -32.674 13.876 -5.516 1.00 98.88 C +ATOM 2775 CD1 LEU 190 -32.103 12.615 -4.838 1.00 98.88 C +ATOM 2776 CD2 LEU 190 -31.598 14.623 -6.335 1.00 98.88 C +ATOM 2788 N ASP 191 -35.657 13.246 -3.275 1.00 98.61 N +ATOM 2789 CA ASP 191 -36.012 13.881 -1.997 1.00 98.61 C +ATOM 2790 C ASP 191 -37.452 14.444 -1.958 1.00 98.61 C +ATOM 2791 O ASP 191 -37.677 15.537 -1.437 1.00 98.61 O +ATOM 2792 CB ASP 191 -34.949 14.898 -1.504 1.00 98.61 C +ATOM 2793 CG ASP 191 -33.529 14.334 -1.418 1.00 98.61 C +ATOM 2794 OD1 ASP 191 -33.387 13.191 -0.931 1.00 98.61 O +ATOM 2795 OD2 ASP 191 -32.587 15.092 -1.729 1.00 98.61 O +ATOM 2800 N GLY 192 -38.400 13.672 -2.520 1.00 98.11 N +ATOM 2801 CA GLY 192 -39.831 13.995 -2.573 1.00 98.11 C +ATOM 2802 C GLY 192 -40.196 14.971 -3.707 1.00 98.11 C +ATOM 2803 O GLY 192 -41.383 15.224 -3.913 1.00 98.11 O +ATOM 2807 N LEU 193 -39.205 15.504 -4.440 1.00 98.88 N +ATOM 2808 CA LEU 193 -39.372 16.429 -5.559 1.00 98.88 C +ATOM 2809 C LEU 193 -39.027 15.705 -6.866 1.00 98.88 C +ATOM 2810 O LEU 193 -38.102 14.899 -6.877 1.00 98.88 O +ATOM 2811 CB LEU 193 -38.409 17.622 -5.365 1.00 98.88 C +ATOM 2812 CG LEU 193 -38.654 18.491 -4.115 1.00 98.88 C +ATOM 2813 CD1 LEU 193 -37.601 19.614 -4.038 1.00 98.88 C +ATOM 2814 CD2 LEU 193 -40.093 19.035 -4.031 1.00 98.88 C +ATOM 2826 N LYS 194 -39.740 16.040 -7.953 1.00 98.72 N +ATOM 2827 CA LYS 194 -39.519 15.550 -9.321 1.00 98.72 C +ATOM 2828 C LYS 194 -38.074 15.809 -9.798 1.00 98.72 C +ATOM 2829 O LYS 194 -37.504 16.842 -9.444 1.00 98.72 O +ATOM 2830 CB LYS 194 -40.542 16.277 -10.224 1.00 98.72 C +ATOM 2831 CG LYS 194 -40.722 15.736 -11.654 1.00 98.72 C +ATOM 2832 CD LYS 194 -41.520 14.425 -11.711 1.00 98.72 C +ATOM 2833 CE LYS 194 -41.894 14.033 -13.144 1.00 98.72 C +ATOM 2834 NZ LYS 194 -42.738 12.827 -13.190 1.00 98.72 N +ATOM 2848 N ALA 195 -37.508 14.888 -10.600 1.00 98.20 N +ATOM 2849 CA ALA 195 -36.162 15.026 -11.179 1.00 98.20 C +ATOM 2850 C ALA 195 -35.999 16.227 -12.135 1.00 98.20 C +ATOM 2851 O ALA 195 -34.876 16.702 -12.302 1.00 98.20 O +ATOM 2852 CB ALA 195 -35.771 13.719 -11.883 1.00 98.20 C +ATOM 2858 N MET 196 -37.120 16.698 -12.714 1.00 98.48 N +ATOM 2859 CA MET 196 -37.250 17.872 -13.585 1.00 98.48 C +ATOM 2860 C MET 196 -36.436 17.807 -14.895 1.00 98.48 C +ATOM 2861 O MET 196 -36.141 18.847 -15.484 1.00 98.48 O +ATOM 2862 CB MET 196 -37.057 19.189 -12.793 1.00 98.48 C +ATOM 2863 CG MET 196 -38.143 19.471 -11.737 1.00 98.48 C +ATOM 2864 SD MET 196 -39.853 19.559 -12.347 1.00 98.48 S +ATOM 2865 CE MET 196 -39.770 21.091 -13.305 1.00 98.48 C +ATOM 2875 N GLY 197 -36.165 16.578 -15.366 1.00 98.10 N +ATOM 2876 CA GLY 197 -35.693 16.304 -16.719 1.00 98.10 C +ATOM 2877 C GLY 197 -36.859 16.469 -17.709 1.00 98.10 C +ATOM 2878 O GLY 197 -38.029 16.402 -17.322 1.00 98.10 O +ATOM 2882 N ASP 198 -36.526 16.658 -18.994 1.00 98.24 N +ATOM 2883 CA ASP 198 -37.490 16.721 -20.091 1.00 98.24 C +ATOM 2884 C ASP 198 -37.345 15.412 -20.878 1.00 98.24 C +ATOM 2885 O ASP 198 -36.307 15.185 -21.497 1.00 98.24 O +ATOM 2886 CB ASP 198 -37.269 17.980 -20.965 1.00 98.24 C +ATOM 2887 CG ASP 198 -38.435 18.343 -21.896 1.00 98.24 C +ATOM 2888 OD1 ASP 198 -39.270 17.465 -22.208 1.00 98.24 O +ATOM 2889 OD2 ASP 198 -38.455 19.516 -22.329 1.00 98.24 O +ATOM 2894 N SER 199 -38.399 14.581 -20.825 1.00 96.99 N +ATOM 2895 CA SER 199 -38.510 13.303 -21.533 1.00 96.99 C +ATOM 2896 C SER 199 -38.797 13.444 -23.045 1.00 96.99 C +ATOM 2897 O SER 199 -38.772 12.431 -23.740 1.00 96.99 O +ATOM 2898 CB SER 199 -39.545 12.424 -20.798 1.00 96.99 C +ATOM 2899 OG SER 199 -40.873 12.883 -20.972 1.00 96.99 O +ATOM 2905 N GLY 200 -39.041 14.678 -23.524 1.00 95.95 N +ATOM 2906 CA GLY 200 -39.168 15.021 -24.941 1.00 95.95 C +ATOM 2907 C GLY 200 -37.856 15.599 -25.501 1.00 95.95 C +ATOM 2908 O GLY 200 -37.846 16.032 -26.652 1.00 95.95 O +ATOM 2912 N THR 201 -36.763 15.603 -24.714 1.00 98.29 N +ATOM 2913 CA THR 201 -35.409 15.979 -25.133 1.00 98.29 C +ATOM 2914 C THR 201 -34.359 15.024 -24.515 1.00 98.29 C +ATOM 2915 O THR 201 -34.714 14.153 -23.719 1.00 98.29 O +ATOM 2916 CB THR 201 -35.081 17.469 -24.805 1.00 98.29 C +ATOM 2917 CG2 THR 201 -36.243 18.459 -24.947 1.00 98.29 C +ATOM 2918 OG1 THR 201 -34.414 17.700 -23.580 1.00 98.29 O +ATOM 2926 N PHE 202 -33.079 15.189 -24.897 1.00 98.32 N +ATOM 2927 CA PHE 202 -31.953 14.414 -24.355 1.00 98.32 C +ATOM 2928 C PHE 202 -31.521 14.822 -22.925 1.00 98.32 C +ATOM 2929 O PHE 202 -30.640 14.171 -22.365 1.00 98.32 O +ATOM 2930 CB PHE 202 -30.762 14.456 -25.342 1.00 98.32 C +ATOM 2931 CG PHE 202 -31.029 13.812 -26.695 1.00 98.32 C +ATOM 2932 CD1 PHE 202 -31.157 12.411 -26.802 1.00 98.32 C +ATOM 2933 CD2 PHE 202 -31.253 14.607 -27.840 1.00 98.32 C +ATOM 2934 CE1 PHE 202 -31.451 11.831 -28.030 1.00 98.32 C +ATOM 2935 CE2 PHE 202 -31.543 14.010 -29.059 1.00 98.32 C +ATOM 2936 CZ PHE 202 -31.635 12.627 -29.154 1.00 98.32 C +ATOM 2946 N SER 203 -32.149 15.860 -22.343 1.00 98.41 N +ATOM 2947 CA SER 203 -31.883 16.376 -20.998 1.00 98.41 C +ATOM 2948 C SER 203 -32.743 15.662 -19.942 1.00 98.41 C +ATOM 2949 O SER 203 -33.463 16.310 -19.182 1.00 98.41 O +ATOM 2950 CB SER 203 -32.050 17.911 -20.977 1.00 98.41 C +ATOM 2951 OG SER 203 -30.993 18.535 -21.673 1.00 98.41 O +ATOM 2957 N SER 204 -32.615 14.327 -19.899 1.00 98.33 N +ATOM 2958 CA SER 204 -33.115 13.477 -18.824 1.00 98.33 C +ATOM 2959 C SER 204 -31.965 13.234 -17.835 1.00 98.33 C +ATOM 2960 O SER 204 -30.866 12.863 -18.252 1.00 98.33 O +ATOM 2961 CB SER 204 -33.657 12.166 -19.422 1.00 98.33 C +ATOM 2962 OG SER 204 -34.954 12.385 -19.940 1.00 98.33 O +ATOM 2968 N MET 205 -32.229 13.499 -16.547 1.00 98.39 N +ATOM 2969 CA MET 205 -31.232 13.459 -15.476 1.00 98.39 C +ATOM 2970 C MET 205 -31.018 12.034 -14.943 1.00 98.39 C +ATOM 2971 O MET 205 -31.928 11.206 -15.009 1.00 98.39 O +ATOM 2972 CB MET 205 -31.671 14.410 -14.342 1.00 98.39 C +ATOM 2973 CG MET 205 -31.909 15.876 -14.758 1.00 98.39 C +ATOM 2974 SD MET 205 -30.437 16.825 -15.245 1.00 98.39 S +ATOM 2975 CE MET 205 -30.404 16.578 -17.043 1.00 98.39 C +ATOM 2985 N GLN 206 -29.818 11.802 -14.390 1.00 98.65 N +ATOM 2986 CA GLN 206 -29.434 10.565 -13.717 1.00 98.65 C +ATOM 2987 C GLN 206 -28.701 10.914 -12.418 1.00 98.65 C +ATOM 2988 O GLN 206 -27.723 11.660 -12.457 1.00 98.65 O +ATOM 2989 CB GLN 206 -28.577 9.704 -14.669 1.00 98.65 C +ATOM 2990 CG GLN 206 -28.022 8.414 -14.030 1.00 98.65 C +ATOM 2991 CD GLN 206 -27.425 7.475 -15.074 1.00 98.65 C +ATOM 2992 NE2 GLN 206 -27.937 6.247 -15.166 1.00 98.65 N +ATOM 2993 OE1 GLN 206 -26.494 7.852 -15.781 1.00 98.65 O +ATOM 3002 N VAL 207 -29.171 10.333 -11.305 1.00 98.78 N +ATOM 3003 CA VAL 207 -28.532 10.439 -9.996 1.00 98.78 C +ATOM 3004 C VAL 207 -27.751 9.136 -9.750 1.00 98.78 C +ATOM 3005 O VAL 207 -28.322 8.053 -9.885 1.00 98.78 O +ATOM 3006 CB VAL 207 -29.578 10.614 -8.859 1.00 98.78 C +ATOM 3007 CG1 VAL 207 -28.948 10.684 -7.452 1.00 98.78 C +ATOM 3008 CG2 VAL 207 -30.470 11.851 -9.084 1.00 98.78 C +ATOM 3018 N ASP 208 -26.460 9.265 -9.404 1.00 98.77 N +ATOM 3019 CA ASP 208 -25.577 8.130 -9.127 1.00 98.77 C +ATOM 3020 C ASP 208 -25.945 7.513 -7.751 1.00 98.77 C +ATOM 3021 O ASP 208 -26.056 8.273 -6.786 1.00 98.77 O +ATOM 3022 CB ASP 208 -24.100 8.576 -9.171 1.00 98.77 C +ATOM 3023 CG ASP 208 -23.118 7.401 -9.186 1.00 98.77 C +ATOM 3024 OD1 ASP 208 -22.939 6.778 -8.116 1.00 98.77 O +ATOM 3025 OD2 ASP 208 -22.547 7.157 -10.271 1.00 98.77 O +ATOM 3030 N PRO 209 -26.120 6.168 -7.673 1.00 98.71 N +ATOM 3031 CA PRO 209 -26.426 5.457 -6.415 1.00 98.71 C +ATOM 3032 C PRO 209 -25.540 5.714 -5.187 1.00 98.71 C +ATOM 3033 O PRO 209 -26.048 5.530 -4.084 1.00 98.71 O +ATOM 3034 CB PRO 209 -26.380 3.971 -6.790 1.00 98.71 C +ATOM 3035 CG PRO 209 -26.743 3.947 -8.253 1.00 98.71 C +ATOM 3036 CD PRO 209 -26.121 5.226 -8.797 1.00 98.71 C +ATOM 3044 N TYR 210 -24.267 6.123 -5.361 1.00 98.72 N +ATOM 3045 CA TYR 210 -23.338 6.372 -4.249 1.00 98.72 C +ATOM 3046 C TYR 210 -23.754 7.538 -3.323 1.00 98.72 C +ATOM 3047 O TYR 210 -23.401 7.516 -2.144 1.00 98.72 O +ATOM 3048 CB TYR 210 -21.898 6.539 -4.788 1.00 98.72 C +ATOM 3049 CG TYR 210 -20.827 6.613 -3.708 1.00 98.72 C +ATOM 3050 CD1 TYR 210 -20.074 7.792 -3.517 1.00 98.72 C +ATOM 3051 CD2 TYR 210 -20.607 5.504 -2.863 1.00 98.72 C +ATOM 3052 CE1 TYR 210 -19.123 7.859 -2.478 1.00 98.72 C +ATOM 3053 CE2 TYR 210 -19.665 5.578 -1.819 1.00 98.72 C +ATOM 3054 OH TYR 210 -18.022 6.834 -0.601 1.00 98.72 O +ATOM 3055 CZ TYR 210 -18.924 6.758 -1.623 1.00 98.72 C +ATOM 3065 N PHE 211 -24.528 8.501 -3.854 1.00 98.86 N +ATOM 3066 CA PHE 211 -25.091 9.628 -3.106 1.00 98.86 C +ATOM 3067 C PHE 211 -26.407 9.291 -2.376 1.00 98.86 C +ATOM 3068 O PHE 211 -26.886 10.139 -1.625 1.00 98.86 O +ATOM 3069 CB PHE 211 -25.306 10.819 -4.065 1.00 98.86 C +ATOM 3070 CG PHE 211 -24.036 11.327 -4.722 1.00 98.86 C +ATOM 3071 CD1 PHE 211 -23.088 12.048 -3.970 1.00 98.86 C +ATOM 3072 CD2 PHE 211 -23.722 10.958 -6.045 1.00 98.86 C +ATOM 3073 CE1 PHE 211 -21.883 12.424 -4.548 1.00 98.86 C +ATOM 3074 CE2 PHE 211 -22.507 11.333 -6.603 1.00 98.86 C +ATOM 3075 CZ PHE 211 -21.592 12.065 -5.857 1.00 98.86 C +ATOM 3085 N LEU 212 -26.980 8.097 -2.615 1.00 98.85 N +ATOM 3086 CA LEU 212 -28.299 7.692 -2.125 1.00 98.85 C +ATOM 3087 C LEU 212 -28.186 6.810 -0.875 1.00 98.85 C +ATOM 3088 O LEU 212 -27.277 5.989 -0.779 1.00 98.85 O +ATOM 3089 CB LEU 212 -29.064 6.958 -3.250 1.00 98.85 C +ATOM 3090 CG LEU 212 -29.223 7.782 -4.549 1.00 98.85 C +ATOM 3091 CD1 LEU 212 -29.920 6.963 -5.651 1.00 98.85 C +ATOM 3092 CD2 LEU 212 -29.917 9.137 -4.310 1.00 98.85 C +ATOM 3104 N GLU 213 -29.130 7.000 0.056 1.00 98.27 N +ATOM 3105 CA GLU 213 -29.239 6.256 1.311 1.00 98.27 C +ATOM 3106 C GLU 213 -30.247 5.094 1.183 1.00 98.27 C +ATOM 3107 O GLU 213 -30.123 4.109 1.909 1.00 98.27 O +ATOM 3108 CB GLU 213 -29.675 7.253 2.412 1.00 98.27 C +ATOM 3109 CG GLU 213 -29.400 6.811 3.865 1.00 98.27 C +ATOM 3110 CD GLU 213 -27.912 6.865 4.228 1.00 98.27 C +ATOM 3111 OE1 GLU 213 -27.207 5.874 3.935 1.00 98.27 O +ATOM 3112 OE2 GLU 213 -27.494 7.909 4.777 1.00 98.27 O +ATOM 3119 N ARG 214 -31.219 5.228 0.265 1.00 98.43 N +ATOM 3120 CA ARG 214 -32.273 4.256 -0.029 1.00 98.43 C +ATOM 3121 C ARG 214 -33.042 4.714 -1.278 1.00 98.43 C +ATOM 3122 O ARG 214 -33.079 5.907 -1.584 1.00 98.43 O +ATOM 3123 CB ARG 214 -33.215 4.041 1.188 1.00 98.43 C +ATOM 3124 CG ARG 214 -33.784 5.332 1.811 1.00 98.43 C +ATOM 3125 CD ARG 214 -34.603 5.110 3.090 1.00 98.43 C +ATOM 3126 NE ARG 214 -35.952 4.597 2.821 1.00 98.43 N +ATOM 3127 NH1 ARG 214 -36.414 3.924 5.022 1.00 98.43 N +ATOM 3128 NH2 ARG 214 -38.032 3.775 3.389 1.00 98.43 N +ATOM 3129 CZ ARG 214 -36.788 4.095 3.746 1.00 98.43 C +ATOM 3143 N ILE 215 -33.636 3.734 -1.973 1.00 98.94 N +ATOM 3144 CA ILE 215 -34.425 3.918 -3.187 1.00 98.94 C +ATOM 3145 C ILE 215 -35.806 3.290 -2.932 1.00 98.94 C +ATOM 3146 O ILE 215 -35.948 2.066 -2.960 1.00 98.94 O +ATOM 3147 CB ILE 215 -33.738 3.258 -4.425 1.00 98.94 C +ATOM 3148 CG1 ILE 215 -32.365 3.917 -4.717 1.00 98.94 C +ATOM 3149 CG2 ILE 215 -34.626 3.235 -5.693 1.00 98.94 C +ATOM 3150 CD1 ILE 215 -31.513 3.165 -5.746 1.00 98.94 C +ATOM 3162 N ASP 216 -36.791 4.157 -2.660 1.00 98.90 N +ATOM 3163 CA ASP 216 -38.189 3.799 -2.426 1.00 98.90 C +ATOM 3164 C ASP 216 -38.954 3.780 -3.756 1.00 98.90 C +ATOM 3165 O ASP 216 -38.633 4.553 -4.658 1.00 98.90 O +ATOM 3166 CB ASP 216 -38.891 4.718 -1.400 1.00 98.90 C +ATOM 3167 CG ASP 216 -38.210 4.800 -0.027 1.00 98.90 C +ATOM 3168 OD1 ASP 216 -38.949 4.623 0.962 1.00 98.90 O +ATOM 3169 OD2 ASP 216 -36.998 5.099 0.048 1.00 98.90 O +ATOM 3174 N VAL 217 -39.945 2.883 -3.855 1.00 98.94 N +ATOM 3175 CA VAL 217 -40.676 2.590 -5.086 1.00 98.94 C +ATOM 3176 C VAL 217 -42.172 2.480 -4.755 1.00 98.94 C +ATOM 3177 O VAL 217 -42.524 1.750 -3.831 1.00 98.94 O +ATOM 3178 CB VAL 217 -40.233 1.223 -5.686 1.00 98.94 C +ATOM 3179 CG1 VAL 217 -40.873 0.936 -7.058 1.00 98.94 C +ATOM 3180 CG2 VAL 217 -38.701 1.075 -5.760 1.00 98.94 C +ATOM 3190 N LEU 218 -43.012 3.190 -5.521 1.00 98.89 N +ATOM 3191 CA LEU 218 -44.466 3.223 -5.376 1.00 98.89 C +ATOM 3192 C LEU 218 -45.084 2.824 -6.713 1.00 98.89 C +ATOM 3193 O LEU 218 -44.801 3.466 -7.724 1.00 98.89 O +ATOM 3194 CB LEU 218 -44.892 4.643 -4.940 1.00 98.89 C +ATOM 3195 CG LEU 218 -46.402 4.978 -4.987 1.00 98.89 C +ATOM 3196 CD1 LEU 218 -47.259 4.052 -4.098 1.00 98.89 C +ATOM 3197 CD2 LEU 218 -46.618 6.460 -4.643 1.00 98.89 C +ATOM 3209 N LYS 219 -45.930 1.787 -6.686 1.00 98.83 N +ATOM 3210 CA LYS 219 -46.587 1.260 -7.876 1.00 98.83 C +ATOM 3211 C LYS 219 -47.928 1.961 -8.124 1.00 98.83 C +ATOM 3212 O LYS 219 -48.611 2.354 -7.177 1.00 98.83 O +ATOM 3213 CB LYS 219 -46.856 -0.242 -7.695 1.00 98.83 C +ATOM 3214 CG LYS 219 -45.658 -1.091 -7.246 1.00 98.83 C +ATOM 3215 CD LYS 219 -44.452 -1.025 -8.193 1.00 98.83 C +ATOM 3216 CE LYS 219 -43.415 -2.107 -7.877 1.00 98.83 C +ATOM 3217 NZ LYS 219 -42.833 -1.958 -6.532 1.00 98.83 N +ATOM 3231 N GLY 220 -48.304 2.019 -9.408 1.00 98.40 N +ATOM 3232 CA GLY 220 -49.623 2.439 -9.859 1.00 98.40 C +ATOM 3233 C GLY 220 -49.768 3.969 -9.944 1.00 98.40 C +ATOM 3234 O GLY 220 -48.890 4.696 -9.483 1.00 98.40 O +ATOM 3238 N PRO 221 -50.895 4.463 -10.510 1.00 98.48 N +ATOM 3239 CA PRO 221 -51.232 5.896 -10.638 1.00 98.48 C +ATOM 3240 C PRO 221 -51.135 6.665 -9.306 1.00 98.48 C +ATOM 3241 O PRO 221 -51.744 6.228 -8.331 1.00 98.48 O +ATOM 3242 CB PRO 221 -52.676 5.869 -11.183 1.00 98.48 C +ATOM 3243 CG PRO 221 -52.823 4.535 -11.874 1.00 98.48 C +ATOM 3244 CD PRO 221 -51.995 3.631 -10.985 1.00 98.48 C +ATOM 3252 N SER 222 -50.312 7.727 -9.268 1.00 97.68 N +ATOM 3253 CA SER 222 -49.872 8.361 -8.021 1.00 97.68 C +ATOM 3254 C SER 222 -49.808 9.900 -8.092 1.00 97.68 C +ATOM 3255 O SER 222 -49.050 10.499 -7.327 1.00 97.68 O +ATOM 3256 CB SER 222 -48.531 7.722 -7.585 1.00 97.68 C +ATOM 3257 OG SER 222 -48.746 6.428 -7.061 1.00 97.68 O +ATOM 3263 N SER 223 -50.610 10.538 -8.967 1.00 98.67 N +ATOM 3264 CA SER 223 -50.613 12.002 -9.110 1.00 98.67 C +ATOM 3265 C SER 223 -51.197 12.762 -7.916 1.00 98.67 C +ATOM 3266 O SER 223 -50.868 13.934 -7.776 1.00 98.67 O +ATOM 3267 CB SER 223 -51.383 12.451 -10.359 1.00 98.67 C +ATOM 3268 OG SER 223 -50.710 12.081 -11.544 1.00 98.67 O +ATOM 3274 N VAL 224 -52.029 12.105 -7.090 1.00 98.65 N +ATOM 3275 CA VAL 224 -52.749 12.674 -5.944 1.00 98.65 C +ATOM 3276 C VAL 224 -51.876 13.421 -4.897 1.00 98.65 C +ATOM 3277 O VAL 224 -52.412 14.255 -4.167 1.00 98.65 O +ATOM 3278 CB VAL 224 -53.592 11.561 -5.257 1.00 98.65 C +ATOM 3279 CG1 VAL 224 -52.738 10.462 -4.596 1.00 98.65 C +ATOM 3280 CG2 VAL 224 -54.635 12.103 -4.262 1.00 98.65 C +ATOM 3290 N LEU 225 -50.555 13.164 -4.887 1.00 98.67 N +ATOM 3291 CA LEU 225 -49.569 13.897 -4.093 1.00 98.67 C +ATOM 3292 C LEU 225 -48.554 14.670 -4.955 1.00 98.67 C +ATOM 3293 O LEU 225 -48.044 15.672 -4.460 1.00 98.67 O +ATOM 3294 CB LEU 225 -48.807 12.905 -3.189 1.00 98.67 C +ATOM 3295 CG LEU 225 -49.641 12.304 -2.044 1.00 98.67 C +ATOM 3296 CD1 LEU 225 -48.893 11.117 -1.424 1.00 98.67 C +ATOM 3297 CD2 LEU 225 -50.027 13.354 -0.979 1.00 98.67 C +ATOM 3309 N TYR 226 -48.241 14.202 -6.177 1.00 98.72 N +ATOM 3310 CA TYR 226 -47.048 14.626 -6.929 1.00 98.72 C +ATOM 3311 C TYR 226 -47.321 15.357 -8.257 1.00 98.72 C +ATOM 3312 O TYR 226 -46.367 15.875 -8.842 1.00 98.72 O +ATOM 3313 CB TYR 226 -46.181 13.378 -7.194 1.00 98.72 C +ATOM 3314 CG TYR 226 -45.595 12.740 -5.948 1.00 98.72 C +ATOM 3315 CD1 TYR 226 -44.510 13.350 -5.285 1.00 98.72 C +ATOM 3316 CD2 TYR 226 -46.134 11.539 -5.445 1.00 98.72 C +ATOM 3317 CE1 TYR 226 -43.972 12.765 -4.123 1.00 98.72 C +ATOM 3318 CE2 TYR 226 -45.600 10.957 -4.281 1.00 98.72 C +ATOM 3319 OH TYR 226 -44.005 11.018 -2.482 1.00 98.72 O +ATOM 3320 CZ TYR 226 -44.520 11.572 -3.616 1.00 98.72 C +ATOM 3330 N GLY 227 -48.575 15.381 -8.734 1.00 98.62 N +ATOM 3331 CA GLY 227 -48.936 15.908 -10.053 1.00 98.62 C +ATOM 3332 C GLY 227 -48.482 14.932 -11.143 1.00 98.62 C +ATOM 3333 O GLY 227 -48.560 13.724 -10.933 1.00 98.62 O +ATOM 3337 N ARG 228 -48.040 15.450 -12.305 1.00 98.28 N +ATOM 3338 CA ARG 228 -47.663 14.689 -13.509 1.00 98.28 C +ATOM 3339 C ARG 228 -46.813 13.426 -13.225 1.00 98.28 C +ATOM 3340 O ARG 228 -45.704 13.527 -12.696 1.00 98.28 O +ATOM 3341 CB ARG 228 -47.010 15.637 -14.543 1.00 98.28 C +ATOM 3342 CG ARG 228 -45.621 16.189 -14.169 1.00 98.28 C +ATOM 3343 CD ARG 228 -45.096 17.240 -15.152 1.00 98.28 C +ATOM 3344 NE ARG 228 -43.670 17.505 -14.914 1.00 98.28 N +ATOM 3345 NH1 ARG 228 -42.866 15.723 -16.202 1.00 98.28 N +ATOM 3346 NH2 ARG 228 -41.395 17.078 -15.046 1.00 98.28 N +ATOM 3347 CZ ARG 228 -42.651 16.770 -15.393 1.00 98.28 C +ATOM 3361 N SER 229 -47.393 12.253 -13.522 1.00 97.76 N +ATOM 3362 CA SER 229 -46.812 10.941 -13.242 1.00 97.76 C +ATOM 3363 C SER 229 -47.484 9.876 -14.119 1.00 97.76 C +ATOM 3364 O SER 229 -48.672 9.986 -14.428 1.00 97.76 O +ATOM 3365 CB SER 229 -46.885 10.612 -11.726 1.00 97.76 C +ATOM 3366 OG SER 229 -48.181 10.247 -11.289 1.00 97.76 O +ATOM 3372 N LEU 230 -46.701 8.853 -14.492 1.00 98.04 N +ATOM 3373 CA LEU 230 -47.144 7.750 -15.342 1.00 98.04 C +ATOM 3374 C LEU 230 -48.050 6.769 -14.559 1.00 98.04 C +ATOM 3375 O LEU 230 -47.878 6.642 -13.345 1.00 98.04 O +ATOM 3376 CB LEU 230 -45.906 7.025 -15.927 1.00 98.04 C +ATOM 3377 CG LEU 230 -45.197 7.763 -17.090 1.00 98.04 C +ATOM 3378 CD1 LEU 230 -46.106 7.936 -18.325 1.00 98.04 C +ATOM 3379 CD2 LEU 230 -44.517 9.081 -16.671 1.00 98.04 C +ATOM 3391 N PRO 231 -48.971 6.057 -15.259 1.00 98.29 N +ATOM 3392 CA PRO 231 -49.834 5.024 -14.640 1.00 98.29 C +ATOM 3393 C PRO 231 -49.116 3.816 -14.008 1.00 98.29 C +ATOM 3394 O PRO 231 -49.746 3.099 -13.236 1.00 98.29 O +ATOM 3395 CB PRO 231 -50.758 4.562 -15.779 1.00 98.29 C +ATOM 3396 CG PRO 231 -50.710 5.679 -16.800 1.00 98.29 C +ATOM 3397 CD PRO 231 -49.294 6.207 -16.679 1.00 98.29 C +ATOM 3405 N GLY 232 -47.829 3.611 -14.334 1.00 98.29 N +ATOM 3406 CA GLY 232 -46.990 2.568 -13.750 1.00 98.29 C +ATOM 3407 C GLY 232 -46.510 2.926 -12.334 1.00 98.29 C +ATOM 3408 O GLY 232 -46.192 2.017 -11.567 1.00 98.29 O +ATOM 3412 N GLY 233 -46.479 4.225 -11.990 1.00 98.64 N +ATOM 3413 CA GLY 233 -46.041 4.743 -10.699 1.00 98.64 C +ATOM 3414 C GLY 233 -44.721 5.499 -10.839 1.00 98.64 C +ATOM 3415 O GLY 233 -44.384 5.996 -11.916 1.00 98.64 O +ATOM 3419 N LEU 234 -44.011 5.633 -9.707 1.00 98.80 N +ATOM 3420 CA LEU 234 -42.821 6.468 -9.568 1.00 98.80 C +ATOM 3421 C LEU 234 -41.849 5.913 -8.517 1.00 98.80 C +ATOM 3422 O LEU 234 -42.242 5.142 -7.641 1.00 98.80 O +ATOM 3423 CB LEU 234 -43.245 7.938 -9.314 1.00 98.80 C +ATOM 3424 CG LEU 234 -44.054 8.239 -8.020 1.00 98.80 C +ATOM 3425 CD1 LEU 234 -43.175 8.313 -6.751 1.00 98.80 C +ATOM 3426 CD2 LEU 234 -44.912 9.515 -8.179 1.00 98.80 C +ATOM 3438 N VAL 235 -40.587 6.349 -8.634 1.00 98.91 N +ATOM 3439 CA VAL 235 -39.482 6.006 -7.744 1.00 98.91 C +ATOM 3440 C VAL 235 -39.026 7.297 -7.043 1.00 98.91 C +ATOM 3441 O VAL 235 -38.796 8.291 -7.728 1.00 98.91 O +ATOM 3442 CB VAL 235 -38.268 5.458 -8.552 1.00 98.91 C +ATOM 3443 CG1 VAL 235 -37.088 5.015 -7.664 1.00 98.91 C +ATOM 3444 CG2 VAL 235 -38.675 4.297 -9.473 1.00 98.91 C +ATOM 3454 N ALA 236 -38.882 7.250 -5.710 1.00 98.89 N +ATOM 3455 CA ALA 236 -38.374 8.353 -4.898 1.00 98.89 C +ATOM 3456 C ALA 236 -37.038 7.946 -4.277 1.00 98.89 C +ATOM 3457 O ALA 236 -37.000 7.138 -3.348 1.00 98.89 O +ATOM 3458 CB ALA 236 -39.399 8.759 -3.829 1.00 98.89 C +ATOM 3464 N LEU 237 -35.968 8.541 -4.816 1.00 98.90 N +ATOM 3465 CA LEU 237 -34.607 8.431 -4.314 1.00 98.90 C +ATOM 3466 C LEU 237 -34.444 9.331 -3.081 1.00 98.90 C +ATOM 3467 O LEU 237 -34.846 10.493 -3.127 1.00 98.90 O +ATOM 3468 CB LEU 237 -33.621 8.880 -5.416 1.00 98.90 C +ATOM 3469 CG LEU 237 -33.795 8.279 -6.830 1.00 98.90 C +ATOM 3470 CD1 LEU 237 -32.783 8.902 -7.805 1.00 98.90 C +ATOM 3471 CD2 LEU 237 -33.742 6.746 -6.860 1.00 98.90 C +ATOM 3483 N THR 238 -33.838 8.790 -2.018 1.00 98.82 N +ATOM 3484 CA THR 238 -33.517 9.534 -0.803 1.00 98.82 C +ATOM 3485 C THR 238 -31.994 9.704 -0.751 1.00 98.82 C +ATOM 3486 O THR 238 -31.285 8.702 -0.660 1.00 98.82 O +ATOM 3487 CB THR 238 -33.966 8.750 0.457 1.00 98.82 C +ATOM 3488 CG2 THR 238 -33.588 9.391 1.806 1.00 98.82 C +ATOM 3489 OG1 THR 238 -35.372 8.597 0.427 1.00 98.82 O +ATOM 3497 N SER 239 -31.520 10.959 -0.818 1.00 98.69 N +ATOM 3498 CA SER 239 -30.101 11.298 -0.702 1.00 98.69 C +ATOM 3499 C SER 239 -29.582 11.137 0.741 1.00 98.69 C +ATOM 3500 O SER 239 -30.351 11.266 1.695 1.00 98.69 O +ATOM 3501 CB SER 239 -29.848 12.707 -1.283 1.00 98.69 C +ATOM 3502 OG SER 239 -30.346 13.749 -0.467 1.00 98.69 O +ATOM 3508 N LYS 240 -28.274 10.869 0.857 1.00 98.48 N +ATOM 3509 CA LYS 240 -27.518 10.791 2.108 1.00 98.48 C +ATOM 3510 C LYS 240 -27.497 12.135 2.858 1.00 98.48 C +ATOM 3511 O LYS 240 -27.155 13.156 2.261 1.00 98.48 O +ATOM 3512 CB LYS 240 -26.094 10.319 1.770 1.00 98.48 C +ATOM 3513 CG LYS 240 -25.984 8.812 1.495 1.00 98.48 C +ATOM 3514 CD LYS 240 -24.577 8.416 1.037 1.00 98.48 C +ATOM 3515 CE LYS 240 -24.308 6.907 1.058 1.00 98.48 C +ATOM 3516 NZ LYS 240 -22.911 6.625 0.686 1.00 98.48 N +ATOM 3530 N LYS 241 -27.869 12.094 4.149 1.00 97.85 N +ATOM 3531 CA LYS 241 -28.036 13.269 5.009 1.00 97.85 C +ATOM 3532 C LYS 241 -26.969 13.303 6.128 1.00 97.85 C +ATOM 3533 O LYS 241 -26.543 12.230 6.560 1.00 97.85 O +ATOM 3534 CB LYS 241 -29.449 13.222 5.634 1.00 97.85 C +ATOM 3535 CG LYS 241 -30.616 13.297 4.629 1.00 97.85 C +ATOM 3536 CD LYS 241 -30.557 14.514 3.688 1.00 97.85 C +ATOM 3537 CE LYS 241 -31.855 14.764 2.907 1.00 97.85 C +ATOM 3538 NZ LYS 241 -32.141 13.685 1.946 1.00 97.85 N +ATOM 3552 N PRO 242 -26.575 14.519 6.592 1.00 98.31 N +ATOM 3553 CA PRO 242 -25.666 14.745 7.736 1.00 98.31 C +ATOM 3554 C PRO 242 -25.873 13.884 8.989 1.00 98.31 C +ATOM 3555 O PRO 242 -26.964 13.865 9.559 1.00 98.31 O +ATOM 3556 CB PRO 242 -25.833 16.237 8.042 1.00 98.31 C +ATOM 3557 CG PRO 242 -26.082 16.851 6.682 1.00 98.31 C +ATOM 3558 CD PRO 242 -26.946 15.805 5.994 1.00 98.31 C +ATOM 3566 N LEU 243 -24.787 13.200 9.375 1.00 96.53 N +ATOM 3567 CA LEU 243 -24.682 12.382 10.576 1.00 96.53 C +ATOM 3568 C LEU 243 -24.084 13.244 11.696 1.00 96.53 C +ATOM 3569 O LEU 243 -23.124 13.978 11.460 1.00 96.53 O +ATOM 3570 CB LEU 243 -23.787 11.152 10.289 1.00 96.53 C +ATOM 3571 CG LEU 243 -24.267 10.249 9.123 1.00 96.53 C +ATOM 3572 CD1 LEU 243 -23.231 9.147 8.813 1.00 96.53 C +ATOM 3573 CD2 LEU 243 -25.681 9.677 9.360 1.00 96.53 C +ATOM 3585 N TYR 244 -24.665 13.128 12.899 1.00 95.92 N +ATOM 3586 CA TYR 244 -24.287 13.895 14.090 1.00 95.92 C +ATOM 3587 C TYR 244 -23.161 13.234 14.915 1.00 95.92 C +ATOM 3588 O TYR 244 -22.812 13.753 15.974 1.00 95.92 O +ATOM 3589 CB TYR 244 -25.557 14.182 14.916 1.00 95.92 C +ATOM 3590 CG TYR 244 -26.540 15.107 14.212 1.00 95.92 C +ATOM 3591 CD1 TYR 244 -26.490 16.497 14.448 1.00 95.92 C +ATOM 3592 CD2 TYR 244 -27.496 14.591 13.310 1.00 95.92 C +ATOM 3593 CE1 TYR 244 -27.405 17.361 13.816 1.00 95.92 C +ATOM 3594 CE2 TYR 244 -28.393 15.458 12.656 1.00 95.92 C +ATOM 3595 OH TYR 244 -29.265 17.668 12.322 1.00 95.92 O +ATOM 3596 CZ TYR 244 -28.361 16.841 12.921 1.00 95.92 C +ATOM 3606 N GLU 245 -22.572 12.150 14.384 1.00 96.35 N +ATOM 3607 CA GLU 245 -21.311 11.553 14.822 1.00 96.35 C +ATOM 3608 C GLU 245 -20.352 11.497 13.626 1.00 96.35 C +ATOM 3609 O GLU 245 -20.807 11.364 12.487 1.00 96.35 O +ATOM 3610 CB GLU 245 -21.564 10.122 15.352 1.00 96.35 C +ATOM 3611 CG GLU 245 -22.361 10.033 16.669 1.00 96.35 C +ATOM 3612 CD GLU 245 -21.662 10.636 17.893 1.00 96.35 C +ATOM 3613 OE1 GLU 245 -22.374 10.823 18.902 1.00 96.35 O +ATOM 3614 OE2 GLU 245 -20.442 10.904 17.821 1.00 96.35 O +ATOM 3621 N ASP 246 -19.040 11.568 13.915 1.00 97.58 N +ATOM 3622 CA ASP 246 -17.967 11.414 12.928 1.00 97.58 C +ATOM 3623 C ASP 246 -17.964 10.036 12.252 1.00 97.58 C +ATOM 3624 O ASP 246 -17.740 9.016 12.903 1.00 97.58 O +ATOM 3625 CB ASP 246 -16.557 11.751 13.466 1.00 97.58 C +ATOM 3626 CG ASP 246 -16.348 13.227 13.814 1.00 97.58 C +ATOM 3627 OD1 ASP 246 -16.780 14.071 12.997 1.00 97.58 O +ATOM 3628 OD2 ASP 246 -15.622 13.480 14.799 1.00 97.58 O +ATOM 3633 N TYR 247 -18.189 10.082 10.936 1.00 98.36 N +ATOM 3634 CA TYR 247 -18.114 8.987 9.990 1.00 98.36 C +ATOM 3635 C TYR 247 -17.216 9.461 8.845 1.00 98.36 C +ATOM 3636 O TYR 247 -17.518 10.483 8.227 1.00 98.36 O +ATOM 3637 CB TYR 247 -19.547 8.668 9.510 1.00 98.36 C +ATOM 3638 CG TYR 247 -19.661 7.677 8.363 1.00 98.36 C +ATOM 3639 CD1 TYR 247 -19.782 8.134 7.033 1.00 98.36 C +ATOM 3640 CD2 TYR 247 -19.650 6.292 8.629 1.00 98.36 C +ATOM 3641 CE1 TYR 247 -19.895 7.209 5.977 1.00 98.36 C +ATOM 3642 CE2 TYR 247 -19.770 5.368 7.573 1.00 98.36 C +ATOM 3643 OH TYR 247 -20.027 4.934 5.224 1.00 98.36 O +ATOM 3644 CZ TYR 247 -19.898 5.827 6.247 1.00 98.36 C +ATOM 3654 N ARG 248 -16.143 8.713 8.570 1.00 98.29 N +ATOM 3655 CA ARG 248 -15.335 8.893 7.369 1.00 98.29 C +ATOM 3656 C ARG 248 -15.298 7.559 6.628 1.00 98.29 C +ATOM 3657 O ARG 248 -15.077 6.532 7.265 1.00 98.29 O +ATOM 3658 CB ARG 248 -13.901 9.354 7.709 1.00 98.29 C +ATOM 3659 CG ARG 248 -13.768 10.556 8.662 1.00 98.29 C +ATOM 3660 CD ARG 248 -14.190 11.901 8.051 1.00 98.29 C +ATOM 3661 NE ARG 248 -14.098 12.995 9.031 1.00 98.29 N +ATOM 3662 NH1 ARG 248 -16.191 12.671 10.019 1.00 98.29 N +ATOM 3663 NH2 ARG 248 -14.777 14.292 10.834 1.00 98.29 N +ATOM 3664 CZ ARG 248 -15.022 13.315 9.953 1.00 98.29 C +ATOM 3678 N GLN 249 -15.480 7.607 5.303 1.00 98.62 N +ATOM 3679 CA GLN 249 -15.334 6.466 4.408 1.00 98.62 C +ATOM 3680 C GLN 249 -14.542 6.920 3.181 1.00 98.62 C +ATOM 3681 O GLN 249 -14.771 8.019 2.676 1.00 98.62 O +ATOM 3682 CB GLN 249 -16.725 5.921 4.008 1.00 98.62 C +ATOM 3683 CG GLN 249 -16.679 4.646 3.130 1.00 98.62 C +ATOM 3684 CD GLN 249 -18.038 4.270 2.539 1.00 98.62 C +ATOM 3685 NE2 GLN 249 -18.476 3.029 2.760 1.00 98.62 N +ATOM 3686 OE1 GLN 249 -18.666 5.074 1.852 1.00 98.62 O +ATOM 3695 N ILE 250 -13.671 6.025 2.702 1.00 98.74 N +ATOM 3696 CA ILE 250 -13.081 6.058 1.369 1.00 98.74 C +ATOM 3697 C ILE 250 -13.323 4.676 0.742 1.00 98.74 C +ATOM 3698 O ILE 250 -13.047 3.666 1.389 1.00 98.74 O +ATOM 3699 CB ILE 250 -11.553 6.368 1.410 1.00 98.74 C +ATOM 3700 CG1 ILE 250 -11.316 7.839 1.827 1.00 98.74 C +ATOM 3701 CG2 ILE 250 -10.817 6.069 0.083 1.00 98.74 C +ATOM 3702 CD1 ILE 250 -9.862 8.166 2.193 1.00 98.74 C +ATOM 3714 N THR 251 -13.817 4.667 -0.504 1.00 98.77 N +ATOM 3715 CA THR 251 -14.017 3.461 -1.305 1.00 98.77 C +ATOM 3716 C THR 251 -13.140 3.527 -2.570 1.00 98.77 C +ATOM 3717 O THR 251 -12.923 4.611 -3.111 1.00 98.77 O +ATOM 3718 CB THR 251 -15.515 3.275 -1.692 1.00 98.77 C +ATOM 3719 CG2 THR 251 -16.132 4.407 -2.532 1.00 98.77 C +ATOM 3720 OG1 THR 251 -15.708 2.082 -2.429 1.00 98.77 O +ATOM 3728 N GLY 252 -12.656 2.356 -3.003 1.00 98.80 N +ATOM 3729 CA GLY 252 -11.932 2.158 -4.252 1.00 98.80 C +ATOM 3730 C GLY 252 -12.486 0.885 -4.899 1.00 98.80 C +ATOM 3731 O GLY 252 -12.851 -0.059 -4.199 1.00 98.80 O +ATOM 3735 N SER 253 -12.515 0.848 -6.238 1.00 98.83 N +ATOM 3736 CA SER 253 -13.007 -0.279 -7.027 1.00 98.83 C +ATOM 3737 C SER 253 -12.219 -0.394 -8.338 1.00 98.83 C +ATOM 3738 O SER 253 -11.848 0.628 -8.916 1.00 98.83 O +ATOM 3739 CB SER 253 -14.515 -0.108 -7.310 1.00 98.83 C +ATOM 3740 OG SER 253 -15.302 -0.455 -6.192 1.00 98.83 O +ATOM 3746 N ILE 254 -11.994 -1.641 -8.782 1.00 98.87 N +ATOM 3747 CA ILE 254 -11.352 -1.999 -10.050 1.00 98.87 C +ATOM 3748 C ILE 254 -12.075 -3.245 -10.598 1.00 98.87 C +ATOM 3749 O ILE 254 -12.344 -4.169 -9.831 1.00 98.87 O +ATOM 3750 CB ILE 254 -9.834 -2.345 -9.886 1.00 98.87 C +ATOM 3751 CG1 ILE 254 -9.024 -1.162 -9.303 1.00 98.87 C +ATOM 3752 CG2 ILE 254 -9.177 -2.826 -11.204 1.00 98.87 C +ATOM 3753 CD1 ILE 254 -7.569 -1.504 -8.945 1.00 98.87 C +ATOM 3765 N GLY 255 -12.357 -3.264 -11.909 1.00 98.76 N +ATOM 3766 CA GLY 255 -13.031 -4.387 -12.554 1.00 98.76 C +ATOM 3767 C GLY 255 -12.600 -4.521 -14.015 1.00 98.76 C +ATOM 3768 O GLY 255 -11.746 -3.780 -14.507 1.00 98.76 O +ATOM 3772 N ASN 256 -13.245 -5.472 -14.712 1.00 98.61 N +ATOM 3773 CA ASN 256 -13.151 -5.664 -16.165 1.00 98.61 C +ATOM 3774 C ASN 256 -13.864 -4.535 -16.941 1.00 98.61 C +ATOM 3775 O ASN 256 -14.522 -3.702 -16.325 1.00 98.61 O +ATOM 3776 CB ASN 256 -13.647 -7.083 -16.548 1.00 98.61 C +ATOM 3777 CG ASN 256 -15.162 -7.330 -16.493 1.00 98.61 C +ATOM 3778 ND2 ASN 256 -15.626 -8.313 -17.264 1.00 98.61 N +ATOM 3779 OD1 ASN 256 -15.901 -6.667 -15.769 1.00 98.61 O +ATOM 3786 N MET 257 -13.706 -4.505 -18.276 1.00 98.54 N +ATOM 3787 CA MET 257 -14.151 -3.407 -19.156 1.00 98.54 C +ATOM 3788 C MET 257 -13.406 -2.082 -18.876 1.00 98.54 C +ATOM 3789 O MET 257 -13.945 -1.023 -19.184 1.00 98.54 O +ATOM 3790 CB MET 257 -15.687 -3.164 -19.105 1.00 98.54 C +ATOM 3791 CG MET 257 -16.597 -4.395 -19.165 1.00 98.54 C +ATOM 3792 SD MET 257 -18.340 -3.941 -18.961 1.00 98.54 S +ATOM 3793 CE MET 257 -19.048 -5.593 -18.804 1.00 98.54 C +ATOM 3803 N GLY 258 -12.218 -2.139 -18.250 1.00 98.43 N +ATOM 3804 CA GLY 258 -11.469 -0.960 -17.817 1.00 98.43 C +ATOM 3805 C GLY 258 -12.128 -0.218 -16.636 1.00 98.43 C +ATOM 3806 O GLY 258 -11.753 0.930 -16.393 1.00 98.43 O +ATOM 3810 N GLN 259 -13.097 -0.838 -15.925 1.00 98.81 N +ATOM 3811 CA GLN 259 -13.787 -0.271 -14.760 1.00 98.81 C +ATOM 3812 C GLN 259 -12.822 0.128 -13.637 1.00 98.81 C +ATOM 3813 O GLN 259 -11.932 -0.645 -13.281 1.00 98.81 O +ATOM 3814 CB GLN 259 -14.861 -1.237 -14.215 1.00 98.81 C +ATOM 3815 CG GLN 259 -16.147 -1.279 -15.058 1.00 98.81 C +ATOM 3816 CD GLN 259 -17.160 -2.278 -14.498 1.00 98.81 C +ATOM 3817 NE2 GLN 259 -16.975 -3.564 -14.796 1.00 98.81 N +ATOM 3818 OE1 GLN 259 -18.094 -1.897 -13.796 1.00 98.81 O +ATOM 3827 N LYS 260 -13.037 1.340 -13.118 1.00 98.82 N +ATOM 3828 CA LYS 260 -12.223 1.980 -12.097 1.00 98.82 C +ATOM 3829 C LYS 260 -13.077 3.071 -11.446 1.00 98.82 C +ATOM 3830 O LYS 260 -13.751 3.823 -12.148 1.00 98.82 O +ATOM 3831 CB LYS 260 -10.902 2.506 -12.713 1.00 98.82 C +ATOM 3832 CG LYS 260 -11.081 3.554 -13.829 1.00 98.82 C +ATOM 3833 CD LYS 260 -9.814 3.779 -14.661 1.00 98.82 C +ATOM 3834 CE LYS 260 -10.062 4.770 -15.806 1.00 98.82 C +ATOM 3835 NZ LYS 260 -8.888 4.876 -16.687 1.00 98.82 N +ATOM 3849 N GLU 261 -13.050 3.128 -10.112 1.00 98.85 N +ATOM 3850 CA GLU 261 -13.878 4.036 -9.329 1.00 98.85 C +ATOM 3851 C GLU 261 -13.196 4.343 -7.995 1.00 98.85 C +ATOM 3852 O GLU 261 -12.541 3.473 -7.424 1.00 98.85 O +ATOM 3853 CB GLU 261 -15.318 3.468 -9.226 1.00 98.85 C +ATOM 3854 CG GLU 261 -16.242 4.123 -8.174 1.00 98.85 C +ATOM 3855 CD GLU 261 -17.701 3.652 -8.236 1.00 98.85 C +ATOM 3856 OE1 GLU 261 -18.445 4.025 -7.303 1.00 98.85 O +ATOM 3857 OE2 GLU 261 -18.065 2.950 -9.205 1.00 98.85 O +ATOM 3864 N MET 262 -13.374 5.585 -7.532 1.00 98.88 N +ATOM 3865 CA MET 262 -12.930 6.069 -6.235 1.00 98.88 C +ATOM 3866 C MET 262 -13.982 7.060 -5.735 1.00 98.88 C +ATOM 3867 O MET 262 -14.384 7.948 -6.486 1.00 98.88 O +ATOM 3868 CB MET 262 -11.511 6.675 -6.351 1.00 98.88 C +ATOM 3869 CG MET 262 -10.864 7.117 -5.023 1.00 98.88 C +ATOM 3870 SD MET 262 -11.358 8.741 -4.372 1.00 98.88 S +ATOM 3871 CE MET 262 -10.262 8.842 -2.934 1.00 98.88 C +ATOM 3881 N GLY 263 -14.393 6.897 -4.474 1.00 98.87 N +ATOM 3882 CA GLY 263 -15.332 7.795 -3.820 1.00 98.87 C +ATOM 3883 C GLY 263 -14.884 8.029 -2.379 1.00 98.87 C +ATOM 3884 O GLY 263 -13.990 7.358 -1.859 1.00 98.87 O +ATOM 3888 N PHE 264 -15.563 8.980 -1.731 1.00 98.90 N +ATOM 3889 CA PHE 264 -15.445 9.261 -0.306 1.00 98.90 C +ATOM 3890 C PHE 264 -16.782 9.806 0.206 1.00 98.90 C +ATOM 3891 O PHE 264 -17.557 10.363 -0.570 1.00 98.90 O +ATOM 3892 CB PHE 264 -14.249 10.203 -0.030 1.00 98.90 C +ATOM 3893 CG PHE 264 -14.363 11.634 -0.534 1.00 98.90 C +ATOM 3894 CD1 PHE 264 -13.889 11.978 -1.818 1.00 98.90 C +ATOM 3895 CD2 PHE 264 -15.062 12.603 0.218 1.00 98.90 C +ATOM 3896 CE1 PHE 264 -14.041 13.275 -2.289 1.00 98.90 C +ATOM 3897 CE2 PHE 264 -15.215 13.890 -0.276 1.00 98.90 C +ATOM 3898 CZ PHE 264 -14.700 14.228 -1.520 1.00 98.90 C +ATOM 3908 N ASP 265 -17.016 9.631 1.513 1.00 98.84 N +ATOM 3909 CA ASP 265 -18.246 10.008 2.199 1.00 98.84 C +ATOM 3910 C ASP 265 -17.845 10.392 3.630 1.00 98.84 C +ATOM 3911 O ASP 265 -17.717 9.520 4.490 1.00 98.84 O +ATOM 3912 CB ASP 265 -19.301 8.875 2.094 1.00 98.84 C +ATOM 3913 CG ASP 265 -20.667 9.138 2.737 1.00 98.84 C +ATOM 3914 OD1 ASP 265 -20.885 10.228 3.309 1.00 98.84 O +ATOM 3915 OD2 ASP 265 -21.502 8.212 2.640 1.00 98.84 O +ATOM 3920 N PHE 266 -17.613 11.699 3.829 1.00 98.84 N +ATOM 3921 CA PHE 266 -17.192 12.295 5.094 1.00 98.84 C +ATOM 3922 C PHE 266 -18.381 13.070 5.674 1.00 98.84 C +ATOM 3923 O PHE 266 -18.968 13.882 4.961 1.00 98.84 O +ATOM 3924 CB PHE 266 -15.998 13.243 4.835 1.00 98.84 C +ATOM 3925 CG PHE 266 -14.775 12.642 4.153 1.00 98.84 C +ATOM 3926 CD1 PHE 266 -14.380 11.305 4.383 1.00 98.84 C +ATOM 3927 CD2 PHE 266 -13.919 13.476 3.401 1.00 98.84 C +ATOM 3928 CE1 PHE 266 -13.215 10.809 3.817 1.00 98.84 C +ATOM 3929 CE2 PHE 266 -12.756 12.961 2.841 1.00 98.84 C +ATOM 3930 CZ PHE 266 -12.409 11.631 3.042 1.00 98.84 C +ATOM 3940 N SER 267 -18.717 12.805 6.944 1.00 98.78 N +ATOM 3941 CA SER 267 -19.920 13.316 7.600 1.00 98.78 C +ATOM 3942 C SER 267 -19.684 13.419 9.112 1.00 98.78 C +ATOM 3943 O SER 267 -19.146 12.479 9.691 1.00 98.78 O +ATOM 3944 CB SER 267 -21.079 12.350 7.277 1.00 98.78 C +ATOM 3945 OG SER 267 -22.319 12.835 7.737 1.00 98.78 O +ATOM 3951 N GLY 268 -20.108 14.525 9.739 1.00 98.38 N +ATOM 3952 CA GLY 268 -19.914 14.694 11.177 1.00 98.38 C +ATOM 3953 C GLY 268 -20.433 16.057 11.656 1.00 98.38 C +ATOM 3954 O GLY 268 -20.795 16.903 10.838 1.00 98.38 O +ATOM 3958 N PRO 269 -20.467 16.278 12.989 1.00 98.31 N +ATOM 3959 CA PRO 269 -20.855 17.561 13.595 1.00 98.31 C +ATOM 3960 C PRO 269 -19.735 18.615 13.497 1.00 98.31 C +ATOM 3961 O PRO 269 -18.557 18.275 13.614 1.00 98.31 O +ATOM 3962 CB PRO 269 -21.161 17.171 15.047 1.00 98.31 C +ATOM 3963 CG PRO 269 -20.209 16.023 15.344 1.00 98.31 C +ATOM 3964 CD PRO 269 -20.127 15.286 14.012 1.00 98.31 C +ATOM 3972 N LEU 270 -20.138 19.876 13.284 1.00 98.30 N +ATOM 3973 CA LEU 270 -19.249 21.040 13.201 1.00 98.30 C +ATOM 3974 C LEU 270 -19.200 21.843 14.515 1.00 98.30 C +ATOM 3975 O LEU 270 -18.329 22.704 14.642 1.00 98.30 O +ATOM 3976 CB LEU 270 -19.711 21.938 12.032 1.00 98.30 C +ATOM 3977 CG LEU 270 -19.588 21.274 10.642 1.00 98.30 C +ATOM 3978 CD1 LEU 270 -20.222 22.157 9.550 1.00 98.30 C +ATOM 3979 CD2 LEU 270 -18.128 20.898 10.310 1.00 98.30 C +ATOM 3991 N ASP 271 -20.104 21.545 15.462 1.00 97.32 N +ATOM 3992 CA ASP 271 -20.184 22.154 16.791 1.00 97.32 C +ATOM 3993 C ASP 271 -20.176 21.053 17.867 1.00 97.32 C +ATOM 3994 O ASP 271 -20.527 19.905 17.584 1.00 97.32 O +ATOM 3995 CB ASP 271 -21.412 23.094 16.964 1.00 97.32 C +ATOM 3996 CG ASP 271 -22.793 22.551 16.561 1.00 97.32 C +ATOM 3997 OD1 ASP 271 -22.892 21.384 16.125 1.00 97.32 O +ATOM 3998 OD2 ASP 271 -23.759 23.328 16.708 1.00 97.32 O +ATOM 4003 N GLU 272 -19.799 21.438 19.098 1.00 95.79 N +ATOM 4004 CA GLU 272 -19.805 20.573 20.282 1.00 95.79 C +ATOM 4005 C GLU 272 -21.225 20.146 20.707 1.00 95.79 C +ATOM 4006 O GLU 272 -21.403 19.025 21.184 1.00 95.79 O +ATOM 4007 CB GLU 272 -19.025 21.280 21.415 1.00 95.79 C +ATOM 4008 CG GLU 272 -18.945 20.499 22.747 1.00 95.79 C +ATOM 4009 CD GLU 272 -18.080 21.168 23.822 1.00 95.79 C +ATOM 4010 OE1 GLU 272 -18.035 20.593 24.932 1.00 95.79 O +ATOM 4011 OE2 GLU 272 -17.473 22.223 23.533 1.00 95.79 O +ATOM 4018 N GLU 273 -22.203 21.042 20.495 1.00 95.36 N +ATOM 4019 CA GLU 273 -23.618 20.861 20.812 1.00 95.36 C +ATOM 4020 C GLU 273 -24.348 19.877 19.872 1.00 95.36 C +ATOM 4021 O GLU 273 -25.431 19.422 20.241 1.00 95.36 O +ATOM 4022 CB GLU 273 -24.336 22.233 20.819 1.00 95.36 C +ATOM 4023 CG GLU 273 -23.873 23.257 21.883 1.00 95.36 C +ATOM 4024 CD GLU 273 -22.515 23.929 21.639 1.00 95.36 C +ATOM 4025 OE1 GLU 273 -21.933 24.395 22.642 1.00 95.36 O +ATOM 4026 OE2 GLU 273 -22.082 23.980 20.467 1.00 95.36 O +ATOM 4033 N LYS 274 -23.763 19.574 18.695 1.00 96.72 N +ATOM 4034 CA LYS 274 -24.287 18.677 17.653 1.00 96.72 C +ATOM 4035 C LYS 274 -25.629 19.173 17.080 1.00 96.72 C +ATOM 4036 O LYS 274 -26.622 18.446 17.101 1.00 96.72 O +ATOM 4037 CB LYS 274 -24.340 17.209 18.149 1.00 96.72 C +ATOM 4038 CG LYS 274 -22.955 16.623 18.461 1.00 96.72 C +ATOM 4039 CD LYS 274 -23.027 15.212 19.060 1.00 96.72 C +ATOM 4040 CE LYS 274 -21.632 14.616 19.287 1.00 96.72 C +ATOM 4041 NZ LYS 274 -21.699 13.336 20.007 1.00 96.72 N +ATOM 4055 N ARG 275 -25.620 20.425 16.602 1.00 96.45 N +ATOM 4056 CA ARG 275 -26.769 21.116 16.012 1.00 96.45 C +ATOM 4057 C ARG 275 -26.500 21.464 14.542 1.00 96.45 C +ATOM 4058 O ARG 275 -27.442 21.503 13.755 1.00 96.45 O +ATOM 4059 CB ARG 275 -27.087 22.400 16.807 1.00 96.45 C +ATOM 4060 CG ARG 275 -27.102 22.207 18.334 1.00 96.45 C +ATOM 4061 CD ARG 275 -27.532 23.463 19.098 1.00 96.45 C +ATOM 4062 NE ARG 275 -28.978 23.686 18.984 1.00 96.45 N +ATOM 4063 NH1 ARG 275 -28.952 26.025 19.167 1.00 96.45 N +ATOM 4064 NH2 ARG 275 -30.944 24.875 18.980 1.00 96.45 N +ATOM 4065 CZ ARG 275 -29.612 24.866 19.045 1.00 96.45 C +ATOM 4079 N ILE 276 -25.222 21.687 14.197 1.00 98.23 N +ATOM 4080 CA ILE 276 -24.756 21.900 12.834 1.00 98.23 C +ATOM 4081 C ILE 276 -23.904 20.679 12.457 1.00 98.23 C +ATOM 4082 O ILE 276 -22.985 20.330 13.199 1.00 98.23 O +ATOM 4083 CB ILE 276 -23.885 23.185 12.706 1.00 98.23 C +ATOM 4084 CG1 ILE 276 -24.659 24.439 13.181 1.00 98.23 C +ATOM 4085 CG2 ILE 276 -23.363 23.407 11.267 1.00 98.23 C +ATOM 4086 CD1 ILE 276 -23.793 25.702 13.290 1.00 98.23 C +ATOM 4098 N ALA 277 -24.221 20.058 11.313 1.00 98.65 N +ATOM 4099 CA ALA 277 -23.516 18.886 10.800 1.00 98.65 C +ATOM 4100 C ALA 277 -23.466 18.933 9.273 1.00 98.65 C +ATOM 4101 O ALA 277 -24.446 19.331 8.646 1.00 98.65 O +ATOM 4102 CB ALA 277 -24.205 17.604 11.303 1.00 98.65 C +ATOM 4108 N TYR 278 -22.333 18.493 8.707 1.00 98.80 N +ATOM 4109 CA TYR 278 -22.095 18.431 7.265 1.00 98.80 C +ATOM 4110 C TYR 278 -22.154 16.978 6.764 1.00 98.80 C +ATOM 4111 O TYR 278 -22.070 16.041 7.560 1.00 98.80 O +ATOM 4112 CB TYR 278 -20.723 19.082 6.950 1.00 98.80 C +ATOM 4113 CG TYR 278 -19.489 18.218 7.183 1.00 98.80 C +ATOM 4114 CD1 TYR 278 -19.004 18.017 8.490 1.00 98.80 C +ATOM 4115 CD2 TYR 278 -18.843 17.585 6.099 1.00 98.80 C +ATOM 4116 CE1 TYR 278 -17.904 17.169 8.720 1.00 98.80 C +ATOM 4117 CE2 TYR 278 -17.740 16.740 6.326 1.00 98.80 C +ATOM 4118 OH TYR 278 -16.215 15.695 7.862 1.00 98.80 O +ATOM 4119 CZ TYR 278 -17.274 16.525 7.638 1.00 98.80 C +ATOM 4129 N ARG 279 -22.210 16.844 5.430 1.00 98.86 N +ATOM 4130 CA ARG 279 -21.916 15.614 4.706 1.00 98.86 C +ATOM 4131 C ARG 279 -21.420 15.978 3.306 1.00 98.86 C +ATOM 4132 O ARG 279 -22.218 16.404 2.473 1.00 98.86 O +ATOM 4133 CB ARG 279 -23.116 14.649 4.727 1.00 98.86 C +ATOM 4134 CG ARG 279 -22.850 13.264 4.105 1.00 98.86 C +ATOM 4135 CD ARG 279 -23.838 12.220 4.655 1.00 98.86 C +ATOM 4136 NE ARG 279 -23.440 10.833 4.385 1.00 98.86 N +ATOM 4137 NH1 ARG 279 -25.377 9.853 5.278 1.00 98.86 N +ATOM 4138 NH2 ARG 279 -23.722 8.529 4.381 1.00 98.86 N +ATOM 4139 CZ ARG 279 -24.180 9.748 4.683 1.00 98.86 C +ATOM 4153 N LEU 280 -20.105 15.815 3.098 1.00 98.93 N +ATOM 4154 CA LEU 280 -19.425 16.019 1.826 1.00 98.93 C +ATOM 4155 C LEU 280 -19.085 14.643 1.248 1.00 98.93 C +ATOM 4156 O LEU 280 -18.270 13.919 1.823 1.00 98.93 O +ATOM 4157 CB LEU 280 -18.159 16.881 2.041 1.00 98.93 C +ATOM 4158 CG LEU 280 -17.405 17.241 0.736 1.00 98.93 C +ATOM 4159 CD1 LEU 280 -18.265 18.103 -0.209 1.00 98.93 C +ATOM 4160 CD2 LEU 280 -16.038 17.888 1.038 1.00 98.93 C +ATOM 4172 N ILE 281 -19.721 14.329 0.114 1.00 98.93 N +ATOM 4173 CA ILE 281 -19.535 13.081 -0.618 1.00 98.93 C +ATOM 4174 C ILE 281 -18.961 13.443 -1.992 1.00 98.93 C +ATOM 4175 O ILE 281 -19.449 14.392 -2.601 1.00 98.93 O +ATOM 4176 CB ILE 281 -20.890 12.344 -0.834 1.00 98.93 C +ATOM 4177 CG1 ILE 281 -21.639 12.194 0.508 1.00 98.93 C +ATOM 4178 CG2 ILE 281 -20.719 10.969 -1.526 1.00 98.93 C +ATOM 4179 CD1 ILE 281 -22.981 11.473 0.410 1.00 98.93 C +ATOM 4191 N GLY 282 -17.953 12.688 -2.449 1.00 98.88 N +ATOM 4192 CA GLY 282 -17.341 12.862 -3.763 1.00 98.88 C +ATOM 4193 C GLY 282 -17.272 11.515 -4.482 1.00 98.88 C +ATOM 4194 O GLY 282 -17.369 10.453 -3.868 1.00 98.88 O +ATOM 4198 N LEU 283 -17.077 11.588 -5.806 1.00 98.79 N +ATOM 4199 CA LEU 283 -16.991 10.450 -6.712 1.00 98.79 C +ATOM 4200 C LEU 283 -16.200 10.856 -7.963 1.00 98.79 C +ATOM 4201 O LEU 283 -16.449 11.921 -8.526 1.00 98.79 O +ATOM 4202 CB LEU 283 -18.420 9.959 -7.056 1.00 98.79 C +ATOM 4203 CG LEU 283 -18.513 8.820 -8.098 1.00 98.79 C +ATOM 4204 CD1 LEU 283 -17.741 7.560 -7.659 1.00 98.79 C +ATOM 4205 CD2 LEU 283 -19.983 8.513 -8.440 1.00 98.79 C +ATOM 4217 N GLY 284 -15.305 9.962 -8.399 1.00 98.91 N +ATOM 4218 CA GLY 284 -14.670 9.996 -9.709 1.00 98.91 C +ATOM 4219 C GLY 284 -14.634 8.543 -10.179 1.00 98.91 C +ATOM 4220 O GLY 284 -14.113 7.684 -9.468 1.00 98.91 O +ATOM 4224 N LYS 285 -15.162 8.269 -11.380 1.00 98.76 N +ATOM 4225 CA LYS 285 -15.186 6.931 -11.966 1.00 98.76 C +ATOM 4226 C LYS 285 -15.061 6.998 -13.490 1.00 98.76 C +ATOM 4227 O LYS 285 -15.477 7.976 -14.111 1.00 98.76 O +ATOM 4228 CB LYS 285 -16.429 6.145 -11.481 1.00 98.76 C +ATOM 4229 CG LYS 285 -17.798 6.584 -12.033 1.00 98.76 C +ATOM 4230 CD LYS 285 -18.955 5.798 -11.388 1.00 98.76 C +ATOM 4231 CE LYS 285 -20.169 5.610 -12.310 1.00 98.76 C +ATOM 4232 NZ LYS 285 -21.288 4.975 -11.593 1.00 98.76 N +ATOM 4246 N GLY 286 -14.478 5.930 -14.047 1.00 98.75 N +ATOM 4247 CA GLY 286 -14.268 5.747 -15.473 1.00 98.75 C +ATOM 4248 C GLY 286 -14.451 4.265 -15.805 1.00 98.75 C +ATOM 4249 O GLY 286 -14.408 3.395 -14.935 1.00 98.75 O +ATOM 4253 N SER 287 -14.630 3.990 -17.099 1.00 98.81 N +ATOM 4254 CA SER 287 -14.789 2.660 -17.674 1.00 98.81 C +ATOM 4255 C SER 287 -14.743 2.794 -19.202 1.00 98.81 C +ATOM 4256 O SER 287 -15.001 3.868 -19.747 1.00 98.81 O +ATOM 4257 CB SER 287 -16.113 2.015 -17.174 1.00 98.81 C +ATOM 4258 OG SER 287 -16.320 0.709 -17.672 1.00 98.81 O +ATOM 4264 N ASP 288 -14.513 1.657 -19.869 1.00 97.76 N +ATOM 4265 CA ASP 288 -14.954 1.407 -21.242 1.00 97.76 C +ATOM 4266 C ASP 288 -16.436 0.960 -21.172 1.00 97.76 C +ATOM 4267 O ASP 288 -17.189 1.459 -20.335 1.00 97.76 O +ATOM 4268 CB ASP 288 -14.033 0.417 -22.017 1.00 97.76 C +ATOM 4269 CG ASP 288 -12.523 0.616 -21.818 1.00 97.76 C +ATOM 4270 OD1 ASP 288 -12.099 1.773 -21.597 1.00 97.76 O +ATOM 4271 OD2 ASP 288 -11.796 -0.386 -21.989 1.00 97.76 O +ATOM 4276 N THR 289 -16.830 0.001 -22.012 1.00 98.38 N +ATOM 4277 CA THR 289 -18.044 -0.806 -21.864 1.00 98.38 C +ATOM 4278 C THR 289 -17.747 -2.174 -22.518 1.00 98.38 C +ATOM 4279 O THR 289 -16.587 -2.468 -22.825 1.00 98.38 O +ATOM 4280 CB THR 289 -19.299 -0.146 -22.521 1.00 98.38 C +ATOM 4281 CG2 THR 289 -19.745 1.191 -21.913 1.00 98.38 C +ATOM 4282 OG1 THR 289 -19.120 0.030 -23.909 1.00 98.38 O +ATOM 4290 N GLN 290 -18.786 -2.997 -22.740 1.00 98.64 N +ATOM 4291 CA GLN 290 -18.692 -4.163 -23.621 1.00 98.64 C +ATOM 4292 C GLN 290 -18.499 -3.757 -25.097 1.00 98.64 C +ATOM 4293 O GLN 290 -17.818 -4.475 -25.821 1.00 98.64 O +ATOM 4294 CB GLN 290 -19.915 -5.079 -23.413 1.00 98.64 C +ATOM 4295 CG GLN 290 -21.278 -4.529 -23.882 1.00 98.64 C +ATOM 4296 CD GLN 290 -22.433 -5.449 -23.479 1.00 98.64 C +ATOM 4297 NE2 GLN 290 -23.348 -5.740 -24.404 1.00 98.64 N +ATOM 4298 OE1 GLN 290 -22.512 -5.879 -22.332 1.00 98.64 O +ATOM 4307 N PHE 291 -19.070 -2.606 -25.494 1.00 98.74 N +ATOM 4308 CA PHE 291 -19.034 -2.060 -26.848 1.00 98.74 C +ATOM 4309 C PHE 291 -17.674 -1.402 -27.143 1.00 98.74 C +ATOM 4310 O PHE 291 -17.155 -0.669 -26.299 1.00 98.74 O +ATOM 4311 CB PHE 291 -20.186 -1.046 -27.016 1.00 98.74 C +ATOM 4312 CG PHE 291 -21.558 -1.564 -26.609 1.00 98.74 C +ATOM 4313 CD1 PHE 291 -22.260 -2.462 -27.438 1.00 98.74 C +ATOM 4314 CD2 PHE 291 -22.075 -1.279 -25.327 1.00 98.74 C +ATOM 4315 CE1 PHE 291 -23.478 -2.986 -27.027 1.00 98.74 C +ATOM 4316 CE2 PHE 291 -23.293 -1.813 -24.931 1.00 98.74 C +ATOM 4317 CZ PHE 291 -23.996 -2.658 -25.780 1.00 98.74 C +ATOM 4327 N ASP 292 -17.142 -1.664 -28.350 1.00 98.29 N +ATOM 4328 CA ASP 292 -15.876 -1.122 -28.864 1.00 98.29 C +ATOM 4329 C ASP 292 -15.883 0.411 -28.966 1.00 98.29 C +ATOM 4330 O ASP 292 -16.879 0.985 -29.402 1.00 98.29 O +ATOM 4331 CB ASP 292 -15.477 -1.710 -30.242 1.00 98.29 C +ATOM 4332 CG ASP 292 -15.421 -3.239 -30.315 1.00 98.29 C +ATOM 4333 OD1 ASP 292 -15.141 -3.865 -29.269 1.00 98.29 O +ATOM 4334 OD2 ASP 292 -15.569 -3.750 -31.447 1.00 98.29 O +ATOM 4339 N HIS 293 -14.751 1.033 -28.588 1.00 98.17 N +ATOM 4340 CA HIS 293 -14.449 2.475 -28.657 1.00 98.17 C +ATOM 4341 C HIS 293 -15.220 3.370 -27.665 1.00 98.17 C +ATOM 4342 O HIS 293 -14.782 4.495 -27.423 1.00 98.17 O +ATOM 4343 CB HIS 293 -14.593 3.012 -30.101 1.00 98.17 C +ATOM 4344 CG HIS 293 -13.848 2.216 -31.144 1.00 98.17 C +ATOM 4345 CD2 HIS 293 -14.290 1.354 -32.123 1.00 98.17 C +ATOM 4346 ND1 HIS 293 -12.470 2.246 -31.267 1.00 98.17 N +ATOM 4347 CE1 HIS 293 -12.147 1.427 -32.272 1.00 98.17 C +ATOM 4348 NE2 HIS 293 -13.201 0.850 -32.835 1.00 98.17 N +ATOM 4356 N VAL 294 -16.331 2.866 -27.107 1.00 98.62 N +ATOM 4357 CA VAL 294 -17.210 3.560 -26.172 1.00 98.62 C +ATOM 4358 C VAL 294 -16.575 3.649 -24.774 1.00 98.62 C +ATOM 4359 O VAL 294 -16.032 2.653 -24.290 1.00 98.62 O +ATOM 4360 CB VAL 294 -18.554 2.791 -26.045 1.00 98.62 C +ATOM 4361 CG1 VAL 294 -19.485 3.301 -24.931 1.00 98.62 C +ATOM 4362 CG2 VAL 294 -19.329 2.784 -27.372 1.00 98.62 C +ATOM 4372 N LYS 295 -16.719 4.827 -24.146 1.00 98.67 N +ATOM 4373 CA LYS 295 -16.305 5.097 -22.771 1.00 98.67 C +ATOM 4374 C LYS 295 -17.511 5.557 -21.940 1.00 98.67 C +ATOM 4375 O LYS 295 -18.425 6.184 -22.474 1.00 98.67 O +ATOM 4376 CB LYS 295 -15.213 6.194 -22.756 1.00 98.67 C +ATOM 4377 CG LYS 295 -13.970 5.918 -23.624 1.00 98.67 C +ATOM 4378 CD LYS 295 -13.239 4.604 -23.305 1.00 98.67 C +ATOM 4379 CE LYS 295 -12.002 4.399 -24.189 1.00 98.67 C +ATOM 4380 NZ LYS 295 -11.488 3.025 -24.074 1.00 98.67 N +ATOM 4394 N GLU 296 -17.438 5.285 -20.630 1.00 98.76 N +ATOM 4395 CA GLU 296 -18.246 5.906 -19.583 1.00 98.76 C +ATOM 4396 C GLU 296 -17.292 6.664 -18.654 1.00 98.76 C +ATOM 4397 O GLU 296 -16.200 6.171 -18.372 1.00 98.76 O +ATOM 4398 CB GLU 296 -19.015 4.830 -18.788 1.00 98.76 C +ATOM 4399 CG GLU 296 -20.198 4.245 -19.573 1.00 98.76 C +ATOM 4400 CD GLU 296 -20.994 3.163 -18.838 1.00 98.76 C +ATOM 4401 OE1 GLU 296 -21.848 2.551 -19.515 1.00 98.76 O +ATOM 4402 OE2 GLU 296 -20.761 2.965 -17.625 1.00 98.76 O +ATOM 4409 N GLU 297 -17.716 7.843 -18.184 1.00 98.88 N +ATOM 4410 CA GLU 297 -16.919 8.680 -17.293 1.00 98.88 C +ATOM 4411 C GLU 297 -17.847 9.617 -16.516 1.00 98.88 C +ATOM 4412 O GLU 297 -18.822 10.112 -17.082 1.00 98.88 O +ATOM 4413 CB GLU 297 -15.834 9.417 -18.111 1.00 98.88 C +ATOM 4414 CG GLU 297 -14.804 10.202 -17.274 1.00 98.88 C +ATOM 4415 CD GLU 297 -13.654 10.761 -18.121 1.00 98.88 C +ATOM 4416 OE1 GLU 297 -12.596 11.045 -17.518 1.00 98.88 O +ATOM 4417 OE2 GLU 297 -13.840 10.902 -19.350 1.00 98.88 O +ATOM 4424 N ARG 298 -17.523 9.826 -15.233 1.00 98.88 N +ATOM 4425 CA ARG 298 -18.304 10.626 -14.297 1.00 98.88 C +ATOM 4426 C ARG 298 -17.394 11.197 -13.209 1.00 98.88 C +ATOM 4427 O ARG 298 -16.569 10.475 -12.653 1.00 98.88 O +ATOM 4428 CB ARG 298 -19.460 9.773 -13.721 1.00 98.88 C +ATOM 4429 CG ARG 298 -20.208 10.393 -12.518 1.00 98.88 C +ATOM 4430 CD ARG 298 -21.502 9.648 -12.168 1.00 98.88 C +ATOM 4431 NE ARG 298 -22.500 9.818 -13.227 1.00 98.88 N +ATOM 4432 NH1 ARG 298 -23.900 8.015 -12.687 1.00 98.88 N +ATOM 4433 NH2 ARG 298 -24.364 9.385 -14.496 1.00 98.88 N +ATOM 4434 CZ ARG 298 -23.586 9.066 -13.457 1.00 98.88 C +ATOM 4448 N TYR 299 -17.632 12.473 -12.891 1.00 98.94 N +ATOM 4449 CA TYR 299 -17.091 13.186 -11.741 1.00 98.94 C +ATOM 4450 C TYR 299 -18.270 13.889 -11.070 1.00 98.94 C +ATOM 4451 O TYR 299 -19.065 14.512 -11.769 1.00 98.94 O +ATOM 4452 CB TYR 299 -16.029 14.203 -12.199 1.00 98.94 C +ATOM 4453 CG TYR 299 -14.860 13.567 -12.922 1.00 98.94 C +ATOM 4454 CD1 TYR 299 -13.873 12.873 -12.192 1.00 98.94 C +ATOM 4455 CD2 TYR 299 -14.788 13.618 -14.330 1.00 98.94 C +ATOM 4456 CE1 TYR 299 -12.827 12.217 -12.868 1.00 98.94 C +ATOM 4457 CE2 TYR 299 -13.741 12.962 -15.004 1.00 98.94 C +ATOM 4458 OH TYR 299 -11.770 11.589 -14.927 1.00 98.94 O +ATOM 4459 CZ TYR 299 -12.766 12.253 -14.274 1.00 98.94 C +ATOM 4469 N ALA 300 -18.377 13.777 -9.741 1.00 98.93 N +ATOM 4470 CA ALA 300 -19.497 14.331 -8.987 1.00 98.93 C +ATOM 4471 C ALA 300 -19.102 14.642 -7.542 1.00 98.93 C +ATOM 4472 O ALA 300 -18.156 14.056 -7.017 1.00 98.93 O +ATOM 4473 CB ALA 300 -20.691 13.363 -9.063 1.00 98.93 C +ATOM 4479 N ILE 301 -19.856 15.565 -6.929 1.00 98.94 N +ATOM 4480 CA ILE 301 -19.667 16.009 -5.552 1.00 98.94 C +ATOM 4481 C ILE 301 -20.986 16.590 -5.010 1.00 98.94 C +ATOM 4482 O ILE 301 -21.676 17.308 -5.732 1.00 98.94 O +ATOM 4483 CB ILE 301 -18.502 17.040 -5.423 1.00 98.94 C +ATOM 4484 CG1 ILE 301 -18.119 17.323 -3.952 1.00 98.94 C +ATOM 4485 CG2 ILE 301 -18.740 18.355 -6.197 1.00 98.94 C +ATOM 4486 CD1 ILE 301 -16.779 18.052 -3.782 1.00 98.94 C +ATOM 4498 N ALA 302 -21.308 16.254 -3.751 1.00 98.94 N +ATOM 4499 CA ALA 302 -22.559 16.610 -3.086 1.00 98.94 C +ATOM 4500 C ALA 302 -22.295 17.172 -1.675 1.00 98.94 C +ATOM 4501 O ALA 302 -22.310 16.400 -0.715 1.00 98.94 O +ATOM 4502 CB ALA 302 -23.481 15.380 -3.054 1.00 98.94 C +ATOM 4508 N PRO 303 -22.065 18.502 -1.562 1.00 98.91 N +ATOM 4509 CA PRO 303 -22.024 19.186 -0.258 1.00 98.91 C +ATOM 4510 C PRO 303 -23.435 19.395 0.329 1.00 98.91 C +ATOM 4511 O PRO 303 -24.267 20.036 -0.311 1.00 98.91 O +ATOM 4512 CB PRO 303 -21.333 20.521 -0.587 1.00 98.91 C +ATOM 4513 CG PRO 303 -21.712 20.815 -2.030 1.00 98.91 C +ATOM 4514 CD PRO 303 -21.783 19.430 -2.665 1.00 98.91 C +ATOM 4522 N THR 304 -23.671 18.861 1.537 1.00 98.87 N +ATOM 4523 CA THR 304 -24.920 19.021 2.287 1.00 98.87 C +ATOM 4524 C THR 304 -24.605 19.532 3.709 1.00 98.87 C +ATOM 4525 O THR 304 -23.550 19.193 4.246 1.00 98.87 O +ATOM 4526 CB THR 304 -25.687 17.673 2.394 1.00 98.87 C +ATOM 4527 CG2 THR 304 -27.076 17.766 3.048 1.00 98.87 C +ATOM 4528 OG1 THR 304 -25.891 17.135 1.101 1.00 98.87 O +ATOM 4536 N LEU 305 -25.506 20.350 4.285 1.00 98.86 N +ATOM 4537 CA LEU 305 -25.319 20.995 5.587 1.00 98.86 C +ATOM 4538 C LEU 305 -26.663 21.142 6.319 1.00 98.86 C +ATOM 4539 O LEU 305 -27.486 21.958 5.911 1.00 98.86 O +ATOM 4540 CB LEU 305 -24.601 22.354 5.384 1.00 98.86 C +ATOM 4541 CG LEU 305 -24.344 23.183 6.667 1.00 98.86 C +ATOM 4542 CD1 LEU 305 -23.432 22.451 7.671 1.00 98.86 C +ATOM 4543 CD2 LEU 305 -23.813 24.589 6.323 1.00 98.86 C +ATOM 4555 N ALA 306 -26.822 20.389 7.418 1.00 98.58 N +ATOM 4556 CA ALA 306 -27.917 20.503 8.381 1.00 98.58 C +ATOM 4557 C ALA 306 -27.599 21.579 9.428 1.00 98.58 C +ATOM 4558 O ALA 306 -26.455 21.663 9.875 1.00 98.58 O +ATOM 4559 CB ALA 306 -28.131 19.141 9.058 1.00 98.58 C +ATOM 4565 N ILE 307 -28.617 22.376 9.788 1.00 98.45 N +ATOM 4566 CA ILE 307 -28.547 23.455 10.775 1.00 98.45 C +ATOM 4567 C ILE 307 -29.849 23.423 11.594 1.00 98.45 C +ATOM 4568 O ILE 307 -30.914 23.720 11.051 1.00 98.45 O +ATOM 4569 CB ILE 307 -28.411 24.869 10.118 1.00 98.45 C +ATOM 4570 CG1 ILE 307 -27.134 24.989 9.253 1.00 98.45 C +ATOM 4571 CG2 ILE 307 -28.459 26.024 11.151 1.00 98.45 C +ATOM 4572 CD1 ILE 307 -27.061 26.275 8.417 1.00 98.45 C +ATOM 4584 N ASP 308 -29.729 23.077 12.884 1.00 97.34 N +ATOM 4585 CA ASP 308 -30.834 23.008 13.840 1.00 97.34 C +ATOM 4586 C ASP 308 -30.865 24.299 14.672 1.00 97.34 C +ATOM 4587 O ASP 308 -30.086 24.438 15.616 1.00 97.34 O +ATOM 4588 CB ASP 308 -30.779 21.746 14.743 1.00 97.34 C +ATOM 4589 CG ASP 308 -30.590 20.423 13.990 1.00 97.34 C +ATOM 4590 OD1 ASP 308 -31.102 20.315 12.854 1.00 97.34 O +ATOM 4591 OD2 ASP 308 -30.000 19.504 14.597 1.00 97.34 O +ATOM 4596 N PHE 309 -31.769 25.226 14.300 1.00 96.26 N +ATOM 4597 CA PHE 309 -32.014 26.490 15.011 1.00 96.26 C +ATOM 4598 C PHE 309 -32.651 26.281 16.397 1.00 96.26 C +ATOM 4599 O PHE 309 -32.364 27.036 17.326 1.00 96.26 O +ATOM 4600 CB PHE 309 -32.932 27.400 14.171 1.00 96.26 C +ATOM 4601 CG PHE 309 -32.384 27.817 12.821 1.00 96.26 C +ATOM 4602 CD1 PHE 309 -31.434 28.856 12.728 1.00 96.26 C +ATOM 4603 CD2 PHE 309 -32.722 27.088 11.663 1.00 96.26 C +ATOM 4604 CE1 PHE 309 -30.898 29.195 11.492 1.00 96.26 C +ATOM 4605 CE2 PHE 309 -32.186 27.454 10.438 1.00 96.26 C +ATOM 4606 CZ PHE 309 -31.281 28.503 10.350 1.00 96.26 C +ATOM 4616 N SER 310 -33.484 25.238 16.496 1.00 94.39 N +ATOM 4617 CA SER 310 -34.139 24.737 17.697 1.00 94.39 C +ATOM 4618 C SER 310 -34.375 23.229 17.517 1.00 94.39 C +ATOM 4619 O SER 310 -34.126 22.691 16.438 1.00 94.39 O +ATOM 4620 CB SER 310 -35.419 25.559 17.986 1.00 94.39 C +ATOM 4621 OG SER 310 -36.447 25.341 17.040 1.00 94.39 O +ATOM 4627 N ASP 311 -34.880 22.563 18.566 1.00 92.51 N +ATOM 4628 CA ASP 311 -35.393 21.186 18.477 1.00 92.51 C +ATOM 4629 C ASP 311 -36.606 21.097 17.527 1.00 92.51 C +ATOM 4630 O ASP 311 -36.767 20.102 16.824 1.00 92.51 O +ATOM 4631 CB ASP 311 -35.738 20.561 19.851 1.00 92.51 C +ATOM 4632 CG ASP 311 -34.746 20.885 20.973 1.00 92.51 C +ATOM 4633 OD1 ASP 311 -33.959 19.977 21.319 1.00 92.51 O +ATOM 4634 OD2 ASP 311 -34.805 22.029 21.477 1.00 92.51 O +ATOM 4639 N ASP 312 -37.395 22.181 17.493 1.00 95.86 N +ATOM 4640 CA ASP 312 -38.556 22.382 16.634 1.00 95.86 C +ATOM 4641 C ASP 312 -38.225 22.810 15.192 1.00 95.86 C +ATOM 4642 O ASP 312 -39.171 22.902 14.419 1.00 95.86 O +ATOM 4643 CB ASP 312 -39.553 23.398 17.247 1.00 95.86 C +ATOM 4644 CG ASP 312 -39.978 23.105 18.688 1.00 95.86 C +ATOM 4645 OD1 ASP 312 -40.139 21.909 19.015 1.00 95.86 O +ATOM 4646 OD2 ASP 312 -40.221 24.095 19.413 1.00 95.86 O +ATOM 4651 N THR 313 -36.959 23.101 14.828 1.00 97.40 N +ATOM 4652 CA THR 313 -36.627 23.622 13.491 1.00 97.40 C +ATOM 4653 C THR 313 -35.272 23.106 12.977 1.00 97.40 C +ATOM 4654 O THR 313 -34.258 23.313 13.641 1.00 97.40 O +ATOM 4655 CB THR 313 -36.574 25.177 13.447 1.00 97.40 C +ATOM 4656 CG2 THR 313 -36.468 25.763 12.026 1.00 97.40 C +ATOM 4657 OG1 THR 313 -37.726 25.738 14.041 1.00 97.40 O +ATOM 4665 N THR 314 -35.283 22.512 11.773 1.00 97.93 N +ATOM 4666 CA THR 314 -34.103 22.036 11.049 1.00 97.93 C +ATOM 4667 C THR 314 -34.141 22.582 9.609 1.00 97.93 C +ATOM 4668 O THR 314 -35.197 22.564 8.980 1.00 97.93 O +ATOM 4669 CB THR 314 -34.092 20.481 10.981 1.00 97.93 C +ATOM 4670 CG2 THR 314 -33.030 19.848 10.056 1.00 97.93 C +ATOM 4671 OG1 THR 314 -33.879 19.970 12.282 1.00 97.93 O +ATOM 4679 N LEU 315 -32.976 23.016 9.103 1.00 98.57 N +ATOM 4680 CA LEU 315 -32.766 23.421 7.715 1.00 98.57 C +ATOM 4681 C LEU 315 -31.580 22.632 7.157 1.00 98.57 C +ATOM 4682 O LEU 315 -30.448 22.879 7.570 1.00 98.57 O +ATOM 4683 CB LEU 315 -32.524 24.947 7.644 1.00 98.57 C +ATOM 4684 CG LEU 315 -32.178 25.505 6.240 1.00 98.57 C +ATOM 4685 CD1 LEU 315 -33.261 25.169 5.197 1.00 98.57 C +ATOM 4686 CD2 LEU 315 -31.871 27.016 6.292 1.00 98.57 C +ATOM 4698 N THR 316 -31.860 21.732 6.204 1.00 98.78 N +ATOM 4699 CA THR 316 -30.841 20.990 5.469 1.00 98.78 C +ATOM 4700 C THR 316 -30.640 21.639 4.092 1.00 98.78 C +ATOM 4701 O THR 316 -31.445 21.413 3.194 1.00 98.78 O +ATOM 4702 CB THR 316 -31.237 19.502 5.288 1.00 98.78 C +ATOM 4703 CG2 THR 316 -30.228 18.663 4.482 1.00 98.78 C +ATOM 4704 OG1 THR 316 -31.355 18.906 6.564 1.00 98.78 O +ATOM 4712 N LEU 317 -29.564 22.428 3.958 1.00 98.92 N +ATOM 4713 CA LEU 317 -29.084 22.989 2.693 1.00 98.92 C +ATOM 4714 C LEU 317 -28.417 21.883 1.861 1.00 98.92 C +ATOM 4715 O LEU 317 -27.690 21.069 2.428 1.00 98.92 O +ATOM 4716 CB LEU 317 -28.073 24.118 2.990 1.00 98.92 C +ATOM 4717 CG LEU 317 -28.653 25.322 3.768 1.00 98.92 C +ATOM 4718 CD1 LEU 317 -27.535 26.302 4.181 1.00 98.92 C +ATOM 4719 CD2 LEU 317 -29.790 26.027 3.000 1.00 98.92 C +ATOM 4731 N GLN 318 -28.683 21.871 0.547 1.00 98.89 N +ATOM 4732 CA GLN 318 -28.238 20.824 -0.373 1.00 98.89 C +ATOM 4733 C GLN 318 -27.565 21.425 -1.612 1.00 98.89 C +ATOM 4734 O GLN 318 -28.014 22.448 -2.127 1.00 98.89 O +ATOM 4735 CB GLN 318 -29.450 19.975 -0.806 1.00 98.89 C +ATOM 4736 CG GLN 318 -30.083 19.156 0.333 1.00 98.89 C +ATOM 4737 CD GLN 318 -31.233 18.295 -0.184 1.00 98.89 C +ATOM 4738 NE2 GLN 318 -31.057 16.974 -0.166 1.00 98.89 N +ATOM 4739 OE1 GLN 318 -32.263 18.817 -0.606 1.00 98.89 O +ATOM 4748 N GLY 319 -26.532 20.726 -2.093 1.00 98.85 N +ATOM 4749 CA GLY 319 -25.867 20.974 -3.364 1.00 98.85 C +ATOM 4750 C GLY 319 -25.512 19.604 -3.949 1.00 98.85 C +ATOM 4751 O GLY 319 -25.241 18.658 -3.208 1.00 98.85 O +ATOM 4755 N TYR 320 -25.483 19.515 -5.287 1.00 98.94 N +ATOM 4756 CA TYR 320 -25.104 18.315 -6.027 1.00 98.94 C +ATOM 4757 C TYR 320 -24.703 18.706 -7.453 1.00 98.94 C +ATOM 4758 O TYR 320 -25.567 18.956 -8.293 1.00 98.94 O +ATOM 4759 CB TYR 320 -26.211 17.234 -5.948 1.00 98.94 C +ATOM 4760 CG TYR 320 -26.041 15.993 -6.817 1.00 98.94 C +ATOM 4761 CD1 TYR 320 -27.160 15.460 -7.490 1.00 98.94 C +ATOM 4762 CD2 TYR 320 -24.790 15.345 -6.935 1.00 98.94 C +ATOM 4763 CE1 TYR 320 -27.035 14.298 -8.274 1.00 98.94 C +ATOM 4764 CE2 TYR 320 -24.664 14.185 -7.723 1.00 98.94 C +ATOM 4765 OH TYR 320 -25.680 12.520 -9.131 1.00 98.94 O +ATOM 4766 CZ TYR 320 -25.789 13.656 -8.386 1.00 98.94 C +ATOM 4776 N LEU 321 -23.384 18.727 -7.683 1.00 98.95 N +ATOM 4777 CA LEU 321 -22.764 18.886 -8.991 1.00 98.95 C +ATOM 4778 C LEU 321 -22.384 17.499 -9.529 1.00 98.95 C +ATOM 4779 O LEU 321 -21.924 16.648 -8.768 1.00 98.95 O +ATOM 4780 CB LEU 321 -21.534 19.813 -8.835 1.00 98.95 C +ATOM 4781 CG LEU 321 -20.695 20.069 -10.112 1.00 98.95 C +ATOM 4782 CD1 LEU 321 -21.524 20.696 -11.255 1.00 98.95 C +ATOM 4783 CD2 LEU 321 -19.435 20.896 -9.778 1.00 98.95 C +ATOM 4795 N GLN 322 -22.548 17.324 -10.845 1.00 98.92 N +ATOM 4796 CA GLN 322 -22.107 16.155 -11.594 1.00 98.92 C +ATOM 4797 C GLN 322 -21.732 16.580 -13.017 1.00 98.92 C +ATOM 4798 O GLN 322 -22.377 17.460 -13.580 1.00 98.92 O +ATOM 4799 CB GLN 322 -23.171 15.034 -11.518 1.00 98.92 C +ATOM 4800 CG GLN 322 -22.930 13.838 -12.462 1.00 98.92 C +ATOM 4801 CD GLN 322 -23.857 12.668 -12.145 1.00 98.92 C +ATOM 4802 NE2 GLN 322 -24.796 12.373 -13.045 1.00 98.92 N +ATOM 4803 OE1 GLN 322 -23.715 12.026 -11.107 1.00 98.92 O +ATOM 4812 N HIS 323 -20.703 15.928 -13.569 1.00 98.93 N +ATOM 4813 CA HIS 323 -20.252 16.079 -14.942 1.00 98.93 C +ATOM 4814 C HIS 323 -19.898 14.689 -15.475 1.00 98.93 C +ATOM 4815 O HIS 323 -18.998 14.044 -14.941 1.00 98.93 O +ATOM 4816 CB HIS 323 -19.074 17.073 -15.010 1.00 98.93 C +ATOM 4817 CG HIS 323 -18.455 17.234 -16.379 1.00 98.93 C +ATOM 4818 CD2 HIS 323 -19.079 17.298 -17.608 1.00 98.93 C +ATOM 4819 ND1 HIS 323 -17.073 17.336 -16.572 1.00 98.93 N +ATOM 4820 CE1 HIS 323 -16.921 17.468 -17.883 1.00 98.93 C +ATOM 4821 NE2 HIS 323 -18.076 17.448 -18.547 1.00 98.93 N +ATOM 4829 N ASP 324 -20.614 14.286 -16.532 1.00 98.89 N +ATOM 4830 CA ASP 324 -20.462 13.030 -17.259 1.00 98.89 C +ATOM 4831 C ASP 324 -19.920 13.349 -18.668 1.00 98.89 C +ATOM 4832 O ASP 324 -20.730 13.454 -19.587 1.00 98.89 O +ATOM 4833 CB ASP 324 -21.788 12.217 -17.356 1.00 98.89 C +ATOM 4834 CG ASP 324 -22.538 11.975 -16.043 1.00 98.89 C +ATOM 4835 OD1 ASP 324 -21.888 11.973 -14.976 1.00 98.89 O +ATOM 4836 OD2 ASP 324 -23.755 11.698 -16.131 1.00 98.89 O +ATOM 4841 N PRO 325 -18.586 13.530 -18.840 1.00 98.72 N +ATOM 4842 CA PRO 325 -18.005 13.861 -20.160 1.00 98.72 C +ATOM 4843 C PRO 325 -18.108 12.753 -21.229 1.00 98.72 C +ATOM 4844 O PRO 325 -17.970 13.065 -22.412 1.00 98.72 O +ATOM 4845 CB PRO 325 -16.544 14.219 -19.846 1.00 98.72 C +ATOM 4846 CG PRO 325 -16.232 13.442 -18.580 1.00 98.72 C +ATOM 4847 CD PRO 325 -17.545 13.485 -17.810 1.00 98.72 C +ATOM 4855 N ASN 326 -18.371 11.503 -20.806 1.00 98.67 N +ATOM 4856 CA ASN 326 -18.651 10.352 -21.666 1.00 98.67 C +ATOM 4857 C ASN 326 -19.848 9.598 -21.066 1.00 98.67 C +ATOM 4858 O ASN 326 -19.832 9.280 -19.877 1.00 98.67 O +ATOM 4859 CB ASN 326 -17.397 9.454 -21.772 1.00 98.67 C +ATOM 4860 CG ASN 326 -16.268 10.072 -22.600 1.00 98.67 C +ATOM 4861 ND2 ASN 326 -15.175 10.488 -21.956 1.00 98.67 N +ATOM 4862 OD1 ASN 326 -16.376 10.161 -23.820 1.00 98.67 O +ATOM 4869 N GLY 327 -20.871 9.350 -21.899 1.00 97.67 N +ATOM 4870 CA GLY 327 -22.184 8.865 -21.461 1.00 97.67 C +ATOM 4871 C GLY 327 -22.408 7.364 -21.663 1.00 97.67 C +ATOM 4872 O GLY 327 -23.522 6.904 -21.411 1.00 97.67 O +ATOM 4876 N GLY 328 -21.412 6.606 -22.149 1.00 98.17 N +ATOM 4877 CA GLY 328 -21.564 5.190 -22.486 1.00 98.17 C +ATOM 4878 C GLY 328 -22.286 5.013 -23.825 1.00 98.17 C +ATOM 4879 O GLY 328 -22.467 5.963 -24.587 1.00 98.17 O +ATOM 4883 N TYR 329 -22.676 3.761 -24.107 1.00 98.16 N +ATOM 4884 CA TYR 329 -23.406 3.380 -25.314 1.00 98.16 C +ATOM 4885 C TYR 329 -24.893 3.730 -25.172 1.00 98.16 C +ATOM 4886 O TYR 329 -25.438 3.630 -24.073 1.00 98.16 O +ATOM 4887 CB TYR 329 -23.221 1.870 -25.561 1.00 98.16 C +ATOM 4888 CG TYR 329 -23.797 1.352 -26.868 1.00 98.16 C +ATOM 4889 CD1 TYR 329 -24.928 0.507 -26.871 1.00 98.16 C +ATOM 4890 CD2 TYR 329 -23.186 1.703 -28.088 1.00 98.16 C +ATOM 4891 CE1 TYR 329 -25.425 -0.002 -28.086 1.00 98.16 C +ATOM 4892 CE2 TYR 329 -23.687 1.200 -29.301 1.00 98.16 C +ATOM 4893 OH TYR 329 -25.300 -0.128 -30.482 1.00 98.16 O +ATOM 4894 CZ TYR 329 -24.805 0.344 -29.302 1.00 98.16 C +ATOM 4904 N HIS 330 -25.519 4.098 -26.298 1.00 98.44 N +ATOM 4905 CA HIS 330 -26.952 4.365 -26.381 1.00 98.44 C +ATOM 4906 C HIS 330 -27.455 4.180 -27.823 1.00 98.44 C +ATOM 4907 O HIS 330 -28.265 4.976 -28.293 1.00 98.44 O +ATOM 4908 CB HIS 330 -27.272 5.748 -25.764 1.00 98.44 C +ATOM 4909 CG HIS 330 -28.719 5.953 -25.401 1.00 98.44 C +ATOM 4910 CD2 HIS 330 -29.648 6.884 -25.811 1.00 98.44 C +ATOM 4911 ND1 HIS 330 -29.387 5.120 -24.523 1.00 98.44 N +ATOM 4912 CE1 HIS 330 -30.648 5.542 -24.466 1.00 98.44 C +ATOM 4913 NE2 HIS 330 -30.878 6.620 -25.205 1.00 98.44 N +ATOM 4921 N GLY 331 -26.956 3.134 -28.503 1.00 97.28 N +ATOM 4922 CA GLY 331 -27.372 2.743 -29.850 1.00 97.28 C +ATOM 4923 C GLY 331 -28.297 1.519 -29.776 1.00 97.28 C +ATOM 4924 O GLY 331 -28.668 1.055 -28.696 1.00 97.28 O +ATOM 4928 N GLY 332 -28.657 0.997 -30.956 1.00 97.95 N +ATOM 4929 CA GLY 332 -29.442 -0.223 -31.106 1.00 97.95 C +ATOM 4930 C GLY 332 -29.295 -0.693 -32.556 1.00 97.95 C +ATOM 4931 O GLY 332 -29.124 0.123 -33.464 1.00 97.95 O +ATOM 4935 N VAL 333 -29.380 -2.017 -32.763 1.00 98.75 N +ATOM 4936 CA VAL 333 -29.206 -2.684 -34.059 1.00 98.75 C +ATOM 4937 C VAL 333 -30.384 -3.653 -34.330 1.00 98.75 C +ATOM 4938 O VAL 333 -31.018 -4.078 -33.367 1.00 98.75 O +ATOM 4939 CB VAL 333 -27.877 -3.493 -34.092 1.00 98.75 C +ATOM 4940 CG1 VAL 333 -26.646 -2.574 -34.032 1.00 98.75 C +ATOM 4941 CG2 VAL 333 -27.779 -4.609 -33.033 1.00 98.75 C +ATOM 4951 N PRO 334 -30.677 -3.992 -35.610 1.00 98.72 N +ATOM 4952 CA PRO 334 -31.864 -4.799 -35.976 1.00 98.72 C +ATOM 4953 C PRO 334 -31.996 -6.197 -35.346 1.00 98.72 C +ATOM 4954 O PRO 334 -30.996 -6.834 -35.015 1.00 98.72 O +ATOM 4955 CB PRO 334 -31.811 -4.869 -37.511 1.00 98.72 C +ATOM 4956 CG PRO 334 -31.012 -3.650 -37.923 1.00 98.72 C +ATOM 4957 CD PRO 334 -29.976 -3.544 -36.816 1.00 98.72 C +ATOM 4965 N ALA 335 -33.261 -6.640 -35.230 1.00 98.60 N +ATOM 4966 CA ALA 335 -33.679 -7.982 -34.819 1.00 98.60 C +ATOM 4967 C ALA 335 -33.175 -9.085 -35.760 1.00 98.60 C +ATOM 4968 O ALA 335 -32.788 -10.149 -35.279 1.00 98.60 O +ATOM 4969 CB ALA 335 -35.209 -8.026 -34.708 1.00 98.60 C +ATOM 4975 N ASP 336 -33.115 -8.786 -37.068 1.00 98.31 N +ATOM 4976 CA ASP 336 -32.344 -9.556 -38.040 1.00 98.31 C +ATOM 4977 C ASP 336 -30.852 -9.273 -37.781 1.00 98.31 C +ATOM 4978 O ASP 336 -30.435 -8.119 -37.844 1.00 98.31 O +ATOM 4979 CB ASP 336 -32.769 -9.218 -39.489 1.00 98.31 C +ATOM 4980 CG ASP 336 -32.086 -10.062 -40.573 1.00 98.31 C +ATOM 4981 OD1 ASP 336 -31.639 -11.187 -40.256 1.00 98.31 O +ATOM 4982 OD2 ASP 336 -32.071 -9.585 -41.728 1.00 98.31 O +ATOM 4987 N GLY 337 -30.097 -10.329 -37.459 1.00 98.23 N +ATOM 4988 CA GLY 337 -28.696 -10.262 -37.061 1.00 98.23 C +ATOM 4989 C GLY 337 -28.515 -10.303 -35.535 1.00 98.23 C +ATOM 4990 O GLY 337 -27.373 -10.208 -35.098 1.00 98.23 O +ATOM 4994 N THR 338 -29.578 -10.453 -34.719 1.00 98.55 N +ATOM 4995 CA THR 338 -29.458 -10.610 -33.260 1.00 98.55 C +ATOM 4996 C THR 338 -30.419 -11.677 -32.703 1.00 98.55 C +ATOM 4997 O THR 338 -29.961 -12.540 -31.954 1.00 98.55 O +ATOM 4998 CB THR 338 -29.653 -9.283 -32.473 1.00 98.55 C +ATOM 4999 CG2 THR 338 -28.656 -8.188 -32.863 1.00 98.55 C +ATOM 5000 OG1 THR 338 -30.959 -8.749 -32.587 1.00 98.55 O +ATOM 5008 N LEU 339 -31.705 -11.636 -33.089 1.00 98.41 N +ATOM 5009 CA LEU 339 -32.711 -12.650 -32.747 1.00 98.41 C +ATOM 5010 C LEU 339 -32.758 -13.786 -33.790 1.00 98.41 C +ATOM 5011 O LEU 339 -33.277 -14.859 -33.483 1.00 98.41 O +ATOM 5012 CB LEU 339 -34.102 -11.984 -32.613 1.00 98.41 C +ATOM 5013 CG LEU 339 -34.210 -10.879 -31.535 1.00 98.41 C +ATOM 5014 CD1 LEU 339 -35.635 -10.288 -31.503 1.00 98.41 C +ATOM 5015 CD2 LEU 339 -33.770 -11.373 -30.143 1.00 98.41 C +ATOM 5027 N SER 340 -32.204 -13.535 -34.985 1.00 97.88 N +ATOM 5028 CA SER 340 -32.057 -14.474 -36.095 1.00 97.88 C +ATOM 5029 C SER 340 -30.765 -14.145 -36.858 1.00 97.88 C +ATOM 5030 O SER 340 -30.265 -13.029 -36.745 1.00 97.88 O +ATOM 5031 CB SER 340 -33.319 -14.414 -36.987 1.00 97.88 C +ATOM 5032 OG SER 340 -33.434 -13.196 -37.702 1.00 97.88 O +ATOM 5038 N HIS 341 -30.240 -15.114 -37.624 1.00 98.08 N +ATOM 5039 CA HIS 341 -29.031 -14.936 -38.432 1.00 98.08 C +ATOM 5040 C HIS 341 -29.291 -14.067 -39.675 1.00 98.08 C +ATOM 5041 O HIS 341 -30.157 -14.417 -40.477 1.00 98.08 O +ATOM 5042 CB HIS 341 -28.491 -16.314 -38.861 1.00 98.08 C +ATOM 5043 CG HIS 341 -27.929 -17.157 -37.744 1.00 98.08 C +ATOM 5044 CD2 HIS 341 -28.499 -18.134 -36.957 1.00 98.08 C +ATOM 5045 ND1 HIS 341 -26.606 -17.083 -37.343 1.00 98.08 N +ATOM 5046 CE1 HIS 341 -26.436 -17.985 -36.374 1.00 98.08 C +ATOM 5047 NE2 HIS 341 -27.544 -18.657 -36.084 1.00 98.08 N +ATOM 5055 N HIS 342 -28.488 -13.002 -39.840 1.00 98.10 N +ATOM 5056 CA HIS 342 -28.396 -12.228 -41.078 1.00 98.10 C +ATOM 5057 C HIS 342 -27.204 -12.767 -41.882 1.00 98.10 C +ATOM 5058 O HIS 342 -26.057 -12.560 -41.481 1.00 98.10 O +ATOM 5059 CB HIS 342 -28.232 -10.726 -40.770 1.00 98.10 C +ATOM 5060 CG HIS 342 -28.194 -9.864 -42.011 1.00 98.10 C +ATOM 5061 CD2 HIS 342 -27.143 -9.371 -42.754 1.00 98.10 C +ATOM 5062 ND1 HIS 342 -29.339 -9.414 -42.644 1.00 98.10 N +ATOM 5063 CE1 HIS 342 -28.950 -8.700 -43.703 1.00 98.10 C +ATOM 5064 NE2 HIS 342 -27.631 -8.631 -43.835 1.00 98.10 N +ATOM 5072 N ASN 343 -27.511 -13.471 -42.986 1.00 97.60 N +ATOM 5073 CA ASN 343 -26.559 -14.124 -43.902 1.00 97.60 C +ATOM 5074 C ASN 343 -25.653 -15.157 -43.189 1.00 97.60 C +ATOM 5075 O ASN 343 -24.470 -15.266 -43.511 1.00 97.60 O +ATOM 5076 CB ASN 343 -25.746 -13.082 -44.725 1.00 97.60 C +ATOM 5077 CG ASN 343 -26.577 -12.097 -45.561 1.00 97.60 C +ATOM 5078 ND2 ASN 343 -27.692 -12.544 -46.146 1.00 97.60 N +ATOM 5079 OD1 ASN 343 -26.199 -10.937 -45.705 1.00 97.60 O +ATOM 5086 N GLY 344 -26.236 -15.898 -42.230 1.00 97.57 N +ATOM 5087 CA GLY 344 -25.564 -16.951 -41.467 1.00 97.57 C +ATOM 5088 C GLY 344 -24.741 -16.420 -40.279 1.00 97.57 C +ATOM 5089 O GLY 344 -24.093 -17.228 -39.615 1.00 97.57 O +ATOM 5093 N ARG 345 -24.758 -15.104 -40.000 1.00 98.26 N +ATOM 5094 CA ARG 345 -23.994 -14.471 -38.921 1.00 98.26 C +ATOM 5095 C ARG 345 -24.909 -13.710 -37.952 1.00 98.26 C +ATOM 5096 O ARG 345 -25.962 -13.214 -38.349 1.00 98.26 O +ATOM 5097 CB ARG 345 -22.973 -13.481 -39.517 1.00 98.26 C +ATOM 5098 CG ARG 345 -21.920 -14.108 -40.442 1.00 98.26 C +ATOM 5099 CD ARG 345 -20.742 -13.151 -40.676 1.00 98.26 C +ATOM 5100 NE ARG 345 -19.835 -13.627 -41.727 1.00 98.26 N +ATOM 5101 NH1 ARG 345 -20.796 -12.387 -43.464 1.00 98.26 N +ATOM 5102 NH2 ARG 345 -19.009 -13.797 -43.882 1.00 98.26 N +ATOM 5103 CZ ARG 345 -19.887 -13.268 -43.020 1.00 98.26 C +ATOM 5117 N HIS 346 -24.426 -13.577 -36.709 1.00 98.60 N +ATOM 5118 CA HIS 346 -24.965 -12.671 -35.698 1.00 98.60 C +ATOM 5119 C HIS 346 -23.989 -11.510 -35.481 1.00 98.60 C +ATOM 5120 O HIS 346 -22.774 -11.711 -35.486 1.00 98.60 O +ATOM 5121 CB HIS 346 -25.178 -13.430 -34.373 1.00 98.60 C +ATOM 5122 CG HIS 346 -26.395 -14.319 -34.346 1.00 98.60 C +ATOM 5123 CD2 HIS 346 -27.647 -14.172 -34.901 1.00 98.60 C +ATOM 5124 ND1 HIS 346 -26.435 -15.518 -33.656 1.00 98.60 N +ATOM 5125 CE1 HIS 346 -27.660 -16.026 -33.818 1.00 98.60 C +ATOM 5126 NE2 HIS 346 -28.449 -15.264 -34.565 1.00 98.60 N +ATOM 5134 N ILE 347 -24.564 -10.320 -35.258 1.00 98.75 N +ATOM 5135 CA ILE 347 -23.879 -9.114 -34.805 1.00 98.75 C +ATOM 5136 C ILE 347 -23.406 -9.341 -33.355 1.00 98.75 C +ATOM 5137 O ILE 347 -24.169 -9.873 -32.547 1.00 98.75 O +ATOM 5138 CB ILE 347 -24.839 -7.882 -34.832 1.00 98.75 C +ATOM 5139 CG1 ILE 347 -25.417 -7.635 -36.246 1.00 98.75 C +ATOM 5140 CG2 ILE 347 -24.186 -6.587 -34.300 1.00 98.75 C +ATOM 5141 CD1 ILE 347 -26.535 -6.578 -36.284 1.00 98.75 C +ATOM 5153 N SER 348 -22.153 -8.958 -33.063 1.00 98.69 N +ATOM 5154 CA SER 348 -21.544 -9.103 -31.739 1.00 98.69 C +ATOM 5155 C SER 348 -22.237 -8.216 -30.689 1.00 98.69 C +ATOM 5156 O SER 348 -22.664 -7.108 -31.015 1.00 98.69 O +ATOM 5157 CB SER 348 -20.039 -8.775 -31.861 1.00 98.69 C +ATOM 5158 OG SER 348 -19.355 -8.933 -30.633 1.00 98.69 O +ATOM 5164 N ARG 349 -22.270 -8.682 -29.428 1.00 98.56 N +ATOM 5165 CA ARG 349 -22.680 -7.869 -28.275 1.00 98.56 C +ATOM 5166 C ARG 349 -21.719 -6.700 -27.973 1.00 98.56 C +ATOM 5167 O ARG 349 -22.084 -5.807 -27.212 1.00 98.56 O +ATOM 5168 CB ARG 349 -22.893 -8.782 -27.047 1.00 98.56 C +ATOM 5169 CG ARG 349 -21.606 -9.367 -26.435 1.00 98.56 C +ATOM 5170 CD ARG 349 -21.867 -10.237 -25.203 1.00 98.56 C +ATOM 5171 NE ARG 349 -20.638 -10.917 -24.775 1.00 98.56 N +ATOM 5172 NH1 ARG 349 -21.584 -12.092 -22.983 1.00 98.56 N +ATOM 5173 NH2 ARG 349 -19.323 -12.269 -23.442 1.00 98.56 N +ATOM 5174 CZ ARG 349 -20.525 -11.757 -23.734 1.00 98.56 C +ATOM 5188 N GLU 350 -20.523 -6.747 -28.578 1.00 98.79 N +ATOM 5189 CA GLU 350 -19.447 -5.774 -28.458 1.00 98.79 C +ATOM 5190 C GLU 350 -19.343 -4.867 -29.703 1.00 98.79 C +ATOM 5191 O GLU 350 -18.484 -3.988 -29.715 1.00 98.79 O +ATOM 5192 CB GLU 350 -18.132 -6.540 -28.174 1.00 98.79 C +ATOM 5193 CG GLU 350 -18.258 -7.503 -26.966 1.00 98.79 C +ATOM 5194 CD GLU 350 -16.963 -8.177 -26.514 1.00 98.79 C +ATOM 5195 OE1 GLU 350 -17.029 -8.822 -25.442 1.00 98.79 O +ATOM 5196 OE2 GLU 350 -15.945 -8.068 -27.230 1.00 98.79 O +ATOM 5203 N PHE 351 -20.218 -5.055 -30.711 1.00 98.75 N +ATOM 5204 CA PHE 351 -20.296 -4.215 -31.911 1.00 98.75 C +ATOM 5205 C PHE 351 -20.749 -2.778 -31.606 1.00 98.75 C +ATOM 5206 O PHE 351 -21.695 -2.585 -30.842 1.00 98.75 O +ATOM 5207 CB PHE 351 -21.197 -4.887 -32.973 1.00 98.75 C +ATOM 5208 CG PHE 351 -21.535 -4.048 -34.197 1.00 98.75 C +ATOM 5209 CD1 PHE 351 -22.763 -3.355 -34.269 1.00 98.75 C +ATOM 5210 CD2 PHE 351 -20.566 -3.831 -35.199 1.00 98.75 C +ATOM 5211 CE1 PHE 351 -23.030 -2.524 -35.348 1.00 98.75 C +ATOM 5212 CE2 PHE 351 -20.850 -2.984 -36.261 1.00 98.75 C +ATOM 5213 CZ PHE 351 -22.077 -2.337 -36.339 1.00 98.75 C +ATOM 5223 N PHE 352 -20.091 -1.815 -32.264 1.00 98.77 N +ATOM 5224 CA PHE 352 -20.380 -0.393 -32.166 1.00 98.77 C +ATOM 5225 C PHE 352 -20.825 0.134 -33.538 1.00 98.77 C +ATOM 5226 O PHE 352 -20.059 0.059 -34.499 1.00 98.77 O +ATOM 5227 CB PHE 352 -19.124 0.299 -31.607 1.00 98.77 C +ATOM 5228 CG PHE 352 -19.148 1.814 -31.557 1.00 98.77 C +ATOM 5229 CD1 PHE 352 -18.159 2.559 -32.232 1.00 98.77 C +ATOM 5230 CD2 PHE 352 -20.133 2.489 -30.807 1.00 98.77 C +ATOM 5231 CE1 PHE 352 -18.158 3.941 -32.136 1.00 98.77 C +ATOM 5232 CE2 PHE 352 -20.121 3.875 -30.740 1.00 98.77 C +ATOM 5233 CZ PHE 352 -19.132 4.595 -31.397 1.00 98.77 C +ATOM 5243 N ASP 353 -22.066 0.642 -33.598 1.00 98.44 N +ATOM 5244 CA ASP 353 -22.700 1.195 -34.801 1.00 98.44 C +ATOM 5245 C ASP 353 -22.222 2.619 -35.146 1.00 98.44 C +ATOM 5246 O ASP 353 -22.402 3.037 -36.289 1.00 98.44 O +ATOM 5247 CB ASP 353 -24.257 1.148 -34.779 1.00 98.44 C +ATOM 5248 CG ASP 353 -24.988 1.604 -33.503 1.00 98.44 C +ATOM 5249 OD1 ASP 353 -24.337 1.770 -32.450 1.00 98.44 O +ATOM 5250 OD2 ASP 353 -26.226 1.751 -33.597 1.00 98.44 O +ATOM 5255 N GLY 354 -21.641 3.343 -34.175 1.00 98.28 N +ATOM 5256 CA GLY 354 -21.243 4.740 -34.326 1.00 98.28 C +ATOM 5257 C GLY 354 -19.867 4.900 -34.983 1.00 98.28 C +ATOM 5258 O GLY 354 -19.288 3.956 -35.519 1.00 98.28 O +ATOM 5262 N GLU 355 -19.367 6.141 -34.929 1.00 98.53 N +ATOM 5263 CA GLU 355 -18.042 6.558 -35.382 1.00 98.53 C +ATOM 5264 C GLU 355 -17.286 7.100 -34.155 1.00 98.53 C +ATOM 5265 O GLU 355 -17.805 8.028 -33.535 1.00 98.53 O +ATOM 5266 CB GLU 355 -18.225 7.671 -36.440 1.00 98.53 C +ATOM 5267 CG GLU 355 -18.607 7.133 -37.834 1.00 98.53 C +ATOM 5268 CD GLU 355 -17.508 6.282 -38.483 1.00 98.53 C +ATOM 5269 OE1 GLU 355 -17.870 5.280 -39.136 1.00 98.53 O +ATOM 5270 OE2 GLU 355 -16.322 6.634 -38.307 1.00 98.53 O +ATOM 5277 N PRO 356 -16.104 6.535 -33.799 1.00 98.35 N +ATOM 5278 CA PRO 356 -15.307 6.990 -32.634 1.00 98.35 C +ATOM 5279 C PRO 356 -14.919 8.481 -32.619 1.00 98.35 C +ATOM 5280 O PRO 356 -14.806 9.064 -31.543 1.00 98.35 O +ATOM 5281 CB PRO 356 -14.050 6.101 -32.669 1.00 98.35 C +ATOM 5282 CG PRO 356 -14.480 4.854 -33.416 1.00 98.35 C +ATOM 5283 CD PRO 356 -15.461 5.388 -34.446 1.00 98.35 C +ATOM 5291 N SER 357 -14.743 9.060 -33.817 1.00 97.41 N +ATOM 5292 CA SER 357 -14.436 10.467 -34.064 1.00 97.41 C +ATOM 5293 C SER 357 -15.662 11.405 -34.018 1.00 97.41 C +ATOM 5294 O SER 357 -15.474 12.613 -34.162 1.00 97.41 O +ATOM 5295 CB SER 357 -13.693 10.537 -35.415 1.00 97.41 C +ATOM 5296 OG SER 357 -14.504 10.087 -36.485 1.00 97.41 O +ATOM 5302 N LYS 358 -16.879 10.859 -33.836 1.00 97.21 N +ATOM 5303 CA LYS 358 -18.134 11.612 -33.878 1.00 97.21 C +ATOM 5304 C LYS 358 -19.209 10.941 -32.998 1.00 97.21 C +ATOM 5305 O LYS 358 -20.365 10.835 -33.413 1.00 97.21 O +ATOM 5306 CB LYS 358 -18.541 11.822 -35.359 1.00 97.21 C +ATOM 5307 CG LYS 358 -19.555 12.959 -35.601 1.00 97.21 C +ATOM 5308 CD LYS 358 -19.642 13.396 -37.074 1.00 97.21 C +ATOM 5309 CE LYS 358 -18.401 14.171 -37.559 1.00 97.21 C +ATOM 5310 NZ LYS 358 -18.484 14.493 -38.991 1.00 97.21 N +ATOM 5324 N ASP 359 -18.802 10.507 -31.791 1.00 98.12 N +ATOM 5325 CA ASP 359 -19.676 9.920 -30.777 1.00 98.12 C +ATOM 5326 C ASP 359 -19.324 10.572 -29.430 1.00 98.12 C +ATOM 5327 O ASP 359 -18.337 10.190 -28.801 1.00 98.12 O +ATOM 5328 CB ASP 359 -19.601 8.375 -30.737 1.00 98.12 C +ATOM 5329 CG ASP 359 -20.648 7.733 -29.815 1.00 98.12 C +ATOM 5330 OD1 ASP 359 -21.829 8.137 -29.908 1.00 98.12 O +ATOM 5331 OD2 ASP 359 -20.267 6.789 -29.089 1.00 98.12 O +ATOM 5336 N ASP 360 -20.135 11.569 -29.050 1.00 98.10 N +ATOM 5337 CA ASP 360 -19.999 12.397 -27.852 1.00 98.10 C +ATOM 5338 C ASP 360 -21.299 12.318 -27.037 1.00 98.10 C +ATOM 5339 O ASP 360 -22.386 12.333 -27.613 1.00 98.10 O +ATOM 5340 CB ASP 360 -19.718 13.892 -28.176 1.00 98.10 C +ATOM 5341 CG ASP 360 -18.631 14.168 -29.224 1.00 98.10 C +ATOM 5342 OD1 ASP 360 -17.605 13.455 -29.205 1.00 98.10 O +ATOM 5343 OD2 ASP 360 -18.816 15.148 -29.981 1.00 98.10 O +ATOM 5348 N PHE 361 -21.162 12.334 -25.705 1.00 98.83 N +ATOM 5349 CA PHE 361 -22.252 12.645 -24.786 1.00 98.83 C +ATOM 5350 C PHE 361 -21.631 13.278 -23.542 1.00 98.83 C +ATOM 5351 O PHE 361 -21.177 12.553 -22.657 1.00 98.83 O +ATOM 5352 CB PHE 361 -23.147 11.420 -24.476 1.00 98.83 C +ATOM 5353 CG PHE 361 -24.363 11.722 -23.603 1.00 98.83 C +ATOM 5354 CD1 PHE 361 -24.280 11.709 -22.192 1.00 98.83 C +ATOM 5355 CD2 PHE 361 -25.553 12.193 -24.197 1.00 98.83 C +ATOM 5356 CE1 PHE 361 -25.383 12.045 -21.419 1.00 98.83 C +ATOM 5357 CE2 PHE 361 -26.640 12.547 -23.409 1.00 98.83 C +ATOM 5358 CZ PHE 361 -26.562 12.457 -22.026 1.00 98.83 C +ATOM 5368 N ASP 362 -21.632 14.618 -23.514 1.00 98.92 N +ATOM 5369 CA ASP 362 -21.298 15.411 -22.337 1.00 98.92 C +ATOM 5370 C ASP 362 -22.632 15.816 -21.695 1.00 98.92 C +ATOM 5371 O ASP 362 -23.499 16.343 -22.390 1.00 98.92 O +ATOM 5372 CB ASP 362 -20.424 16.634 -22.700 1.00 98.92 C +ATOM 5373 CG ASP 362 -19.788 17.336 -21.490 1.00 98.92 C +ATOM 5374 OD1 ASP 362 -20.539 17.739 -20.574 1.00 98.92 O +ATOM 5375 OD2 ASP 362 -18.551 17.516 -21.520 1.00 98.92 O +ATOM 5380 N ARG 363 -22.754 15.583 -20.381 1.00 98.89 N +ATOM 5381 CA ARG 363 -23.872 16.042 -19.567 1.00 98.89 C +ATOM 5382 C ARG 363 -23.324 16.589 -18.250 1.00 98.89 C +ATOM 5383 O ARG 363 -22.789 15.815 -17.460 1.00 98.89 O +ATOM 5384 CB ARG 363 -24.895 14.902 -19.372 1.00 98.89 C +ATOM 5385 CG ARG 363 -25.987 15.171 -18.308 1.00 98.89 C +ATOM 5386 CD ARG 363 -27.008 14.034 -18.192 1.00 98.89 C +ATOM 5387 NE ARG 363 -26.375 12.817 -17.668 1.00 98.89 N +ATOM 5388 NH1 ARG 363 -28.098 11.333 -18.222 1.00 98.89 N +ATOM 5389 NH2 ARG 363 -26.119 10.561 -17.304 1.00 98.89 N +ATOM 5390 CZ ARG 363 -26.875 11.576 -17.733 1.00 98.89 C +ATOM 5404 N THR 364 -23.528 17.893 -18.020 1.00 98.95 N +ATOM 5405 CA THR 364 -23.284 18.533 -16.731 1.00 98.95 C +ATOM 5406 C THR 364 -24.635 18.796 -16.047 1.00 98.95 C +ATOM 5407 O THR 364 -25.543 19.306 -16.697 1.00 98.95 O +ATOM 5408 CB THR 364 -22.541 19.884 -16.883 1.00 98.95 C +ATOM 5409 CG2 THR 364 -22.180 20.546 -15.540 1.00 98.95 C +ATOM 5410 OG1 THR 364 -21.326 19.674 -17.575 1.00 98.95 O +ATOM 5418 N GLN 365 -24.732 18.441 -14.758 1.00 98.91 N +ATOM 5419 CA GLN 365 -25.902 18.627 -13.901 1.00 98.91 C +ATOM 5420 C GLN 365 -25.481 19.505 -12.714 1.00 98.91 C +ATOM 5421 O GLN 365 -24.462 19.224 -12.086 1.00 98.91 O +ATOM 5422 CB GLN 365 -26.406 17.258 -13.394 1.00 98.91 C +ATOM 5423 CG GLN 365 -26.753 16.252 -14.515 1.00 98.91 C +ATOM 5424 CD GLN 365 -27.320 14.910 -14.029 1.00 98.91 C +ATOM 5425 NE2 GLN 365 -27.328 14.650 -12.719 1.00 98.91 N +ATOM 5426 OE1 GLN 365 -27.742 14.095 -14.845 1.00 98.91 O +ATOM 5435 N ARG 366 -26.270 20.553 -12.437 1.00 98.92 N +ATOM 5436 CA ARG 366 -25.996 21.563 -11.417 1.00 98.92 C +ATOM 5437 C ARG 366 -27.267 21.754 -10.579 1.00 98.92 C +ATOM 5438 O ARG 366 -28.146 22.520 -10.972 1.00 98.92 O +ATOM 5439 CB ARG 366 -25.535 22.896 -12.070 1.00 98.92 C +ATOM 5440 CG ARG 366 -24.456 22.751 -13.157 1.00 98.92 C +ATOM 5441 CD ARG 366 -23.978 24.102 -13.704 1.00 98.92 C +ATOM 5442 NE ARG 366 -23.066 23.932 -14.843 1.00 98.92 N +ATOM 5443 NH1 ARG 366 -24.679 24.008 -16.555 1.00 98.92 N +ATOM 5444 NH2 ARG 366 -22.465 23.660 -17.062 1.00 98.92 N +ATOM 5445 CZ ARG 366 -23.413 23.865 -16.141 1.00 98.92 C +ATOM 5459 N MET 367 -27.352 21.031 -9.453 1.00 98.93 N +ATOM 5460 CA MET 367 -28.476 21.102 -8.522 1.00 98.93 C +ATOM 5461 C MET 367 -28.072 21.871 -7.256 1.00 98.93 C +ATOM 5462 O MET 367 -26.975 21.670 -6.734 1.00 98.93 O +ATOM 5463 CB MET 367 -28.959 19.678 -8.171 1.00 98.93 C +ATOM 5464 CG MET 367 -29.517 18.905 -9.376 1.00 98.93 C +ATOM 5465 SD MET 367 -30.086 17.227 -8.994 1.00 98.93 S +ATOM 5466 CE MET 367 -30.461 16.632 -10.665 1.00 98.93 C +ATOM 5476 N PHE 368 -29.005 22.700 -6.770 1.00 98.83 N +ATOM 5477 CA PHE 368 -28.957 23.378 -5.479 1.00 98.83 C +ATOM 5478 C PHE 368 -30.374 23.424 -4.905 1.00 98.83 C +ATOM 5479 O PHE 368 -31.294 23.795 -5.630 1.00 98.83 O +ATOM 5480 CB PHE 368 -28.304 24.778 -5.599 1.00 98.83 C +ATOM 5481 CG PHE 368 -28.501 25.686 -4.390 1.00 98.83 C +ATOM 5482 CD1 PHE 368 -29.587 26.588 -4.345 1.00 98.83 C +ATOM 5483 CD2 PHE 368 -27.731 25.486 -3.225 1.00 98.83 C +ATOM 5484 CE1 PHE 368 -29.859 27.293 -3.179 1.00 98.83 C +ATOM 5485 CE2 PHE 368 -28.020 26.198 -2.069 1.00 98.83 C +ATOM 5486 CZ PHE 368 -29.078 27.099 -2.047 1.00 98.83 C +ATOM 5496 N GLY 369 -30.522 23.076 -3.622 1.00 98.82 N +ATOM 5497 CA GLY 369 -31.823 23.038 -2.973 1.00 98.82 C +ATOM 5498 C GLY 369 -31.680 23.237 -1.467 1.00 98.82 C +ATOM 5499 O GLY 369 -30.607 23.557 -0.953 1.00 98.82 O +ATOM 5503 N TYR 370 -32.800 23.020 -0.767 1.00 98.88 N +ATOM 5504 CA TYR 370 -32.876 22.954 0.687 1.00 98.88 C +ATOM 5505 C TYR 370 -34.160 22.226 1.110 1.00 98.88 C +ATOM 5506 O TYR 370 -35.108 22.129 0.330 1.00 98.88 O +ATOM 5507 CB TYR 370 -32.742 24.358 1.333 1.00 98.88 C +ATOM 5508 CG TYR 370 -33.869 25.347 1.068 1.00 98.88 C +ATOM 5509 CD1 TYR 370 -33.707 26.348 0.089 1.00 98.88 C +ATOM 5510 CD2 TYR 370 -35.075 25.278 1.799 1.00 98.88 C +ATOM 5511 CE1 TYR 370 -34.756 27.247 -0.185 1.00 98.88 C +ATOM 5512 CE2 TYR 370 -36.127 26.170 1.520 1.00 98.88 C +ATOM 5513 OH TYR 370 -36.990 28.013 0.239 1.00 98.88 O +ATOM 5514 CZ TYR 370 -35.970 27.152 0.522 1.00 98.88 C +ATOM 5524 N GLN 371 -34.169 21.762 2.366 1.00 98.84 N +ATOM 5525 CA GLN 371 -35.315 21.154 3.028 1.00 98.84 C +ATOM 5526 C GLN 371 -35.456 21.792 4.413 1.00 98.84 C +ATOM 5527 O GLN 371 -34.748 21.401 5.342 1.00 98.84 O +ATOM 5528 CB GLN 371 -35.140 19.624 3.108 1.00 98.84 C +ATOM 5529 CG GLN 371 -35.114 18.943 1.729 1.00 98.84 C +ATOM 5530 CD GLN 371 -35.132 17.422 1.854 1.00 98.84 C +ATOM 5531 NE2 GLN 371 -36.175 16.782 1.324 1.00 98.84 N +ATOM 5532 OE1 GLN 371 -34.222 16.828 2.424 1.00 98.84 O +ATOM 5541 N LEU 372 -36.365 22.774 4.510 1.00 98.75 N +ATOM 5542 CA LEU 372 -36.779 23.392 5.765 1.00 98.75 C +ATOM 5543 C LEU 372 -37.888 22.538 6.392 1.00 98.75 C +ATOM 5544 O LEU 372 -38.870 22.247 5.716 1.00 98.75 O +ATOM 5545 CB LEU 372 -37.247 24.840 5.485 1.00 98.75 C +ATOM 5546 CG LEU 372 -37.782 25.627 6.708 1.00 98.75 C +ATOM 5547 CD1 LEU 372 -36.767 25.698 7.871 1.00 98.75 C +ATOM 5548 CD2 LEU 372 -38.279 27.024 6.279 1.00 98.75 C +ATOM 5560 N GLU 373 -37.703 22.171 7.665 1.00 98.54 N +ATOM 5561 CA GLU 373 -38.628 21.385 8.477 1.00 98.54 C +ATOM 5562 C GLU 373 -38.883 22.176 9.765 1.00 98.54 C +ATOM 5563 O GLU 373 -37.929 22.683 10.356 1.00 98.54 O +ATOM 5564 CB GLU 373 -37.990 20.012 8.786 1.00 98.54 C +ATOM 5565 CG GLU 373 -37.668 19.182 7.524 1.00 98.54 C +ATOM 5566 CD GLU 373 -36.961 17.861 7.831 1.00 98.54 C +ATOM 5567 OE1 GLU 373 -37.432 17.145 8.741 1.00 98.54 O +ATOM 5568 OE2 GLU 373 -35.986 17.558 7.110 1.00 98.54 O +ATOM 5575 N HIS 374 -40.156 22.281 10.176 1.00 98.14 N +ATOM 5576 CA HIS 374 -40.560 23.074 11.334 1.00 98.14 C +ATOM 5577 C HIS 374 -41.769 22.439 12.032 1.00 98.14 C +ATOM 5578 O HIS 374 -42.756 22.128 11.376 1.00 98.14 O +ATOM 5579 CB HIS 374 -40.837 24.530 10.899 1.00 98.14 C +ATOM 5580 CG HIS 374 -41.318 25.448 11.998 1.00 98.14 C +ATOM 5581 CD2 HIS 374 -42.493 26.151 12.152 1.00 98.14 C +ATOM 5582 ND1 HIS 374 -40.574 25.720 13.134 1.00 98.14 N +ATOM 5583 CE1 HIS 374 -41.304 26.535 13.899 1.00 98.14 C +ATOM 5584 NE2 HIS 374 -42.481 26.840 13.366 1.00 98.14 N +ATOM 5592 N ARG 375 -41.685 22.316 13.362 1.00 97.55 N +ATOM 5593 CA ARG 375 -42.777 21.924 14.241 1.00 97.55 C +ATOM 5594 C ARG 375 -43.350 23.195 14.880 1.00 97.55 C +ATOM 5595 O ARG 375 -42.603 23.966 15.480 1.00 97.55 O +ATOM 5596 CB ARG 375 -42.245 20.924 15.287 1.00 97.55 C +ATOM 5597 CG ARG 375 -43.333 20.372 16.225 1.00 97.55 C +ATOM 5598 CD ARG 375 -42.807 19.429 17.314 1.00 97.55 C +ATOM 5599 NE ARG 375 -42.059 18.293 16.754 1.00 97.55 N +ATOM 5600 NH1 ARG 375 -42.119 16.968 18.682 1.00 97.55 N +ATOM 5601 NH2 ARG 375 -40.977 16.248 16.807 1.00 97.55 N +ATOM 5602 CZ ARG 375 -41.728 17.173 17.417 1.00 97.55 C +ATOM 5616 N ILE 376 -44.668 23.379 14.743 1.00 97.30 N +ATOM 5617 CA ILE 376 -45.404 24.506 15.316 1.00 97.30 C +ATOM 5618 C ILE 376 -45.903 24.160 16.736 1.00 97.30 C +ATOM 5619 O ILE 376 -45.800 25.001 17.627 1.00 97.30 O +ATOM 5620 CB ILE 376 -46.593 24.900 14.393 1.00 97.30 C +ATOM 5621 CG1 ILE 376 -46.086 25.438 13.032 1.00 97.30 C +ATOM 5622 CG2 ILE 376 -47.618 25.876 15.014 1.00 97.30 C +ATOM 5623 CD1 ILE 376 -47.051 25.186 11.866 1.00 97.30 C +ATOM 5635 N ASP 377 -46.378 22.916 16.918 1.00 94.60 N +ATOM 5636 CA ASP 377 -46.754 22.316 18.202 1.00 94.60 C +ATOM 5637 C ASP 377 -46.857 20.784 18.025 1.00 94.60 C +ATOM 5638 O ASP 377 -46.388 20.252 17.018 1.00 94.60 O +ATOM 5639 CB ASP 377 -48.002 22.964 18.881 1.00 94.60 C +ATOM 5640 CG ASP 377 -49.244 23.134 17.996 1.00 94.60 C +ATOM 5641 OD1 ASP 377 -49.459 22.269 17.122 1.00 94.60 O +ATOM 5642 OD2 ASP 377 -50.016 24.077 18.273 1.00 94.60 O +ATOM 5647 N ASP 378 -47.470 20.090 18.998 1.00 92.31 N +ATOM 5648 CA ASP 378 -47.720 18.640 18.960 1.00 92.31 C +ATOM 5649 C ASP 378 -48.718 18.200 17.868 1.00 92.31 C +ATOM 5650 O ASP 378 -48.678 17.035 17.474 1.00 92.31 O +ATOM 5651 CB ASP 378 -48.157 18.067 20.331 1.00 92.31 C +ATOM 5652 CG ASP 378 -47.243 18.427 21.510 1.00 92.31 C +ATOM 5653 OD1 ASP 378 -46.036 18.654 21.273 1.00 92.31 O +ATOM 5654 OD2 ASP 378 -47.760 18.390 22.648 1.00 92.31 O +ATOM 5659 N VAL 379 -49.571 19.124 17.390 1.00 96.69 N +ATOM 5660 CA VAL 379 -50.517 18.888 16.301 1.00 96.69 C +ATOM 5661 C VAL 379 -49.895 19.313 14.960 1.00 96.69 C +ATOM 5662 O VAL 379 -49.771 18.483 14.061 1.00 96.69 O +ATOM 5663 CB VAL 379 -51.858 19.658 16.518 1.00 96.69 C +ATOM 5664 CG1 VAL 379 -52.838 19.609 15.323 1.00 96.69 C +ATOM 5665 CG2 VAL 379 -52.575 19.181 17.794 1.00 96.69 C +ATOM 5675 N TRP 380 -49.542 20.603 14.856 1.00 98.17 N +ATOM 5676 CA TRP 380 -49.134 21.257 13.621 1.00 98.17 C +ATOM 5677 C TRP 380 -47.628 21.133 13.359 1.00 98.17 C +ATOM 5678 O TRP 380 -46.819 21.330 14.264 1.00 98.17 O +ATOM 5679 CB TRP 380 -49.587 22.727 13.654 1.00 98.17 C +ATOM 5680 CG TRP 380 -51.072 22.936 13.651 1.00 98.17 C +ATOM 5681 CD1 TRP 380 -51.845 23.131 14.743 1.00 98.17 C +ATOM 5682 CD2 TRP 380 -51.988 22.896 12.515 1.00 98.17 C +ATOM 5683 CE2 TRP 380 -53.317 23.097 12.999 1.00 98.17 C +ATOM 5684 CE3 TRP 380 -51.835 22.713 11.120 1.00 98.17 C +ATOM 5685 NE1 TRP 380 -53.166 23.231 14.363 1.00 98.17 N +ATOM 5686 CH2 TRP 380 -54.242 22.953 10.760 1.00 98.17 C +ATOM 5687 CZ2 TRP 380 -54.433 23.125 12.144 1.00 98.17 C +ATOM 5688 CZ3 TRP 380 -52.945 22.749 10.251 1.00 98.17 C +ATOM 5699 N SER 381 -47.292 20.859 12.092 1.00 98.50 N +ATOM 5700 CA SER 381 -45.932 20.836 11.564 1.00 98.50 C +ATOM 5701 C SER 381 -45.965 21.238 10.085 1.00 98.50 C +ATOM 5702 O SER 381 -46.889 20.859 9.370 1.00 98.50 O +ATOM 5703 CB SER 381 -45.275 19.459 11.821 1.00 98.50 C +ATOM 5704 OG SER 381 -45.847 18.421 11.046 1.00 98.50 O +ATOM 5710 N ALA 382 -44.949 22.000 9.665 1.00 98.70 N +ATOM 5711 CA ALA 382 -44.767 22.518 8.315 1.00 98.70 C +ATOM 5712 C ALA 382 -43.445 22.014 7.722 1.00 98.70 C +ATOM 5713 O ALA 382 -42.529 21.650 8.460 1.00 98.70 O +ATOM 5714 CB ALA 382 -44.773 24.054 8.386 1.00 98.70 C +ATOM 5720 N ARG 383 -43.366 22.030 6.385 1.00 98.76 N +ATOM 5721 CA ARG 383 -42.162 21.679 5.639 1.00 98.76 C +ATOM 5722 C ARG 383 -42.164 22.402 4.286 1.00 98.76 C +ATOM 5723 O ARG 383 -43.227 22.601 3.701 1.00 98.76 O +ATOM 5724 CB ARG 383 -42.050 20.139 5.512 1.00 98.76 C +ATOM 5725 CG ARG 383 -40.800 19.632 4.773 1.00 98.76 C +ATOM 5726 CD ARG 383 -40.779 18.110 4.633 1.00 98.76 C +ATOM 5727 NE ARG 383 -39.475 17.648 4.145 1.00 98.76 N +ATOM 5728 NH1 ARG 383 -38.977 16.234 5.932 1.00 98.76 N +ATOM 5729 NH2 ARG 383 -37.440 16.546 4.252 1.00 98.76 N +ATOM 5730 CZ ARG 383 -38.639 16.812 4.778 1.00 98.76 C +ATOM 5744 N GLN 384 -40.962 22.747 3.805 1.00 98.89 N +ATOM 5745 CA GLN 384 -40.729 23.307 2.481 1.00 98.89 C +ATOM 5746 C GLN 384 -39.491 22.632 1.882 1.00 98.89 C +ATOM 5747 O GLN 384 -38.367 22.994 2.235 1.00 98.89 O +ATOM 5748 CB GLN 384 -40.603 24.842 2.566 1.00 98.89 C +ATOM 5749 CG GLN 384 -40.403 25.523 1.196 1.00 98.89 C +ATOM 5750 CD GLN 384 -40.247 27.036 1.331 1.00 98.89 C +ATOM 5751 NE2 GLN 384 -41.168 27.802 0.746 1.00 98.89 N +ATOM 5752 OE1 GLN 384 -39.294 27.514 1.941 1.00 98.89 O +ATOM 5761 N ASN 385 -39.733 21.686 0.963 1.00 98.91 N +ATOM 5762 CA ASN 385 -38.714 21.133 0.069 1.00 98.91 C +ATOM 5763 C ASN 385 -38.549 22.074 -1.130 1.00 98.91 C +ATOM 5764 O ASN 385 -39.537 22.624 -1.613 1.00 98.91 O +ATOM 5765 CB ASN 385 -39.142 19.728 -0.413 1.00 98.91 C +ATOM 5766 CG ASN 385 -39.128 18.644 0.666 1.00 98.91 C +ATOM 5767 ND2 ASN 385 -39.741 17.497 0.371 1.00 98.91 N +ATOM 5768 OD1 ASN 385 -38.551 18.817 1.737 1.00 98.91 O +ATOM 5775 N PHE 386 -37.303 22.216 -1.595 1.00 98.94 N +ATOM 5776 CA PHE 386 -36.932 23.049 -2.731 1.00 98.94 C +ATOM 5777 C PHE 386 -35.719 22.463 -3.465 1.00 98.94 C +ATOM 5778 O PHE 386 -34.823 21.918 -2.821 1.00 98.94 O +ATOM 5779 CB PHE 386 -36.735 24.518 -2.277 1.00 98.94 C +ATOM 5780 CG PHE 386 -36.020 25.421 -3.271 1.00 98.94 C +ATOM 5781 CD1 PHE 386 -34.630 25.639 -3.160 1.00 98.94 C +ATOM 5782 CD2 PHE 386 -36.689 25.871 -4.427 1.00 98.94 C +ATOM 5783 CE1 PHE 386 -33.951 26.351 -4.138 1.00 98.94 C +ATOM 5784 CE2 PHE 386 -35.985 26.553 -5.409 1.00 98.94 C +ATOM 5785 CZ PHE 386 -34.631 26.814 -5.255 1.00 98.94 C +ATOM 5795 N ARG 387 -35.701 22.645 -4.794 1.00 98.93 N +ATOM 5796 CA ARG 387 -34.541 22.431 -5.646 1.00 98.93 C +ATOM 5797 C ARG 387 -34.663 23.292 -6.910 1.00 98.93 C +ATOM 5798 O ARG 387 -35.692 23.255 -7.581 1.00 98.93 O +ATOM 5799 CB ARG 387 -34.346 20.928 -5.963 1.00 98.93 C +ATOM 5800 CG ARG 387 -33.151 20.644 -6.898 1.00 98.93 C +ATOM 5801 CD ARG 387 -32.767 19.167 -7.038 1.00 98.93 C +ATOM 5802 NE ARG 387 -33.884 18.321 -7.475 1.00 98.93 N +ATOM 5803 NH1 ARG 387 -34.348 17.381 -5.380 1.00 98.93 N +ATOM 5804 NH2 ARG 387 -35.609 16.806 -7.225 1.00 98.93 N +ATOM 5805 CZ ARG 387 -34.608 17.510 -6.689 1.00 98.93 C +ATOM 5819 N TYR 388 -33.564 23.978 -7.247 1.00 98.93 N +ATOM 5820 CA TYR 388 -33.284 24.504 -8.577 1.00 98.93 C +ATOM 5821 C TYR 388 -32.327 23.534 -9.288 1.00 98.93 C +ATOM 5822 O TYR 388 -31.421 22.991 -8.654 1.00 98.93 O +ATOM 5823 CB TYR 388 -32.679 25.918 -8.458 1.00 98.93 C +ATOM 5824 CG TYR 388 -32.283 26.552 -9.782 1.00 98.93 C +ATOM 5825 CD1 TYR 388 -30.931 26.584 -10.184 1.00 98.93 C +ATOM 5826 CD2 TYR 388 -33.277 27.079 -10.633 1.00 98.93 C +ATOM 5827 CE1 TYR 388 -30.579 27.128 -11.434 1.00 98.93 C +ATOM 5828 CE2 TYR 388 -32.927 27.612 -11.888 1.00 98.93 C +ATOM 5829 OH TYR 388 -31.235 28.143 -13.509 1.00 98.93 O +ATOM 5830 CZ TYR 388 -31.577 27.634 -12.291 1.00 98.93 C +ATOM 5840 N LEU 389 -32.541 23.368 -10.597 1.00 98.94 N +ATOM 5841 CA LEU 389 -31.723 22.571 -11.499 1.00 98.94 C +ATOM 5842 C LEU 389 -31.333 23.437 -12.703 1.00 98.94 C +ATOM 5843 O LEU 389 -32.142 24.222 -13.195 1.00 98.94 O +ATOM 5844 CB LEU 389 -32.515 21.297 -11.889 1.00 98.94 C +ATOM 5845 CG LEU 389 -31.949 20.423 -13.038 1.00 98.94 C +ATOM 5846 CD1 LEU 389 -30.504 19.939 -12.802 1.00 98.94 C +ATOM 5847 CD2 LEU 389 -32.895 19.250 -13.343 1.00 98.94 C +ATOM 5859 N ASP 390 -30.098 23.232 -13.168 1.00 98.94 N +ATOM 5860 CA ASP 390 -29.536 23.792 -14.388 1.00 98.94 C +ATOM 5861 C ASP 390 -28.618 22.703 -14.954 1.00 98.94 C +ATOM 5862 O ASP 390 -27.818 22.145 -14.207 1.00 98.94 O +ATOM 5863 CB ASP 390 -28.836 25.145 -14.115 1.00 98.94 C +ATOM 5864 CG ASP 390 -28.145 25.794 -15.318 1.00 98.94 C +ATOM 5865 OD1 ASP 390 -27.091 25.264 -15.729 1.00 98.94 O +ATOM 5866 OD2 ASP 390 -28.645 26.848 -15.772 1.00 98.94 O +ATOM 5871 N SER 391 -28.759 22.388 -16.246 1.00 98.91 N +ATOM 5872 CA SER 391 -28.014 21.306 -16.879 1.00 98.91 C +ATOM 5873 C SER 391 -27.840 21.550 -18.377 1.00 98.91 C +ATOM 5874 O SER 391 -28.785 21.957 -19.048 1.00 98.91 O +ATOM 5875 CB SER 391 -28.676 19.945 -16.556 1.00 98.91 C +ATOM 5876 OG SER 391 -29.984 19.834 -17.079 1.00 98.91 O +ATOM 5882 N ASP 392 -26.629 21.248 -18.865 1.00 98.93 N +ATOM 5883 CA ASP 392 -26.271 21.238 -20.282 1.00 98.93 C +ATOM 5884 C ASP 392 -26.150 19.782 -20.738 1.00 98.93 C +ATOM 5885 O ASP 392 -25.627 18.964 -19.981 1.00 98.93 O +ATOM 5886 CB ASP 392 -24.944 21.978 -20.582 1.00 98.93 C +ATOM 5887 CG ASP 392 -24.843 23.382 -19.983 1.00 98.93 C +ATOM 5888 OD1 ASP 392 -25.864 24.101 -20.000 1.00 98.93 O +ATOM 5889 OD2 ASP 392 -23.718 23.744 -19.573 1.00 98.93 O +ATOM 5894 N VAL 393 -26.591 19.500 -21.973 1.00 98.92 N +ATOM 5895 CA VAL 393 -26.383 18.216 -22.639 1.00 98.92 C +ATOM 5896 C VAL 393 -25.984 18.470 -24.099 1.00 98.92 C +ATOM 5897 O VAL 393 -26.818 18.909 -24.891 1.00 98.92 O +ATOM 5898 CB VAL 393 -27.623 17.270 -22.584 1.00 98.92 C +ATOM 5899 CG1 VAL 393 -27.500 16.012 -23.474 1.00 98.92 C +ATOM 5900 CG2 VAL 393 -27.916 16.831 -21.141 1.00 98.92 C +ATOM 5910 N ASP 394 -24.722 18.145 -24.419 1.00 98.88 N +ATOM 5911 CA ASP 394 -24.196 18.093 -25.782 1.00 98.88 C +ATOM 5912 C ASP 394 -24.155 16.633 -26.247 1.00 98.88 C +ATOM 5913 O ASP 394 -23.786 15.751 -25.471 1.00 98.88 O +ATOM 5914 CB ASP 394 -22.802 18.745 -25.943 1.00 98.88 C +ATOM 5915 CG ASP 394 -22.713 20.209 -25.494 1.00 98.88 C +ATOM 5916 OD1 ASP 394 -23.770 20.874 -25.420 1.00 98.88 O +ATOM 5917 OD2 ASP 394 -21.561 20.667 -25.332 1.00 98.88 O +ATOM 5922 N LEU 395 -24.527 16.422 -27.515 1.00 98.85 N +ATOM 5923 CA LEU 395 -24.613 15.117 -28.157 1.00 98.85 C +ATOM 5924 C LEU 395 -24.047 15.204 -29.577 1.00 98.85 C +ATOM 5925 O LEU 395 -24.326 16.159 -30.302 1.00 98.85 O +ATOM 5926 CB LEU 395 -26.094 14.658 -28.154 1.00 98.85 C +ATOM 5927 CG LEU 395 -26.420 13.329 -28.881 1.00 98.85 C +ATOM 5928 CD1 LEU 395 -25.670 12.128 -28.273 1.00 98.85 C +ATOM 5929 CD2 LEU 395 -27.943 13.097 -28.956 1.00 98.85 C +ATOM 5941 N SER 396 -23.327 14.143 -29.952 1.00 98.80 N +ATOM 5942 CA SER 396 -23.026 13.746 -31.321 1.00 98.80 C +ATOM 5943 C SER 396 -23.180 12.224 -31.315 1.00 98.80 C +ATOM 5944 O SER 396 -22.613 11.585 -30.433 1.00 98.80 O +ATOM 5945 CB SER 396 -21.576 14.120 -31.685 1.00 98.80 C +ATOM 5946 OG SER 396 -21.392 15.518 -31.774 1.00 98.80 O +ATOM 5952 N GLN 397 -23.936 11.647 -32.256 1.00 98.75 N +ATOM 5953 CA GLN 397 -24.110 10.198 -32.308 1.00 98.75 C +ATOM 5954 C GLN 397 -24.512 9.768 -33.714 1.00 98.75 C +ATOM 5955 O GLN 397 -25.616 10.085 -34.153 1.00 98.75 O +ATOM 5956 CB GLN 397 -25.113 9.715 -31.229 1.00 98.75 C +ATOM 5957 CG GLN 397 -25.339 8.189 -31.211 1.00 98.75 C +ATOM 5958 CD GLN 397 -26.338 7.731 -30.146 1.00 98.75 C +ATOM 5959 NE2 GLN 397 -26.930 6.556 -30.364 1.00 98.75 N +ATOM 5960 OE1 GLN 397 -26.559 8.400 -29.137 1.00 98.75 O +ATOM 5969 N VAL 398 -23.630 8.976 -34.337 1.00 98.81 N +ATOM 5970 CA VAL 398 -23.956 8.110 -35.464 1.00 98.81 C +ATOM 5971 C VAL 398 -24.506 6.778 -34.902 1.00 98.81 C +ATOM 5972 O VAL 398 -24.040 6.317 -33.859 1.00 98.81 O +ATOM 5973 CB VAL 398 -22.692 7.850 -36.336 1.00 98.81 C +ATOM 5974 CG1 VAL 398 -22.881 6.786 -37.433 1.00 98.81 C +ATOM 5975 CG2 VAL 398 -22.187 9.153 -36.979 1.00 98.81 C +ATOM 5985 N TYR 399 -25.502 6.200 -35.587 1.00 98.69 N +ATOM 5986 CA TYR 399 -26.212 4.991 -35.159 1.00 98.69 C +ATOM 5987 C TYR 399 -26.741 4.230 -36.381 1.00 98.69 C +ATOM 5988 O TYR 399 -26.948 4.837 -37.430 1.00 98.69 O +ATOM 5989 CB TYR 399 -27.358 5.376 -34.188 1.00 98.69 C +ATOM 5990 CG TYR 399 -28.319 6.433 -34.716 1.00 98.69 C +ATOM 5991 CD1 TYR 399 -28.194 7.771 -34.293 1.00 98.69 C +ATOM 5992 CD2 TYR 399 -29.300 6.099 -35.672 1.00 98.69 C +ATOM 5993 CE1 TYR 399 -29.026 8.764 -34.837 1.00 98.69 C +ATOM 5994 CE2 TYR 399 -30.109 7.100 -36.236 1.00 98.69 C +ATOM 5995 OH TYR 399 -30.779 9.408 -36.348 1.00 98.69 O +ATOM 5996 CZ TYR 399 -29.982 8.436 -35.813 1.00 98.69 C +ATOM 6006 N ALA 400 -27.007 2.927 -36.197 1.00 98.67 N +ATOM 6007 CA ALA 400 -27.655 2.056 -37.178 1.00 98.67 C +ATOM 6008 C ALA 400 -29.181 2.226 -37.177 1.00 98.67 C +ATOM 6009 O ALA 400 -29.757 2.525 -36.133 1.00 98.67 O +ATOM 6010 CB ALA 400 -27.289 0.600 -36.856 1.00 98.67 C +ATOM 6016 N TYR 401 -29.808 1.994 -38.340 1.00 98.33 N +ATOM 6017 CA TYR 401 -31.259 1.994 -38.519 1.00 98.33 C +ATOM 6018 C TYR 401 -31.597 1.140 -39.750 1.00 98.33 C +ATOM 6019 O TYR 401 -31.736 1.678 -40.849 1.00 98.33 O +ATOM 6020 CB TYR 401 -31.800 3.447 -38.596 1.00 98.33 C +ATOM 6021 CG TYR 401 -33.303 3.641 -38.792 1.00 98.33 C +ATOM 6022 CD1 TYR 401 -33.783 4.858 -39.322 1.00 98.33 C +ATOM 6023 CD2 TYR 401 -34.234 2.642 -38.429 1.00 98.33 C +ATOM 6024 CE1 TYR 401 -35.165 5.069 -39.495 1.00 98.33 C +ATOM 6025 CE2 TYR 401 -35.615 2.851 -38.599 1.00 98.33 C +ATOM 6026 OH TYR 401 -37.422 4.266 -39.294 1.00 98.33 O +ATOM 6027 CZ TYR 401 -36.082 4.064 -39.133 1.00 98.33 C +ATOM 6037 N GLY 402 -31.710 -0.181 -39.532 1.00 96.88 N +ATOM 6038 CA GLY 402 -32.043 -1.166 -40.563 1.00 96.88 C +ATOM 6039 C GLY 402 -30.830 -1.511 -41.445 1.00 96.88 C +ATOM 6040 O GLY 402 -29.783 -0.865 -41.383 1.00 96.88 O +ATOM 6044 N TRP 403 -30.999 -2.546 -42.282 1.00 98.31 N +ATOM 6045 CA TRP 403 -30.007 -3.006 -43.258 1.00 98.31 C +ATOM 6046 C TRP 403 -30.086 -2.208 -44.567 1.00 98.31 C +ATOM 6047 O TRP 403 -31.177 -1.815 -44.983 1.00 98.31 O +ATOM 6048 CB TRP 403 -30.204 -4.510 -43.523 1.00 98.31 C +ATOM 6049 CG TRP 403 -29.984 -5.390 -42.329 1.00 98.31 C +ATOM 6050 CD1 TRP 403 -30.948 -5.868 -41.509 1.00 98.31 C +ATOM 6051 CD2 TRP 403 -28.716 -5.833 -41.757 1.00 98.31 C +ATOM 6052 CE2 TRP 403 -28.992 -6.589 -40.580 1.00 98.31 C +ATOM 6053 CE3 TRP 403 -27.355 -5.675 -42.108 1.00 98.31 C +ATOM 6054 NE1 TRP 403 -30.366 -6.581 -40.483 1.00 98.31 N +ATOM 6055 CH2 TRP 403 -26.634 -6.967 -40.163 1.00 98.31 C +ATOM 6056 CZ2 TRP 403 -27.975 -7.154 -39.794 1.00 98.31 C +ATOM 6057 CZ3 TRP 403 -26.327 -6.228 -41.319 1.00 98.31 C +ATOM 6068 N SER 404 -28.920 -2.026 -45.209 1.00 98.20 N +ATOM 6069 CA SER 404 -28.781 -1.432 -46.538 1.00 98.20 C +ATOM 6070 C SER 404 -29.273 -2.403 -47.623 1.00 98.20 C +ATOM 6071 O SER 404 -28.833 -3.553 -47.661 1.00 98.20 O +ATOM 6072 CB SER 404 -27.317 -0.993 -46.752 1.00 98.20 C +ATOM 6073 OG SER 404 -27.132 -0.396 -48.022 1.00 98.20 O +ATOM 6079 N ALA 405 -30.176 -1.904 -48.483 1.00 96.65 N +ATOM 6080 CA ALA 405 -30.778 -2.651 -49.586 1.00 96.65 C +ATOM 6081 C ALA 405 -29.826 -2.893 -50.772 1.00 96.65 C +ATOM 6082 O ALA 405 -30.060 -3.832 -51.531 1.00 96.65 O +ATOM 6083 CB ALA 405 -32.037 -1.903 -50.052 1.00 96.65 C +ATOM 6089 N SER 406 -28.787 -2.051 -50.910 1.00 97.19 N +ATOM 6090 CA SER 406 -27.809 -2.097 -51.998 1.00 97.19 C +ATOM 6091 C SER 406 -26.469 -2.741 -51.591 1.00 97.19 C +ATOM 6092 O SER 406 -25.760 -3.213 -52.480 1.00 97.19 O +ATOM 6093 CB SER 406 -27.621 -0.663 -52.539 1.00 97.19 C +ATOM 6094 OG SER 406 -27.008 0.193 -51.594 1.00 97.19 O +ATOM 6100 N GLU 407 -26.143 -2.749 -50.286 1.00 97.56 N +ATOM 6101 CA GLU 407 -24.875 -3.248 -49.753 1.00 97.56 C +ATOM 6102 C GLU 407 -25.168 -4.363 -48.728 1.00 97.56 C +ATOM 6103 O GLU 407 -25.644 -4.044 -47.637 1.00 97.56 O +ATOM 6104 CB GLU 407 -24.105 -2.079 -49.101 1.00 97.56 C +ATOM 6105 CG GLU 407 -23.667 -1.001 -50.110 1.00 97.56 C +ATOM 6106 CD GLU 407 -22.917 0.139 -49.429 1.00 97.56 C +ATOM 6107 OE1 GLU 407 -21.668 0.128 -49.498 1.00 97.56 O +ATOM 6108 OE2 GLU 407 -23.605 0.989 -48.823 1.00 97.56 O +ATOM 6115 N PRO 408 -24.902 -5.646 -49.077 1.00 95.59 N +ATOM 6116 CA PRO 408 -25.146 -6.773 -48.156 1.00 95.59 C +ATOM 6117 C PRO 408 -24.179 -6.763 -46.960 1.00 95.59 C +ATOM 6118 O PRO 408 -23.011 -6.407 -47.124 1.00 95.59 O +ATOM 6119 CB PRO 408 -24.959 -8.013 -49.043 1.00 95.59 C +ATOM 6120 CG PRO 408 -23.965 -7.580 -50.107 1.00 95.59 C +ATOM 6121 CD PRO 408 -24.322 -6.116 -50.341 1.00 95.59 C +ATOM 6129 N ASN 409 -24.707 -7.133 -45.780 1.00 98.27 N +ATOM 6130 CA ASN 409 -24.019 -7.164 -44.479 1.00 98.27 C +ATOM 6131 C ASN 409 -23.701 -5.768 -43.897 1.00 98.27 C +ATOM 6132 O ASN 409 -23.063 -5.713 -42.845 1.00 98.27 O +ATOM 6133 CB ASN 409 -22.757 -8.073 -44.513 1.00 98.27 C +ATOM 6134 CG ASN 409 -23.074 -9.543 -44.797 1.00 98.27 C +ATOM 6135 ND2 ASN 409 -22.675 -10.039 -45.969 1.00 98.27 N +ATOM 6136 OD1 ASN 409 -23.655 -10.229 -43.960 1.00 98.27 O +ATOM 6143 N LYS 410 -24.183 -4.681 -44.530 1.00 98.62 N +ATOM 6144 CA LYS 410 -24.048 -3.317 -44.024 1.00 98.62 C +ATOM 6145 C LYS 410 -25.384 -2.782 -43.506 1.00 98.62 C +ATOM 6146 O LYS 410 -26.421 -2.997 -44.132 1.00 98.62 O +ATOM 6147 CB LYS 410 -23.523 -2.368 -45.113 1.00 98.62 C +ATOM 6148 CG LYS 410 -22.102 -2.671 -45.604 1.00 98.62 C +ATOM 6149 CD LYS 410 -21.481 -1.434 -46.262 1.00 98.62 C +ATOM 6150 CE LYS 410 -20.143 -1.709 -46.952 1.00 98.62 C +ATOM 6151 NZ LYS 410 -19.644 -0.492 -47.615 1.00 98.62 N +ATOM 6165 N LEU 411 -25.300 -2.030 -42.402 1.00 98.70 N +ATOM 6166 CA LEU 411 -26.390 -1.254 -41.825 1.00 98.70 C +ATOM 6167 C LEU 411 -26.399 0.149 -42.445 1.00 98.70 C +ATOM 6168 O LEU 411 -25.339 0.766 -42.546 1.00 98.70 O +ATOM 6169 CB LEU 411 -26.181 -1.158 -40.295 1.00 98.70 C +ATOM 6170 CG LEU 411 -26.329 -2.501 -39.546 1.00 98.70 C +ATOM 6171 CD1 LEU 411 -25.768 -2.430 -38.110 1.00 98.70 C +ATOM 6172 CD2 LEU 411 -27.778 -3.010 -39.549 1.00 98.70 C +ATOM 6184 N ASN 412 -27.605 0.652 -42.765 1.00 98.67 N +ATOM 6185 CA ASN 412 -27.861 2.078 -43.007 1.00 98.67 C +ATOM 6186 C ASN 412 -27.667 2.852 -41.700 1.00 98.67 C +ATOM 6187 O ASN 412 -28.053 2.345 -40.646 1.00 98.67 O +ATOM 6188 CB ASN 412 -29.319 2.277 -43.482 1.00 98.67 C +ATOM 6189 CG ASN 412 -29.594 1.831 -44.916 1.00 98.67 C +ATOM 6190 ND2 ASN 412 -30.826 1.391 -45.176 1.00 98.67 N +ATOM 6191 OD1 ASN 412 -28.729 1.911 -45.785 1.00 98.67 O +ATOM 6198 N ARG 413 -27.092 4.060 -41.795 1.00 98.71 N +ATOM 6199 CA ARG 413 -26.833 4.902 -40.632 1.00 98.71 C +ATOM 6200 C ARG 413 -27.307 6.339 -40.851 1.00 98.71 C +ATOM 6201 O ARG 413 -27.334 6.831 -41.979 1.00 98.71 O +ATOM 6202 CB ARG 413 -25.337 4.878 -40.259 1.00 98.71 C +ATOM 6203 CG ARG 413 -24.769 3.476 -39.974 1.00 98.71 C +ATOM 6204 CD ARG 413 -23.436 3.522 -39.222 1.00 98.71 C +ATOM 6205 NE ARG 413 -22.393 4.177 -40.017 1.00 98.71 N +ATOM 6206 NH1 ARG 413 -20.672 4.098 -38.431 1.00 98.71 N +ATOM 6207 NH2 ARG 413 -20.295 5.001 -40.519 1.00 98.71 N +ATOM 6208 CZ ARG 413 -21.127 4.422 -39.648 1.00 98.71 C +ATOM 6222 N TYR 414 -27.646 6.983 -39.727 1.00 98.70 N +ATOM 6223 CA TYR 414 -28.014 8.390 -39.626 1.00 98.70 C +ATOM 6224 C TYR 414 -27.347 8.989 -38.382 1.00 98.70 C +ATOM 6225 O TYR 414 -26.846 8.257 -37.526 1.00 98.70 O +ATOM 6226 CB TYR 414 -29.551 8.546 -39.560 1.00 98.70 C +ATOM 6227 CG TYR 414 -30.323 8.015 -40.752 1.00 98.70 C +ATOM 6228 CD1 TYR 414 -30.633 8.862 -41.835 1.00 98.70 C +ATOM 6229 CD2 TYR 414 -30.739 6.668 -40.775 1.00 98.70 C +ATOM 6230 CE1 TYR 414 -31.357 8.362 -42.935 1.00 98.70 C +ATOM 6231 CE2 TYR 414 -31.456 6.165 -41.876 1.00 98.70 C +ATOM 6232 OH TYR 414 -32.472 6.533 -44.021 1.00 98.70 O +ATOM 6233 CZ TYR 414 -31.769 7.014 -42.955 1.00 98.70 C +ATOM 6243 N PHE 415 -27.363 10.325 -38.321 1.00 98.75 N +ATOM 6244 CA PHE 415 -26.788 11.132 -37.254 1.00 98.75 C +ATOM 6245 C PHE 415 -27.889 11.877 -36.486 1.00 98.75 C +ATOM 6246 O PHE 415 -28.871 12.309 -37.090 1.00 98.75 O +ATOM 6247 CB PHE 415 -25.760 12.090 -37.893 1.00 98.75 C +ATOM 6248 CG PHE 415 -25.073 13.071 -36.958 1.00 98.75 C +ATOM 6249 CD1 PHE 415 -25.522 14.406 -36.861 1.00 98.75 C +ATOM 6250 CD2 PHE 415 -24.069 12.620 -36.076 1.00 98.75 C +ATOM 6251 CE1 PHE 415 -24.940 15.268 -35.941 1.00 98.75 C +ATOM 6252 CE2 PHE 415 -23.503 13.497 -35.162 1.00 98.75 C +ATOM 6253 CZ PHE 415 -23.934 14.816 -35.097 1.00 98.75 C +ATOM 6263 N SER 416 -27.662 12.050 -35.175 1.00 98.71 N +ATOM 6264 CA SER 416 -28.409 12.953 -34.307 1.00 98.71 C +ATOM 6265 C SER 416 -27.396 13.704 -33.442 1.00 98.71 C +ATOM 6266 O SER 416 -26.625 13.075 -32.717 1.00 98.71 O +ATOM 6267 CB SER 416 -29.419 12.196 -33.417 1.00 98.71 C +ATOM 6268 OG SER 416 -30.562 11.822 -34.161 1.00 98.71 O +ATOM 6274 N GLY 417 -27.437 15.037 -33.535 1.00 98.67 N +ATOM 6275 CA GLY 417 -26.685 15.949 -32.687 1.00 98.67 C +ATOM 6276 C GLY 417 -27.685 16.744 -31.845 1.00 98.67 C +ATOM 6277 O GLY 417 -28.848 16.901 -32.220 1.00 98.67 O +ATOM 6281 N ALA 418 -27.208 17.280 -30.715 1.00 98.78 N +ATOM 6282 CA ALA 418 -27.979 18.153 -29.835 1.00 98.78 C +ATOM 6283 C ALA 418 -27.024 19.062 -29.061 1.00 98.78 C +ATOM 6284 O ALA 418 -25.926 18.636 -28.711 1.00 98.78 O +ATOM 6285 CB ALA 418 -28.857 17.324 -28.878 1.00 98.78 C +ATOM 6291 N ARG 419 -27.475 20.295 -28.800 1.00 98.85 N +ATOM 6292 CA ARG 419 -26.871 21.222 -27.848 1.00 98.85 C +ATOM 6293 C ARG 419 -28.040 21.805 -27.062 1.00 98.85 C +ATOM 6294 O ARG 419 -28.763 22.657 -27.580 1.00 98.85 O +ATOM 6295 CB ARG 419 -26.022 22.312 -28.545 1.00 98.85 C +ATOM 6296 CG ARG 419 -24.614 21.823 -28.926 1.00 98.85 C +ATOM 6297 CD ARG 419 -24.507 21.171 -30.311 1.00 98.85 C +ATOM 6298 NE ARG 419 -23.326 20.299 -30.371 1.00 98.85 N +ATOM 6299 NH1 ARG 419 -24.164 18.791 -31.955 1.00 98.85 N +ATOM 6300 NH2 ARG 419 -22.090 18.446 -30.992 1.00 98.85 N +ATOM 6301 CZ ARG 419 -23.199 19.186 -31.112 1.00 98.85 C +ATOM 6315 N GLU 420 -28.227 21.269 -25.849 1.00 98.87 N +ATOM 6316 CA GLU 420 -29.364 21.554 -24.988 1.00 98.87 C +ATOM 6317 C GLU 420 -28.907 22.274 -23.718 1.00 98.87 C +ATOM 6318 O GLU 420 -27.820 21.997 -23.213 1.00 98.87 O +ATOM 6319 CB GLU 420 -30.086 20.242 -24.629 1.00 98.87 C +ATOM 6320 CG GLU 420 -30.453 19.378 -25.856 1.00 98.87 C +ATOM 6321 CD GLU 420 -31.431 18.245 -25.544 1.00 98.87 C +ATOM 6322 OE1 GLU 420 -31.941 17.651 -26.517 1.00 98.87 O +ATOM 6323 OE2 GLU 420 -31.685 17.991 -24.348 1.00 98.87 O +ATOM 6330 N HIS 421 -29.791 23.143 -23.213 1.00 98.94 N +ATOM 6331 CA HIS 421 -29.677 23.806 -21.924 1.00 98.94 C +ATOM 6332 C HIS 421 -31.061 23.783 -21.268 1.00 98.94 C +ATOM 6333 O HIS 421 -31.948 24.541 -21.666 1.00 98.94 O +ATOM 6334 CB HIS 421 -29.107 25.229 -22.090 1.00 98.94 C +ATOM 6335 CG HIS 421 -29.031 26.032 -20.810 1.00 98.94 C +ATOM 6336 CD2 HIS 421 -28.621 25.628 -19.555 1.00 98.94 C +ATOM 6337 ND1 HIS 421 -29.405 27.380 -20.747 1.00 98.94 N +ATOM 6338 CE1 HIS 421 -29.186 27.733 -19.487 1.00 98.94 C +ATOM 6339 NE2 HIS 421 -28.729 26.733 -18.733 1.00 98.94 N +ATOM 6347 N LEU 422 -31.196 22.902 -20.269 1.00 98.90 N +ATOM 6348 CA LEU 422 -32.361 22.787 -19.407 1.00 98.90 C +ATOM 6349 C LEU 422 -32.138 23.615 -18.136 1.00 98.90 C +ATOM 6350 O LEU 422 -31.056 23.580 -17.553 1.00 98.90 O +ATOM 6351 CB LEU 422 -32.622 21.293 -19.114 1.00 98.90 C +ATOM 6352 CG LEU 422 -33.867 20.998 -18.234 1.00 98.90 C +ATOM 6353 CD1 LEU 422 -34.634 19.742 -18.697 1.00 98.90 C +ATOM 6354 CD2 LEU 422 -33.529 20.948 -16.725 1.00 98.90 C +ATOM 6366 N GLN 423 -33.201 24.307 -17.721 1.00 98.93 N +ATOM 6367 CA GLN 423 -33.331 24.991 -16.442 1.00 98.93 C +ATOM 6368 C GLN 423 -34.674 24.584 -15.838 1.00 98.93 C +ATOM 6369 O GLN 423 -35.644 24.412 -16.577 1.00 98.93 O +ATOM 6370 CB GLN 423 -33.272 26.515 -16.651 1.00 98.93 C +ATOM 6371 CG GLN 423 -31.895 26.995 -17.133 1.00 98.93 C +ATOM 6372 CD GLN 423 -31.792 28.519 -17.173 1.00 98.93 C +ATOM 6373 NE2 GLN 423 -30.704 29.060 -16.620 1.00 98.93 N +ATOM 6374 OE1 GLN 423 -32.662 29.194 -17.720 1.00 98.93 O +ATOM 6383 N ALA 424 -34.716 24.453 -14.508 1.00 98.89 N +ATOM 6384 CA ALA 424 -35.934 24.105 -13.794 1.00 98.89 C +ATOM 6385 C ALA 424 -35.907 24.588 -12.347 1.00 98.89 C +ATOM 6386 O ALA 424 -34.857 24.608 -11.711 1.00 98.89 O +ATOM 6387 CB ALA 424 -36.187 22.592 -13.869 1.00 98.89 C +ATOM 6393 N TYR 425 -37.106 24.918 -11.861 1.00 98.30 N +ATOM 6394 CA TYR 425 -37.429 25.256 -10.485 1.00 98.30 C +ATOM 6395 C TYR 425 -38.461 24.227 -10.005 1.00 98.30 C +ATOM 6396 O TYR 425 -39.367 23.875 -10.762 1.00 98.30 O +ATOM 6397 CB TYR 425 -38.001 26.695 -10.481 1.00 98.30 C +ATOM 6398 CG TYR 425 -38.441 27.261 -9.138 1.00 98.30 C +ATOM 6399 CD1 TYR 425 -39.683 26.893 -8.576 1.00 98.30 C +ATOM 6400 CD2 TYR 425 -37.620 28.186 -8.459 1.00 98.30 C +ATOM 6401 CE1 TYR 425 -40.072 27.400 -7.323 1.00 98.30 C +ATOM 6402 CE2 TYR 425 -38.027 28.720 -7.219 1.00 98.30 C +ATOM 6403 OH TYR 425 -39.619 28.783 -5.417 1.00 98.30 O +ATOM 6404 CZ TYR 425 -39.243 28.308 -6.639 1.00 98.30 C +ATOM 6414 N ILE 426 -38.350 23.815 -8.738 1.00 98.90 N +ATOM 6415 CA ILE 426 -39.390 23.058 -8.055 1.00 98.90 C +ATOM 6416 C ILE 426 -39.373 23.369 -6.552 1.00 98.90 C +ATOM 6417 O ILE 426 -38.309 23.380 -5.938 1.00 98.90 O +ATOM 6418 CB ILE 426 -39.337 21.522 -8.323 1.00 98.90 C +ATOM 6419 CG1 ILE 426 -40.510 20.775 -7.643 1.00 98.90 C +ATOM 6420 CG2 ILE 426 -37.987 20.861 -7.973 1.00 98.90 C +ATOM 6421 CD1 ILE 426 -40.746 19.365 -8.191 1.00 98.90 C +ATOM 6433 N VAL 427 -40.572 23.601 -6.004 1.00 98.94 N +ATOM 6434 CA VAL 427 -40.840 23.764 -4.580 1.00 98.94 C +ATOM 6435 C VAL 427 -42.067 22.906 -4.216 1.00 98.94 C +ATOM 6436 O VAL 427 -42.910 22.647 -5.077 1.00 98.94 O +ATOM 6437 CB VAL 427 -41.094 25.261 -4.220 1.00 98.94 C +ATOM 6438 CG1 VAL 427 -42.400 25.841 -4.798 1.00 98.94 C +ATOM 6439 CG2 VAL 427 -41.029 25.543 -2.707 1.00 98.94 C +ATOM 6449 N ASP 428 -42.134 22.486 -2.947 1.00 98.94 N +ATOM 6450 CA ASP 428 -43.220 21.692 -2.389 1.00 98.94 C +ATOM 6451 C ASP 428 -43.421 22.134 -0.936 1.00 98.94 C +ATOM 6452 O ASP 428 -42.632 21.761 -0.068 1.00 98.94 O +ATOM 6453 CB ASP 428 -42.951 20.178 -2.540 1.00 98.94 C +ATOM 6454 CG ASP 428 -44.045 19.261 -1.994 1.00 98.94 C +ATOM 6455 OD1 ASP 428 -45.222 19.680 -1.984 1.00 98.94 O +ATOM 6456 OD2 ASP 428 -43.694 18.106 -1.670 1.00 98.94 O +ATOM 6461 N ASN 429 -44.479 22.928 -0.722 1.00 98.95 N +ATOM 6462 CA ASN 429 -44.912 23.416 0.585 1.00 98.95 C +ATOM 6463 C ASN 429 -45.918 22.418 1.174 1.00 98.95 C +ATOM 6464 O ASN 429 -46.813 21.970 0.459 1.00 98.95 O +ATOM 6465 CB ASN 429 -45.568 24.810 0.450 1.00 98.95 C +ATOM 6466 CG ASN 429 -44.652 25.844 -0.213 1.00 98.95 C +ATOM 6467 ND2 ASN 429 -44.877 26.126 -1.498 1.00 98.95 N +ATOM 6468 OD1 ASN 429 -43.753 26.380 0.427 1.00 98.95 O +ATOM 6475 N MET 430 -45.749 22.099 2.462 1.00 98.90 N +ATOM 6476 CA MET 430 -46.559 21.144 3.213 1.00 98.90 C +ATOM 6477 C MET 430 -46.920 21.730 4.581 1.00 98.90 C +ATOM 6478 O MET 430 -46.140 22.487 5.161 1.00 98.90 O +ATOM 6479 CB MET 430 -45.757 19.839 3.397 1.00 98.90 C +ATOM 6480 CG MET 430 -45.730 18.951 2.148 1.00 98.90 C +ATOM 6481 SD MET 430 -44.453 17.668 2.154 1.00 98.90 S +ATOM 6482 CE MET 430 -43.025 18.690 1.704 1.00 98.90 C +ATOM 6492 N LEU 431 -48.086 21.307 5.082 1.00 98.87 N +ATOM 6493 CA LEU 431 -48.601 21.595 6.412 1.00 98.87 C +ATOM 6494 C LEU 431 -49.460 20.398 6.835 1.00 98.87 C +ATOM 6495 O LEU 431 -50.364 20.011 6.099 1.00 98.87 O +ATOM 6496 CB LEU 431 -49.372 22.936 6.401 1.00 98.87 C +ATOM 6497 CG LEU 431 -49.979 23.364 7.758 1.00 98.87 C +ATOM 6498 CD1 LEU 431 -48.896 23.560 8.842 1.00 98.87 C +ATOM 6499 CD2 LEU 431 -50.875 24.609 7.588 1.00 98.87 C +ATOM 6511 N GLN 432 -49.151 19.832 8.006 1.00 98.83 N +ATOM 6512 CA GLN 432 -49.760 18.621 8.543 1.00 98.83 C +ATOM 6513 C GLN 432 -50.308 18.882 9.948 1.00 98.83 C +ATOM 6514 O GLN 432 -49.619 19.516 10.743 1.00 98.83 O +ATOM 6515 CB GLN 432 -48.699 17.504 8.509 1.00 98.83 C +ATOM 6516 CG GLN 432 -49.104 16.188 9.201 1.00 98.83 C +ATOM 6517 CD GLN 432 -48.155 15.059 8.810 1.00 98.83 C +ATOM 6518 NE2 GLN 432 -47.402 14.513 9.767 1.00 98.83 N +ATOM 6519 OE1 GLN 432 -48.117 14.673 7.646 1.00 98.83 O +ATOM 6528 N ALA 433 -51.511 18.354 10.224 1.00 98.72 N +ATOM 6529 CA ALA 433 -52.185 18.424 11.518 1.00 98.72 C +ATOM 6530 C ALA 433 -52.493 17.006 12.011 1.00 98.72 C +ATOM 6531 O ALA 433 -53.266 16.298 11.365 1.00 98.72 O +ATOM 6532 CB ALA 433 -53.479 19.236 11.367 1.00 98.72 C +ATOM 6538 N GLU 434 -51.902 16.635 13.157 1.00 98.39 N +ATOM 6539 CA GLU 434 -52.104 15.351 13.824 1.00 98.39 C +ATOM 6540 C GLU 434 -52.997 15.549 15.057 1.00 98.39 C +ATOM 6541 O GLU 434 -52.540 16.095 16.059 1.00 98.39 O +ATOM 6542 CB GLU 434 -50.738 14.733 14.183 1.00 98.39 C +ATOM 6543 CG GLU 434 -49.934 14.328 12.931 1.00 98.39 C +ATOM 6544 CD GLU 434 -48.592 13.675 13.262 1.00 98.39 C +ATOM 6545 OE1 GLU 434 -47.585 14.116 12.666 1.00 98.39 O +ATOM 6546 OE2 GLU 434 -48.596 12.733 14.084 1.00 98.39 O +ATOM 6553 N PHE 435 -54.263 15.119 14.950 1.00 98.36 N +ATOM 6554 CA PHE 435 -55.302 15.312 15.965 1.00 98.36 C +ATOM 6555 C PHE 435 -56.267 14.118 15.972 1.00 98.36 C +ATOM 6556 O PHE 435 -56.294 13.349 15.014 1.00 98.36 O +ATOM 6557 CB PHE 435 -56.032 16.655 15.709 1.00 98.36 C +ATOM 6558 CG PHE 435 -56.801 16.763 14.399 1.00 98.36 C +ATOM 6559 CD1 PHE 435 -56.126 17.147 13.223 1.00 98.36 C +ATOM 6560 CD2 PHE 435 -58.142 16.327 14.303 1.00 98.36 C +ATOM 6561 CE1 PHE 435 -56.791 17.150 12.005 1.00 98.36 C +ATOM 6562 CE2 PHE 435 -58.789 16.335 13.074 1.00 98.36 C +ATOM 6563 CZ PHE 435 -58.117 16.749 11.930 1.00 98.36 C +ATOM 6573 N ALA 436 -57.063 14.003 17.047 1.00 98.29 N +ATOM 6574 CA ALA 436 -58.080 12.965 17.200 1.00 98.29 C +ATOM 6575 C ALA 436 -59.487 13.573 17.252 1.00 98.29 C +ATOM 6576 O ALA 436 -59.664 14.671 17.782 1.00 98.29 O +ATOM 6577 CB ALA 436 -57.789 12.168 18.481 1.00 98.29 C +ATOM 6583 N THR 437 -60.463 12.812 16.733 1.00 97.91 N +ATOM 6584 CA THR 437 -61.894 13.071 16.867 1.00 97.91 C +ATOM 6585 C THR 437 -62.553 11.740 17.283 1.00 97.91 C +ATOM 6586 O THR 437 -62.742 10.840 16.464 1.00 97.91 O +ATOM 6587 CB THR 437 -62.540 13.693 15.585 1.00 97.91 C +ATOM 6588 CG2 THR 437 -61.765 14.893 15.021 1.00 97.91 C +ATOM 6589 OG1 THR 437 -62.814 12.800 14.522 1.00 97.91 O +ATOM 6597 N GLY 438 -62.815 11.607 18.596 1.00 97.52 N +ATOM 6598 CA GLY 438 -63.273 10.360 19.213 1.00 97.52 C +ATOM 6599 C GLY 438 -62.167 9.296 19.131 1.00 97.52 C +ATOM 6600 O GLY 438 -61.014 9.569 19.468 1.00 97.52 O +ATOM 6604 N ALA 439 -62.539 8.084 18.684 1.00 97.52 N +ATOM 6605 CA ALA 439 -61.632 6.954 18.458 1.00 97.52 C +ATOM 6606 C ALA 439 -60.740 7.091 17.206 1.00 97.52 C +ATOM 6607 O ALA 439 -59.718 6.407 17.135 1.00 97.52 O +ATOM 6608 CB ALA 439 -62.467 5.667 18.374 1.00 97.52 C +ATOM 6614 N ALA 440 -61.130 7.950 16.247 1.00 98.54 N +ATOM 6615 CA ALA 440 -60.385 8.201 15.015 1.00 98.54 C +ATOM 6616 C ALA 440 -59.215 9.165 15.250 1.00 98.54 C +ATOM 6617 O ALA 440 -59.403 10.194 15.897 1.00 98.54 O +ATOM 6618 CB ALA 440 -61.341 8.776 13.959 1.00 98.54 C +ATOM 6624 N ARG 441 -58.048 8.819 14.688 1.00 98.69 N +ATOM 6625 CA ARG 441 -56.835 9.634 14.680 1.00 98.69 C +ATOM 6626 C ARG 441 -56.563 10.061 13.235 1.00 98.69 C +ATOM 6627 O ARG 441 -56.404 9.203 12.370 1.00 98.69 O +ATOM 6628 CB ARG 441 -55.643 8.822 15.222 1.00 98.69 C +ATOM 6629 CG ARG 441 -55.814 8.309 16.663 1.00 98.69 C +ATOM 6630 CD ARG 441 -54.677 7.366 17.085 1.00 98.69 C +ATOM 6631 NE ARG 441 -54.758 6.078 16.378 1.00 98.69 N +ATOM 6632 NH1 ARG 441 -52.494 5.494 16.555 1.00 98.69 N +ATOM 6633 NH2 ARG 441 -53.989 4.085 15.492 1.00 98.69 N +ATOM 6634 CZ ARG 441 -53.744 5.227 16.148 1.00 98.69 C +ATOM 6648 N HIS 442 -56.513 11.377 13.011 1.00 98.67 N +ATOM 6649 CA HIS 442 -56.336 12.012 11.709 1.00 98.67 C +ATOM 6650 C HIS 442 -54.898 12.514 11.565 1.00 98.67 C +ATOM 6651 O HIS 442 -54.338 13.033 12.530 1.00 98.67 O +ATOM 6652 CB HIS 442 -57.317 13.196 11.615 1.00 98.67 C +ATOM 6653 CG HIS 442 -58.765 12.787 11.711 1.00 98.67 C +ATOM 6654 CD2 HIS 442 -59.556 12.466 12.793 1.00 98.67 C +ATOM 6655 ND1 HIS 442 -59.581 12.658 10.602 1.00 98.67 N +ATOM 6656 CE1 HIS 442 -60.776 12.252 11.037 1.00 98.67 C +ATOM 6657 NE2 HIS 442 -60.832 12.109 12.355 1.00 98.67 N +ATOM 6665 N THR 443 -54.357 12.396 10.345 1.00 98.74 N +ATOM 6666 CA THR 443 -53.101 13.014 9.930 1.00 98.74 C +ATOM 6667 C THR 443 -53.411 13.776 8.633 1.00 98.74 C +ATOM 6668 O THR 443 -53.230 13.253 7.531 1.00 98.74 O +ATOM 6669 CB THR 443 -51.967 11.976 9.710 1.00 98.74 C +ATOM 6670 CG2 THR 443 -50.624 12.578 9.260 1.00 98.74 C +ATOM 6671 OG1 THR 443 -51.730 11.272 10.914 1.00 98.74 O +ATOM 6679 N LEU 444 -53.962 14.985 8.821 1.00 98.83 N +ATOM 6680 CA LEU 444 -54.490 15.850 7.774 1.00 98.83 C +ATOM 6681 C LEU 444 -53.362 16.688 7.154 1.00 98.83 C +ATOM 6682 O LEU 444 -53.035 17.755 7.672 1.00 98.83 O +ATOM 6683 CB LEU 444 -55.616 16.717 8.382 1.00 98.83 C +ATOM 6684 CG LEU 444 -56.372 17.624 7.383 1.00 98.83 C +ATOM 6685 CD1 LEU 444 -57.117 16.818 6.303 1.00 98.83 C +ATOM 6686 CD2 LEU 444 -57.322 18.581 8.125 1.00 98.83 C +ATOM 6698 N LEU 445 -52.803 16.178 6.050 1.00 98.88 N +ATOM 6699 CA LEU 445 -51.821 16.853 5.209 1.00 98.88 C +ATOM 6700 C LEU 445 -52.533 17.734 4.169 1.00 98.88 C +ATOM 6701 O LEU 445 -53.441 17.264 3.490 1.00 98.88 O +ATOM 6702 CB LEU 445 -50.931 15.764 4.564 1.00 98.88 C +ATOM 6703 CG LEU 445 -49.945 16.216 3.460 1.00 98.88 C +ATOM 6704 CD1 LEU 445 -48.974 17.321 3.926 1.00 98.88 C +ATOM 6705 CD2 LEU 445 -49.204 14.994 2.880 1.00 98.88 C +ATOM 6717 N THR 446 -52.065 18.979 4.028 1.00 98.90 N +ATOM 6718 CA THR 446 -52.433 19.904 2.959 1.00 98.90 C +ATOM 6719 C THR 446 -51.144 20.545 2.416 1.00 98.90 C +ATOM 6720 O THR 446 -50.208 20.756 3.188 1.00 98.90 O +ATOM 6721 CB THR 446 -53.417 21.000 3.463 1.00 98.90 C +ATOM 6722 CG2 THR 446 -52.889 21.924 4.576 1.00 98.90 C +ATOM 6723 OG1 THR 446 -53.822 21.835 2.394 1.00 98.90 O +ATOM 6731 N GLY 447 -51.091 20.825 1.107 1.00 98.89 N +ATOM 6732 CA GLY 447 -49.879 21.373 0.516 1.00 98.89 C +ATOM 6733 C GLY 447 -50.155 22.064 -0.816 1.00 98.89 C +ATOM 6734 O GLY 447 -51.250 21.999 -1.376 1.00 98.89 O +ATOM 6738 N LEU 448 -49.095 22.720 -1.305 1.00 98.94 N +ATOM 6739 CA LEU 448 -49.031 23.467 -2.550 1.00 98.94 C +ATOM 6740 C LEU 448 -47.616 23.296 -3.112 1.00 98.94 C +ATOM 6741 O LEU 448 -46.675 23.835 -2.529 1.00 98.94 O +ATOM 6742 CB LEU 448 -49.411 24.948 -2.285 1.00 98.94 C +ATOM 6743 CG LEU 448 -49.122 25.963 -3.423 1.00 98.94 C +ATOM 6744 CD1 LEU 448 -49.828 25.599 -4.747 1.00 98.94 C +ATOM 6745 CD2 LEU 448 -49.421 27.407 -2.966 1.00 98.94 C +ATOM 6757 N ASP 449 -47.496 22.582 -4.241 1.00 98.85 N +ATOM 6758 CA ASP 449 -46.249 22.483 -5.002 1.00 98.85 C +ATOM 6759 C ASP 449 -46.338 23.360 -6.258 1.00 98.85 C +ATOM 6760 O ASP 449 -47.433 23.689 -6.722 1.00 98.85 O +ATOM 6761 CB ASP 449 -45.826 21.027 -5.339 1.00 98.85 C +ATOM 6762 CG ASP 449 -46.903 20.118 -5.932 1.00 98.85 C +ATOM 6763 OD1 ASP 449 -47.565 20.559 -6.896 1.00 98.85 O +ATOM 6764 OD2 ASP 449 -46.979 18.949 -5.493 1.00 98.85 O +ATOM 6769 N TYR 450 -45.160 23.707 -6.786 1.00 98.92 N +ATOM 6770 CA TYR 450 -45.016 24.453 -8.023 1.00 98.92 C +ATOM 6771 C TYR 450 -43.749 23.985 -8.740 1.00 98.92 C +ATOM 6772 O TYR 450 -42.659 24.118 -8.188 1.00 98.92 O +ATOM 6773 CB TYR 450 -45.050 25.969 -7.747 1.00 98.92 C +ATOM 6774 CG TYR 450 -44.769 26.849 -8.951 1.00 98.92 C +ATOM 6775 CD1 TYR 450 -43.547 27.543 -9.061 1.00 98.92 C +ATOM 6776 CD2 TYR 450 -45.740 26.978 -9.964 1.00 98.92 C +ATOM 6777 CE1 TYR 450 -43.309 28.385 -10.164 1.00 98.92 C +ATOM 6778 CE2 TYR 450 -45.508 27.826 -11.062 1.00 98.92 C +ATOM 6779 OH TYR 450 -44.084 29.396 -12.194 1.00 98.92 O +ATOM 6780 CZ TYR 450 -44.297 28.541 -11.155 1.00 98.92 C +ATOM 6790 N GLN 451 -43.938 23.471 -9.962 1.00 98.88 N +ATOM 6791 CA GLN 451 -42.889 23.094 -10.901 1.00 98.88 C +ATOM 6792 C GLN 451 -42.853 24.136 -12.026 1.00 98.88 C +ATOM 6793 O GLN 451 -43.900 24.647 -12.427 1.00 98.88 O +ATOM 6794 CB GLN 451 -43.204 21.712 -11.512 1.00 98.88 C +ATOM 6795 CG GLN 451 -43.401 20.587 -10.478 1.00 98.88 C +ATOM 6796 CD GLN 451 -43.516 19.187 -11.096 1.00 98.88 C +ATOM 6797 NE2 GLN 451 -43.771 18.186 -10.252 1.00 98.88 N +ATOM 6798 OE1 GLN 451 -43.380 18.999 -12.304 1.00 98.88 O +ATOM 6807 N ARG 452 -41.650 24.378 -12.557 1.00 98.84 N +ATOM 6808 CA ARG 452 -41.429 25.199 -13.741 1.00 98.84 C +ATOM 6809 C ARG 452 -40.163 24.697 -14.442 1.00 98.84 C +ATOM 6810 O ARG 452 -39.189 24.378 -13.767 1.00 98.84 O +ATOM 6811 CB ARG 452 -41.343 26.690 -13.353 1.00 98.84 C +ATOM 6812 CG ARG 452 -41.586 27.640 -14.534 1.00 98.84 C +ATOM 6813 CD ARG 452 -41.386 29.112 -14.151 1.00 98.84 C +ATOM 6814 NE ARG 452 -42.054 30.005 -15.106 1.00 98.84 N +ATOM 6815 NH1 ARG 452 -40.793 31.928 -14.657 1.00 98.84 N +ATOM 6816 NH2 ARG 452 -42.539 31.990 -16.176 1.00 98.84 N +ATOM 6817 CZ ARG 452 -41.785 31.305 -15.308 1.00 98.84 C +ATOM 6831 N ARG 453 -40.202 24.626 -15.778 1.00 98.78 N +ATOM 6832 CA ARG 453 -39.133 24.101 -16.619 1.00 98.78 C +ATOM 6833 C ARG 453 -39.045 24.933 -17.904 1.00 98.78 C +ATOM 6834 O ARG 453 -40.068 25.381 -18.422 1.00 98.78 O +ATOM 6835 CB ARG 453 -39.407 22.607 -16.906 1.00 98.78 C +ATOM 6836 CG ARG 453 -38.254 21.839 -17.588 1.00 98.78 C +ATOM 6837 CD ARG 453 -38.595 20.363 -17.859 1.00 98.78 C +ATOM 6838 NE ARG 453 -39.560 20.222 -18.960 1.00 98.78 N +ATOM 6839 NH1 ARG 453 -40.443 18.142 -18.333 1.00 98.78 N +ATOM 6840 NH2 ARG 453 -41.221 19.224 -20.221 1.00 98.78 N +ATOM 6841 CZ ARG 453 -40.402 19.194 -19.162 1.00 98.78 C +ATOM 6855 N ARG 454 -37.811 25.086 -18.399 1.00 98.84 N +ATOM 6856 CA ARG 454 -37.468 25.703 -19.672 1.00 98.84 C +ATOM 6857 C ARG 454 -36.335 24.870 -20.276 1.00 98.84 C +ATOM 6858 O ARG 454 -35.303 24.720 -19.626 1.00 98.84 O +ATOM 6859 CB ARG 454 -37.055 27.171 -19.437 1.00 98.84 C +ATOM 6860 CG ARG 454 -36.579 27.911 -20.701 1.00 98.84 C +ATOM 6861 CD ARG 454 -36.218 29.372 -20.408 1.00 98.84 C +ATOM 6862 NE ARG 454 -35.604 30.038 -21.563 1.00 98.84 N +ATOM 6863 NH1 ARG 454 -33.382 29.522 -21.027 1.00 98.84 N +ATOM 6864 NH2 ARG 454 -33.876 30.765 -22.917 1.00 98.84 N +ATOM 6865 CZ ARG 454 -34.288 30.100 -21.830 1.00 98.84 C +ATOM 6879 N THR 455 -36.543 24.351 -21.493 1.00 98.84 N +ATOM 6880 CA THR 455 -35.594 23.468 -22.164 1.00 98.84 C +ATOM 6881 C THR 455 -35.336 23.970 -23.595 1.00 98.84 C +ATOM 6882 O THR 455 -36.115 23.689 -24.507 1.00 98.84 O +ATOM 6883 CB THR 455 -36.079 21.990 -22.195 1.00 98.84 C +ATOM 6884 CG2 THR 455 -34.948 20.995 -22.483 1.00 98.84 C +ATOM 6885 OG1 THR 455 -36.645 21.607 -20.958 1.00 98.84 O +ATOM 6893 N VAL 456 -34.247 24.741 -23.749 1.00 98.89 N +ATOM 6894 CA VAL 456 -33.750 25.234 -25.033 1.00 98.89 C +ATOM 6895 C VAL 456 -32.901 24.125 -25.673 1.00 98.89 C +ATOM 6896 O VAL 456 -32.002 23.620 -25.005 1.00 98.89 O +ATOM 6897 CB VAL 456 -32.848 26.487 -24.841 1.00 98.89 C +ATOM 6898 CG1 VAL 456 -32.235 27.025 -26.152 1.00 98.89 C +ATOM 6899 CG2 VAL 456 -33.608 27.622 -24.138 1.00 98.89 C +ATOM 6909 N VAL 457 -33.214 23.749 -26.923 1.00 98.75 N +ATOM 6910 CA VAL 457 -32.579 22.626 -27.617 1.00 98.75 C +ATOM 6911 C VAL 457 -32.329 22.965 -29.094 1.00 98.75 C +ATOM 6912 O VAL 457 -33.244 23.413 -29.785 1.00 98.75 O +ATOM 6913 CB VAL 457 -33.439 21.330 -27.526 1.00 98.75 C +ATOM 6914 CG1 VAL 457 -33.672 20.911 -26.073 1.00 98.75 C +ATOM 6915 CG2 VAL 457 -34.800 21.386 -28.240 1.00 98.75 C +ATOM 6925 N ASP 458 -31.085 22.734 -29.543 1.00 98.77 N +ATOM 6926 CA ASP 458 -30.642 22.895 -30.929 1.00 98.77 C +ATOM 6927 C ASP 458 -30.307 21.513 -31.500 1.00 98.77 C +ATOM 6928 O ASP 458 -29.156 21.083 -31.410 1.00 98.77 O +ATOM 6929 CB ASP 458 -29.435 23.861 -31.092 1.00 98.77 C +ATOM 6930 CG ASP 458 -29.650 25.317 -30.665 1.00 98.77 C +ATOM 6931 OD1 ASP 458 -30.761 25.660 -30.207 1.00 98.77 O +ATOM 6932 OD2 ASP 458 -28.687 26.091 -30.848 1.00 98.77 O +ATOM 6937 N TRP 459 -31.319 20.840 -32.074 1.00 98.68 N +ATOM 6938 CA TRP 459 -31.159 19.524 -32.693 1.00 98.68 C +ATOM 6939 C TRP 459 -30.648 19.630 -34.135 1.00 98.68 C +ATOM 6940 O TRP 459 -31.180 20.406 -34.930 1.00 98.68 O +ATOM 6941 CB TRP 459 -32.474 18.727 -32.636 1.00 98.68 C +ATOM 6942 CG TRP 459 -33.021 18.455 -31.267 1.00 98.68 C +ATOM 6943 CD1 TRP 459 -32.292 18.074 -30.192 1.00 98.68 C +ATOM 6944 CD2 TRP 459 -34.412 18.461 -30.823 1.00 98.68 C +ATOM 6945 CE2 TRP 459 -34.445 18.074 -29.448 1.00 98.68 C +ATOM 6946 CE3 TRP 459 -35.653 18.752 -31.438 1.00 98.68 C +ATOM 6947 NE1 TRP 459 -33.124 17.868 -29.114 1.00 98.68 N +ATOM 6948 CH2 TRP 459 -36.862 18.265 -29.368 1.00 98.68 C +ATOM 6949 CZ2 TRP 459 -35.645 17.967 -28.729 1.00 98.68 C +ATOM 6950 CZ3 TRP 459 -36.863 18.660 -30.720 1.00 98.68 C +ATOM 6961 N ARG 460 -29.634 18.807 -34.426 1.00 98.43 N +ATOM 6962 CA ARG 460 -29.047 18.598 -35.745 1.00 98.43 C +ATOM 6963 C ARG 460 -29.217 17.127 -36.135 1.00 98.43 C +ATOM 6964 O ARG 460 -29.394 16.274 -35.265 1.00 98.43 O +ATOM 6965 CB ARG 460 -27.549 18.972 -35.712 1.00 98.43 C +ATOM 6966 CG ARG 460 -27.256 20.417 -35.269 1.00 98.43 C +ATOM 6967 CD ARG 460 -27.723 21.469 -36.286 1.00 98.43 C +ATOM 6968 NE ARG 460 -27.582 22.838 -35.773 1.00 98.43 N +ATOM 6969 NH1 ARG 460 -29.638 22.924 -34.658 1.00 98.43 N +ATOM 6970 NH2 ARG 460 -28.232 24.751 -34.640 1.00 98.43 N +ATOM 6971 CZ ARG 460 -28.485 23.495 -35.026 1.00 98.43 C +ATOM 6985 N SER 461 -29.153 16.853 -37.444 1.00 98.44 N +ATOM 6986 CA SER 461 -29.324 15.513 -37.997 1.00 98.44 C +ATOM 6987 C SER 461 -28.827 15.440 -39.438 1.00 98.44 C +ATOM 6988 O SER 461 -28.675 16.475 -40.082 1.00 98.44 O +ATOM 6989 CB SER 461 -30.796 15.081 -37.879 1.00 98.44 C +ATOM 6990 OG SER 461 -31.665 15.874 -38.665 1.00 98.44 O +ATOM 6996 N GLY 462 -28.610 14.208 -39.915 1.00 98.51 N +ATOM 6997 CA GLY 462 -28.186 13.951 -41.283 1.00 98.51 C +ATOM 6998 C GLY 462 -28.141 12.445 -41.532 1.00 98.51 C +ATOM 6999 O GLY 462 -28.414 11.641 -40.641 1.00 98.51 O +ATOM 7003 N SER 463 -27.774 12.079 -42.767 1.00 98.42 N +ATOM 7004 CA SER 463 -27.468 10.709 -43.172 1.00 98.42 C +ATOM 7005 C SER 463 -25.951 10.482 -43.058 1.00 98.42 C +ATOM 7006 O SER 463 -25.179 11.346 -43.474 1.00 98.42 O +ATOM 7007 CB SER 463 -27.981 10.488 -44.608 1.00 98.42 C +ATOM 7008 OG SER 463 -27.756 9.160 -45.040 1.00 98.42 O +ATOM 7014 N ALA 464 -25.566 9.317 -42.520 1.00 98.52 N +ATOM 7015 CA ALA 464 -24.182 8.856 -42.420 1.00 98.52 C +ATOM 7016 C ALA 464 -23.950 7.681 -43.384 1.00 98.52 C +ATOM 7017 O ALA 464 -24.910 7.073 -43.863 1.00 98.52 O +ATOM 7018 CB ALA 464 -23.915 8.440 -40.963 1.00 98.52 C +ATOM 7024 N SER 465 -22.668 7.371 -43.643 1.00 98.04 N +ATOM 7025 CA SER 465 -22.229 6.240 -44.471 1.00 98.04 C +ATOM 7026 C SER 465 -22.657 4.874 -43.898 1.00 98.04 C +ATOM 7027 O SER 465 -22.828 4.753 -42.687 1.00 98.04 O +ATOM 7028 CB SER 465 -20.699 6.337 -44.644 1.00 98.04 C +ATOM 7029 OG SER 465 -20.001 5.997 -43.461 1.00 98.04 O +ATOM 7035 N ALA 466 -22.803 3.865 -44.771 1.00 98.46 N +ATOM 7036 CA ALA 466 -23.137 2.498 -44.368 1.00 98.46 C +ATOM 7037 C ALA 466 -21.917 1.774 -43.769 1.00 98.46 C +ATOM 7038 O ALA 466 -20.826 1.862 -44.335 1.00 98.46 O +ATOM 7039 CB ALA 466 -23.689 1.740 -45.583 1.00 98.46 C +ATOM 7045 N LEU 467 -22.133 1.067 -42.647 1.00 98.64 N +ATOM 7046 CA LEU 467 -21.096 0.357 -41.893 1.00 98.64 C +ATOM 7047 C LEU 467 -21.407 -1.145 -41.883 1.00 98.64 C +ATOM 7048 O LEU 467 -22.541 -1.516 -41.580 1.00 98.64 O +ATOM 7049 CB LEU 467 -21.068 0.919 -40.452 1.00 98.64 C +ATOM 7050 CG LEU 467 -19.928 0.395 -39.546 1.00 98.64 C +ATOM 7051 CD1 LEU 467 -18.546 0.867 -40.041 1.00 98.64 C +ATOM 7052 CD2 LEU 467 -20.168 0.764 -38.066 1.00 98.64 C +ATOM 7064 N ASP 468 -20.381 -1.973 -42.151 1.00 98.60 N +ATOM 7065 CA ASP 468 -20.435 -3.435 -42.050 1.00 98.60 C +ATOM 7066 C ASP 468 -20.642 -3.848 -40.581 1.00 98.60 C +ATOM 7067 O ASP 468 -19.861 -3.452 -39.717 1.00 98.60 O +ATOM 7068 CB ASP 468 -19.196 -4.088 -42.710 1.00 98.60 C +ATOM 7069 CG ASP 468 -19.255 -5.614 -42.896 1.00 98.60 C +ATOM 7070 OD1 ASP 468 -19.610 -6.324 -41.929 1.00 98.60 O +ATOM 7071 OD2 ASP 468 -18.833 -6.063 -43.983 1.00 98.60 O +ATOM 7076 N ALA 469 -21.711 -4.621 -40.342 1.00 98.55 N +ATOM 7077 CA ALA 469 -22.180 -5.026 -39.018 1.00 98.55 C +ATOM 7078 C ALA 469 -21.321 -6.096 -38.319 1.00 98.55 C +ATOM 7079 O ALA 469 -21.549 -6.351 -37.136 1.00 98.55 O +ATOM 7080 CB ALA 469 -23.622 -5.515 -39.162 1.00 98.55 C +ATOM 7086 N PHE 470 -20.383 -6.712 -39.056 1.00 98.14 N +ATOM 7087 CA PHE 470 -19.556 -7.829 -38.595 1.00 98.14 C +ATOM 7088 C PHE 470 -18.061 -7.476 -38.700 1.00 98.14 C +ATOM 7089 O PHE 470 -17.277 -7.998 -37.908 1.00 98.14 O +ATOM 7090 CB PHE 470 -19.866 -9.079 -39.452 1.00 98.14 C +ATOM 7091 CG PHE 470 -21.345 -9.375 -39.650 1.00 98.14 C +ATOM 7092 CD1 PHE 470 -22.108 -9.991 -38.636 1.00 98.14 C +ATOM 7093 CD2 PHE 470 -22.008 -8.859 -40.783 1.00 98.14 C +ATOM 7094 CE1 PHE 470 -23.480 -10.141 -38.802 1.00 98.14 C +ATOM 7095 CE2 PHE 470 -23.379 -9.018 -40.925 1.00 98.14 C +ATOM 7096 CZ PHE 470 -24.110 -9.668 -39.943 1.00 98.14 C +ATOM 7106 N ASN 471 -17.696 -6.609 -39.663 1.00 97.81 N +ATOM 7107 CA ASN 471 -16.321 -6.195 -39.968 1.00 97.81 C +ATOM 7108 C ASN 471 -16.244 -4.658 -40.156 1.00 97.81 C +ATOM 7109 O ASN 471 -15.861 -4.217 -41.242 1.00 97.81 O +ATOM 7110 CB ASN 471 -15.814 -6.949 -41.230 1.00 97.81 C +ATOM 7111 CG ASN 471 -15.812 -8.475 -41.103 1.00 97.81 C +ATOM 7112 ND2 ASN 471 -16.708 -9.146 -41.832 1.00 97.81 N +ATOM 7113 OD1 ASN 471 -15.011 -9.041 -40.364 1.00 97.81 O +ATOM 7120 N PRO 472 -16.652 -3.852 -39.142 1.00 98.09 N +ATOM 7121 CA PRO 472 -16.754 -2.385 -39.283 1.00 98.09 C +ATOM 7122 C PRO 472 -15.415 -1.669 -39.535 1.00 98.09 C +ATOM 7123 O PRO 472 -14.481 -1.823 -38.748 1.00 98.09 O +ATOM 7124 CB PRO 472 -17.379 -1.929 -37.955 1.00 98.09 C +ATOM 7125 CG PRO 472 -16.996 -3.004 -36.953 1.00 98.09 C +ATOM 7126 CD PRO 472 -17.042 -4.273 -37.793 1.00 98.09 C +ATOM 7134 N VAL 473 -15.377 -0.880 -40.620 1.00 98.45 N +ATOM 7135 CA VAL 473 -14.280 0.023 -40.954 1.00 98.45 C +ATOM 7136 C VAL 473 -14.752 1.457 -40.657 1.00 98.45 C +ATOM 7137 O VAL 473 -15.601 1.987 -41.375 1.00 98.45 O +ATOM 7138 CB VAL 473 -13.873 -0.097 -42.452 1.00 98.45 C +ATOM 7139 CG1 VAL 473 -12.823 0.943 -42.901 1.00 98.45 C +ATOM 7140 CG2 VAL 473 -13.359 -1.513 -42.770 1.00 98.45 C +ATOM 7150 N TYR 474 -14.203 2.034 -39.579 1.00 98.30 N +ATOM 7151 CA TYR 474 -14.507 3.385 -39.105 1.00 98.30 C +ATOM 7152 C TYR 474 -13.606 4.434 -39.787 1.00 98.30 C +ATOM 7153 O TYR 474 -12.611 4.079 -40.421 1.00 98.30 O +ATOM 7154 CB TYR 474 -14.311 3.429 -37.574 1.00 98.30 C +ATOM 7155 CG TYR 474 -15.036 2.349 -36.786 1.00 98.30 C +ATOM 7156 CD1 TYR 474 -16.420 2.454 -36.536 1.00 98.30 C +ATOM 7157 CD2 TYR 474 -14.321 1.238 -36.291 1.00 98.30 C +ATOM 7158 CE1 TYR 474 -17.077 1.468 -35.772 1.00 98.30 C +ATOM 7159 CE2 TYR 474 -14.981 0.247 -35.540 1.00 98.30 C +ATOM 7160 OH TYR 474 -16.985 -0.581 -34.516 1.00 98.30 O +ATOM 7161 CZ TYR 474 -16.356 0.369 -35.267 1.00 98.30 C +ATOM 7171 N GLY 475 -13.961 5.715 -39.603 1.00 97.44 N +ATOM 7172 CA GLY 475 -13.202 6.872 -40.078 1.00 97.44 C +ATOM 7173 C GLY 475 -13.936 7.623 -41.199 1.00 97.44 C +ATOM 7174 O GLY 475 -13.489 8.707 -41.570 1.00 97.44 O +ATOM 7178 N ASP 476 -15.055 7.083 -41.714 1.00 96.67 N +ATOM 7179 CA ASP 476 -15.937 7.738 -42.680 1.00 96.67 C +ATOM 7180 C ASP 476 -17.109 8.341 -41.883 1.00 96.67 C +ATOM 7181 O ASP 476 -18.185 7.746 -41.816 1.00 96.67 O +ATOM 7182 CB ASP 476 -16.378 6.743 -43.785 1.00 96.67 C +ATOM 7183 CG ASP 476 -17.175 7.358 -44.946 1.00 96.67 C +ATOM 7184 OD1 ASP 476 -17.274 8.604 -45.020 1.00 96.67 O +ATOM 7185 OD2 ASP 476 -17.663 6.551 -45.766 1.00 96.67 O +ATOM 7190 N ASP 477 -16.846 9.498 -41.254 1.00 97.18 N +ATOM 7191 CA ASP 477 -17.780 10.196 -40.364 1.00 97.18 C +ATOM 7192 C ASP 477 -18.576 11.306 -41.083 1.00 97.18 C +ATOM 7193 O ASP 477 -19.243 12.080 -40.399 1.00 97.18 O +ATOM 7194 CB ASP 477 -17.086 10.732 -39.080 1.00 97.18 C +ATOM 7195 CG ASP 477 -15.918 11.713 -39.277 1.00 97.18 C +ATOM 7196 OD1 ASP 477 -15.626 12.087 -40.434 1.00 97.18 O +ATOM 7197 OD2 ASP 477 -15.355 12.112 -38.235 1.00 97.18 O +ATOM 7202 N ALA 478 -18.487 11.388 -42.423 1.00 97.20 N +ATOM 7203 CA ALA 478 -19.139 12.402 -43.255 1.00 97.20 C +ATOM 7204 C ALA 478 -20.673 12.370 -43.128 1.00 97.20 C +ATOM 7205 O ALA 478 -21.286 11.352 -43.455 1.00 97.20 O +ATOM 7206 CB ALA 478 -18.699 12.203 -44.713 1.00 97.20 C +ATOM 7212 N ILE 479 -21.246 13.482 -42.636 1.00 98.44 N +ATOM 7213 CA ILE 479 -22.680 13.629 -42.393 1.00 98.44 C +ATOM 7214 C ILE 479 -23.276 14.566 -43.456 1.00 98.44 C +ATOM 7215 O ILE 479 -22.852 15.718 -43.567 1.00 98.44 O +ATOM 7216 CB ILE 479 -22.976 14.235 -40.984 1.00 98.44 C +ATOM 7217 CG1 ILE 479 -22.331 13.431 -39.833 1.00 98.44 C +ATOM 7218 CG2 ILE 479 -24.483 14.432 -40.704 1.00 98.44 C +ATOM 7219 CD1 ILE 479 -22.623 11.923 -39.847 1.00 98.44 C +ATOM 7231 N SER 480 -24.274 14.051 -44.189 1.00 98.38 N +ATOM 7232 CA SER 480 -25.095 14.799 -45.138 1.00 98.38 C +ATOM 7233 C SER 480 -26.298 15.377 -44.380 1.00 98.38 C +ATOM 7234 O SER 480 -27.321 14.701 -44.263 1.00 98.38 O +ATOM 7235 CB SER 480 -25.530 13.853 -46.275 1.00 98.38 C +ATOM 7236 OG SER 480 -24.460 13.644 -47.172 1.00 98.38 O +ATOM 7242 N TYR 481 -26.114 16.586 -43.821 1.00 98.38 N +ATOM 7243 CA TYR 481 -27.056 17.241 -42.912 1.00 98.38 C +ATOM 7244 C TYR 481 -28.434 17.538 -43.524 1.00 98.38 C +ATOM 7245 O TYR 481 -28.527 18.044 -44.642 1.00 98.38 O +ATOM 7246 CB TYR 481 -26.430 18.522 -42.323 1.00 98.38 C +ATOM 7247 CG TYR 481 -25.395 18.268 -41.240 1.00 98.38 C +ATOM 7248 CD1 TYR 481 -25.805 18.109 -39.899 1.00 98.38 C +ATOM 7249 CD2 TYR 481 -24.025 18.186 -41.563 1.00 98.38 C +ATOM 7250 CE1 TYR 481 -24.857 17.851 -38.891 1.00 98.38 C +ATOM 7251 CE2 TYR 481 -23.075 17.941 -40.553 1.00 98.38 C +ATOM 7252 OH TYR 481 -22.573 17.512 -38.240 1.00 98.38 O +ATOM 7253 CZ TYR 481 -23.491 17.765 -39.218 1.00 98.38 C +ATOM 7263 N PHE 482 -29.465 17.249 -42.718 1.00 98.26 N +ATOM 7264 CA PHE 482 -30.860 17.635 -42.912 1.00 98.26 C +ATOM 7265 C PHE 482 -31.105 19.007 -42.231 1.00 98.26 C +ATOM 7266 O PHE 482 -30.250 19.444 -41.456 1.00 98.26 O +ATOM 7267 CB PHE 482 -31.746 16.535 -42.278 1.00 98.26 C +ATOM 7268 CG PHE 482 -31.521 15.107 -42.758 1.00 98.26 C +ATOM 7269 CD1 PHE 482 -31.327 14.809 -44.125 1.00 98.26 C +ATOM 7270 CD2 PHE 482 -31.666 14.039 -41.847 1.00 98.26 C +ATOM 7271 CE1 PHE 482 -31.215 13.489 -44.541 1.00 98.26 C +ATOM 7272 CE2 PHE 482 -31.561 12.726 -42.282 1.00 98.26 C +ATOM 7273 CZ PHE 482 -31.330 12.452 -43.623 1.00 98.26 C +ATOM 7283 N PRO 483 -32.265 19.661 -42.492 1.00 97.44 N +ATOM 7284 CA PRO 483 -32.628 20.943 -41.847 1.00 97.44 C +ATOM 7285 C PRO 483 -32.654 20.912 -40.307 1.00 97.44 C +ATOM 7286 O PRO 483 -33.206 19.976 -39.726 1.00 97.44 O +ATOM 7287 CB PRO 483 -34.018 21.266 -42.425 1.00 97.44 C +ATOM 7288 CG PRO 483 -34.046 20.557 -43.766 1.00 97.44 C +ATOM 7289 CD PRO 483 -33.278 19.276 -43.479 1.00 97.44 C +ATOM 7297 N ASP 484 -32.052 21.946 -39.693 1.00 96.87 N +ATOM 7298 CA ASP 484 -32.016 22.189 -38.244 1.00 96.87 C +ATOM 7299 C ASP 484 -33.427 22.329 -37.648 1.00 96.87 C +ATOM 7300 O ASP 484 -34.273 22.988 -38.256 1.00 96.87 O +ATOM 7301 CB ASP 484 -31.203 23.453 -37.855 1.00 96.87 C +ATOM 7302 CG ASP 484 -29.776 23.560 -38.407 1.00 96.87 C +ATOM 7303 OD1 ASP 484 -29.283 22.579 -39.006 1.00 96.87 O +ATOM 7304 OD2 ASP 484 -29.176 24.630 -38.168 1.00 96.87 O +ATOM 7309 N ASP 485 -33.631 21.748 -36.455 1.00 97.45 N +ATOM 7310 CA ASP 485 -34.890 21.822 -35.719 1.00 97.45 C +ATOM 7311 C ASP 485 -34.575 22.362 -34.317 1.00 97.45 C +ATOM 7312 O ASP 485 -34.158 21.610 -33.435 1.00 97.45 O +ATOM 7313 CB ASP 485 -35.618 20.455 -35.694 1.00 97.45 C +ATOM 7314 CG ASP 485 -37.084 20.543 -35.250 1.00 97.45 C +ATOM 7315 OD1 ASP 485 -37.725 21.580 -35.534 1.00 97.45 O +ATOM 7316 OD2 ASP 485 -37.565 19.529 -34.701 1.00 97.45 O +ATOM 7321 N ASN 486 -34.748 23.681 -34.165 1.00 98.46 N +ATOM 7322 CA ASN 486 -34.468 24.428 -32.941 1.00 98.46 C +ATOM 7323 C ASN 486 -35.793 24.690 -32.211 1.00 98.46 C +ATOM 7324 O ASN 486 -36.757 25.113 -32.850 1.00 98.46 O +ATOM 7325 CB ASN 486 -33.760 25.753 -33.308 1.00 98.46 C +ATOM 7326 CG ASN 486 -32.420 25.549 -34.030 1.00 98.46 C +ATOM 7327 ND2 ASN 486 -32.254 26.165 -35.202 1.00 98.46 N +ATOM 7328 OD1 ASN 486 -31.541 24.846 -33.541 1.00 98.46 O +ATOM 7335 N HIS 487 -35.813 24.436 -30.895 1.00 98.45 N +ATOM 7336 CA HIS 487 -36.996 24.555 -30.039 1.00 98.45 C +ATOM 7337 C HIS 487 -36.644 25.203 -28.692 1.00 98.45 C +ATOM 7338 O HIS 487 -35.528 25.038 -28.201 1.00 98.45 O +ATOM 7339 CB HIS 487 -37.599 23.155 -29.792 1.00 98.45 C +ATOM 7340 CG HIS 487 -38.436 22.581 -30.901 1.00 98.45 C +ATOM 7341 CD2 HIS 487 -38.108 21.839 -32.013 1.00 98.45 C +ATOM 7342 ND1 HIS 487 -39.815 22.638 -30.887 1.00 98.45 N +ATOM 7343 CE1 HIS 487 -40.256 21.937 -31.931 1.00 98.45 C +ATOM 7344 NE2 HIS 487 -39.274 21.423 -32.659 1.00 98.45 N +ATOM 7352 N THR 488 -37.639 25.875 -28.097 1.00 98.65 N +ATOM 7353 CA THR 488 -37.645 26.316 -26.706 1.00 98.65 C +ATOM 7354 C THR 488 -38.959 25.817 -26.090 1.00 98.65 C +ATOM 7355 O THR 488 -40.007 26.451 -26.230 1.00 98.65 O +ATOM 7356 CB THR 488 -37.535 27.857 -26.555 1.00 98.65 C +ATOM 7357 CG2 THR 488 -37.696 28.391 -25.115 1.00 98.65 C +ATOM 7358 OG1 THR 488 -36.261 28.264 -27.009 1.00 98.65 O +ATOM 7366 N ARG 489 -38.854 24.651 -25.444 1.00 98.14 N +ATOM 7367 CA ARG 489 -39.923 23.986 -24.709 1.00 98.14 C +ATOM 7368 C ARG 489 -40.059 24.599 -23.312 1.00 98.14 C +ATOM 7369 O ARG 489 -39.056 24.993 -22.719 1.00 98.14 O +ATOM 7370 CB ARG 489 -39.560 22.497 -24.603 1.00 98.14 C +ATOM 7371 CG ARG 489 -39.610 21.771 -25.956 1.00 98.14 C +ATOM 7372 CD ARG 489 -38.920 20.405 -25.939 1.00 98.14 C +ATOM 7373 NE ARG 489 -39.595 19.457 -25.047 1.00 98.14 N +ATOM 7374 NH1 ARG 489 -41.442 19.010 -26.422 1.00 98.14 N +ATOM 7375 NH2 ARG 489 -41.234 18.005 -24.342 1.00 98.14 N +ATOM 7376 CZ ARG 489 -40.757 18.829 -25.282 1.00 98.14 C +ATOM 7390 N ARG 490 -41.299 24.640 -22.807 1.00 98.52 N +ATOM 7391 CA ARG 490 -41.616 25.045 -21.443 1.00 98.52 C +ATOM 7392 C ARG 490 -42.726 24.144 -20.895 1.00 98.52 C +ATOM 7393 O ARG 490 -43.640 23.767 -21.628 1.00 98.52 O +ATOM 7394 CB ARG 490 -42.045 26.530 -21.369 1.00 98.52 C +ATOM 7395 CG ARG 490 -41.040 27.546 -21.944 1.00 98.52 C +ATOM 7396 CD ARG 490 -41.589 28.979 -21.929 1.00 98.52 C +ATOM 7397 NE ARG 490 -40.571 29.970 -22.303 1.00 98.52 N +ATOM 7398 NH1 ARG 490 -39.851 30.442 -20.128 1.00 98.52 N +ATOM 7399 NH2 ARG 490 -38.895 31.525 -21.938 1.00 98.52 N +ATOM 7400 CZ ARG 490 -39.774 30.639 -21.452 1.00 98.52 C +ATOM 7414 N LEU 491 -42.639 23.866 -19.591 1.00 98.53 N +ATOM 7415 CA LEU 491 -43.667 23.192 -18.808 1.00 98.53 C +ATOM 7416 C LEU 491 -43.765 23.933 -17.475 1.00 98.53 C +ATOM 7417 O LEU 491 -42.741 24.322 -16.920 1.00 98.53 O +ATOM 7418 CB LEU 491 -43.321 21.687 -18.680 1.00 98.53 C +ATOM 7419 CG LEU 491 -44.237 20.845 -17.751 1.00 98.53 C +ATOM 7420 CD1 LEU 491 -44.268 19.362 -18.180 1.00 98.53 C +ATOM 7421 CD2 LEU 491 -43.883 20.984 -16.251 1.00 98.53 C +ATOM 7433 N GLU 492 -44.994 24.098 -16.976 1.00 98.80 N +ATOM 7434 CA GLU 492 -45.268 24.748 -15.703 1.00 98.80 C +ATOM 7435 C GLU 492 -46.515 24.104 -15.094 1.00 98.80 C +ATOM 7436 O GLU 492 -47.498 23.902 -15.802 1.00 98.80 O +ATOM 7437 CB GLU 492 -45.364 26.272 -15.929 1.00 98.80 C +ATOM 7438 CG GLU 492 -45.599 27.104 -14.655 1.00 98.80 C +ATOM 7439 CD GLU 492 -45.536 28.615 -14.900 1.00 98.80 C +ATOM 7440 OE1 GLU 492 -46.209 29.334 -14.130 1.00 98.80 O +ATOM 7441 OE2 GLU 492 -44.761 29.044 -15.786 1.00 98.80 O +ATOM 7448 N GLN 493 -46.434 23.772 -13.800 1.00 98.83 N +ATOM 7449 CA GLN 493 -47.484 23.088 -13.055 1.00 98.83 C +ATOM 7450 C GLN 493 -47.587 23.711 -11.664 1.00 98.83 C +ATOM 7451 O GLN 493 -46.619 23.643 -10.914 1.00 98.83 O +ATOM 7452 CB GLN 493 -47.185 21.569 -13.005 1.00 98.83 C +ATOM 7453 CG GLN 493 -48.079 20.744 -12.050 1.00 98.83 C +ATOM 7454 CD GLN 493 -47.615 19.291 -11.971 1.00 98.83 C +ATOM 7455 NE2 GLN 493 -46.995 18.921 -10.850 1.00 98.83 N +ATOM 7456 OE1 GLN 493 -47.814 18.516 -12.903 1.00 98.83 O +ATOM 7465 N THR 494 -48.780 24.215 -11.328 1.00 98.93 N +ATOM 7466 CA THR 494 -49.189 24.516 -9.958 1.00 98.93 C +ATOM 7467 C THR 494 -50.132 23.388 -9.517 1.00 98.93 C +ATOM 7468 O THR 494 -51.020 23.033 -10.291 1.00 98.93 O +ATOM 7469 CB THR 494 -49.990 25.845 -9.891 1.00 98.93 C +ATOM 7470 CG2 THR 494 -50.518 26.220 -8.492 1.00 98.93 C +ATOM 7471 OG1 THR 494 -49.174 26.907 -10.338 1.00 98.93 O +ATOM 7479 N GLY 495 -49.937 22.846 -8.306 1.00 98.90 N +ATOM 7480 CA GLY 495 -50.791 21.784 -7.788 1.00 98.90 C +ATOM 7481 C GLY 495 -51.074 22.044 -6.315 1.00 98.90 C +ATOM 7482 O GLY 495 -50.145 22.139 -5.518 1.00 98.90 O +ATOM 7486 N VAL 496 -52.368 22.086 -5.966 1.00 98.93 N +ATOM 7487 CA VAL 496 -52.878 22.156 -4.598 1.00 98.93 C +ATOM 7488 C VAL 496 -53.495 20.788 -4.273 1.00 98.93 C +ATOM 7489 O VAL 496 -54.305 20.294 -5.060 1.00 98.93 O +ATOM 7490 CB VAL 496 -53.981 23.247 -4.463 1.00 98.93 C +ATOM 7491 CG1 VAL 496 -54.741 23.226 -3.119 1.00 98.93 C +ATOM 7492 CG2 VAL 496 -53.400 24.654 -4.690 1.00 98.93 C +ATOM 7502 N TYR 497 -53.104 20.209 -3.127 1.00 98.90 N +ATOM 7503 CA TYR 497 -53.511 18.866 -2.717 1.00 98.90 C +ATOM 7504 C TYR 497 -53.885 18.815 -1.230 1.00 98.90 C +ATOM 7505 O TYR 497 -53.432 19.641 -0.438 1.00 98.90 O +ATOM 7506 CB TYR 497 -52.408 17.851 -3.094 1.00 98.90 C +ATOM 7507 CG TYR 497 -51.076 18.001 -2.381 1.00 98.90 C +ATOM 7508 CD1 TYR 497 -50.093 18.875 -2.892 1.00 98.90 C +ATOM 7509 CD2 TYR 497 -50.812 17.253 -1.214 1.00 98.90 C +ATOM 7510 CE1 TYR 497 -48.848 18.992 -2.249 1.00 98.90 C +ATOM 7511 CE2 TYR 497 -49.572 17.380 -0.563 1.00 98.90 C +ATOM 7512 OH TYR 497 -47.390 18.353 -0.458 1.00 98.90 O +ATOM 7513 CZ TYR 497 -48.591 18.243 -1.085 1.00 98.90 C +ATOM 7523 N LEU 498 -54.711 17.811 -0.907 1.00 98.92 N +ATOM 7524 CA LEU 498 -55.233 17.504 0.418 1.00 98.92 C +ATOM 7525 C LEU 498 -55.226 15.977 0.597 1.00 98.92 C +ATOM 7526 O LEU 498 -55.481 15.245 -0.359 1.00 98.92 O +ATOM 7527 CB LEU 498 -56.662 18.090 0.529 1.00 98.92 C +ATOM 7528 CG LEU 498 -57.299 18.027 1.938 1.00 98.92 C +ATOM 7529 CD1 LEU 498 -56.526 18.899 2.948 1.00 98.92 C +ATOM 7530 CD2 LEU 498 -58.799 18.388 1.888 1.00 98.92 C +ATOM 7542 N GLN 499 -54.964 15.526 1.829 1.00 98.86 N +ATOM 7543 CA GLN 499 -54.983 14.122 2.224 1.00 98.86 C +ATOM 7544 C GLN 499 -55.318 14.013 3.716 1.00 98.86 C +ATOM 7545 O GLN 499 -54.902 14.869 4.492 1.00 98.86 O +ATOM 7546 CB GLN 499 -53.628 13.463 1.867 1.00 98.86 C +ATOM 7547 CG GLN 499 -53.496 11.973 2.255 1.00 98.86 C +ATOM 7548 CD GLN 499 -52.066 11.481 2.074 1.00 98.86 C +ATOM 7549 NE2 GLN 499 -51.316 11.403 3.174 1.00 98.86 N +ATOM 7550 OE1 GLN 499 -51.640 11.186 0.961 1.00 98.86 O +ATOM 7559 N ASP 500 -56.011 12.929 4.093 1.00 98.91 N +ATOM 7560 CA ASP 500 -56.251 12.546 5.481 1.00 98.91 C +ATOM 7561 C ASP 500 -56.003 11.035 5.596 1.00 98.91 C +ATOM 7562 O ASP 500 -56.604 10.262 4.847 1.00 98.91 O +ATOM 7563 CB ASP 500 -57.683 12.919 5.937 1.00 98.91 C +ATOM 7564 CG ASP 500 -57.894 12.923 7.458 1.00 98.91 C +ATOM 7565 OD1 ASP 500 -56.918 12.702 8.210 1.00 98.91 O +ATOM 7566 OD2 ASP 500 -59.055 13.166 7.853 1.00 98.91 O +ATOM 7571 N LEU 501 -55.149 10.653 6.559 1.00 98.88 N +ATOM 7572 CA LEU 501 -54.917 9.264 6.949 1.00 98.88 C +ATOM 7573 C LEU 501 -55.660 9.037 8.271 1.00 98.88 C +ATOM 7574 O LEU 501 -55.221 9.548 9.302 1.00 98.88 O +ATOM 7575 CB LEU 501 -53.403 8.978 7.098 1.00 98.88 C +ATOM 7576 CG LEU 501 -52.543 9.307 5.858 1.00 98.88 C +ATOM 7577 CD1 LEU 501 -51.042 9.118 6.161 1.00 98.88 C +ATOM 7578 CD2 LEU 501 -52.991 8.524 4.609 1.00 98.88 C +ATOM 7590 N ILE 502 -56.792 8.319 8.203 1.00 98.90 N +ATOM 7591 CA ILE 502 -57.706 8.144 9.331 1.00 98.90 C +ATOM 7592 C ILE 502 -57.514 6.733 9.919 1.00 98.90 C +ATOM 7593 O ILE 502 -57.920 5.746 9.303 1.00 98.90 O +ATOM 7594 CB ILE 502 -59.195 8.351 8.923 1.00 98.90 C +ATOM 7595 CG1 ILE 502 -59.398 9.723 8.237 1.00 98.90 C +ATOM 7596 CG2 ILE 502 -60.158 8.205 10.123 1.00 98.90 C +ATOM 7597 CD1 ILE 502 -60.797 9.937 7.644 1.00 98.90 C +ATOM 7609 N ASP 503 -56.886 6.686 11.104 1.00 98.74 N +ATOM 7610 CA ASP 503 -56.603 5.473 11.869 1.00 98.74 C +ATOM 7611 C ASP 503 -57.633 5.353 13.002 1.00 98.74 C +ATOM 7612 O ASP 503 -57.460 5.979 14.049 1.00 98.74 O +ATOM 7613 CB ASP 503 -55.161 5.413 12.440 1.00 98.74 C +ATOM 7614 CG ASP 503 -54.022 5.733 11.467 1.00 98.74 C +ATOM 7615 OD1 ASP 503 -54.220 5.610 10.238 1.00 98.74 O +ATOM 7616 OD2 ASP 503 -52.916 6.000 11.984 1.00 98.74 O +ATOM 7621 N ILE 504 -58.681 4.549 12.771 1.00 98.53 N +ATOM 7622 CA ILE 504 -59.721 4.244 13.753 1.00 98.53 C +ATOM 7623 C ILE 504 -59.698 2.734 14.044 1.00 98.53 C +ATOM 7624 O ILE 504 -59.932 1.930 13.143 1.00 98.53 O +ATOM 7625 CB ILE 504 -61.132 4.707 13.277 1.00 98.53 C +ATOM 7626 CG1 ILE 504 -62.215 4.468 14.355 1.00 98.53 C +ATOM 7627 CG2 ILE 504 -61.579 4.151 11.906 1.00 98.53 C +ATOM 7628 CD1 ILE 504 -63.532 5.215 14.098 1.00 98.53 C +ATOM 7640 N ASP 505 -59.374 2.383 15.302 1.00 97.22 N +ATOM 7641 CA ASP 505 -59.223 1.005 15.790 1.00 97.22 C +ATOM 7642 C ASP 505 -58.114 0.267 15.009 1.00 97.22 C +ATOM 7643 O ASP 505 -56.959 0.693 15.068 1.00 97.22 O +ATOM 7644 CB ASP 505 -60.566 0.218 15.876 1.00 97.22 C +ATOM 7645 CG ASP 505 -61.697 0.942 16.617 1.00 97.22 C +ATOM 7646 OD1 ASP 505 -61.387 1.778 17.495 1.00 97.22 O +ATOM 7647 OD2 ASP 505 -62.863 0.589 16.337 1.00 97.22 O +ATOM 7652 N GLN 506 -58.485 -0.798 14.283 1.00 98.30 N +ATOM 7653 CA GLN 506 -57.606 -1.580 13.415 1.00 98.30 C +ATOM 7654 C GLN 506 -57.632 -1.127 11.941 1.00 98.30 C +ATOM 7655 O GLN 506 -56.748 -1.540 11.191 1.00 98.30 O +ATOM 7656 CB GLN 506 -58.001 -3.067 13.550 1.00 98.30 C +ATOM 7657 CG GLN 506 -57.730 -3.744 14.916 1.00 98.30 C +ATOM 7658 CD GLN 506 -56.395 -3.386 15.580 1.00 98.30 C +ATOM 7659 NE2 GLN 506 -55.322 -4.094 15.228 1.00 98.30 N +ATOM 7660 OE1 GLN 506 -56.333 -2.477 16.404 1.00 98.30 O +ATOM 7669 N TRP 507 -58.598 -0.277 11.545 1.00 98.84 N +ATOM 7670 CA TRP 507 -58.671 0.301 10.200 1.00 98.84 C +ATOM 7671 C TRP 507 -57.630 1.408 9.975 1.00 98.84 C +ATOM 7672 O TRP 507 -57.346 2.182 10.889 1.00 98.84 O +ATOM 7673 CB TRP 507 -60.078 0.852 9.910 1.00 98.84 C +ATOM 7674 CG TRP 507 -61.176 -0.159 9.803 1.00 98.84 C +ATOM 7675 CD1 TRP 507 -61.990 -0.559 10.805 1.00 98.84 C +ATOM 7676 CD2 TRP 507 -61.538 -0.965 8.641 1.00 98.84 C +ATOM 7677 CE2 TRP 507 -62.608 -1.835 9.011 1.00 98.84 C +ATOM 7678 CE3 TRP 507 -61.063 -1.057 7.312 1.00 98.84 C +ATOM 7679 NE1 TRP 507 -62.846 -1.537 10.338 1.00 98.84 N +ATOM 7680 CH2 TRP 507 -62.669 -2.827 6.797 1.00 98.84 C +ATOM 7681 CZ2 TRP 507 -63.173 -2.754 8.109 1.00 98.84 C +ATOM 7682 CZ3 TRP 507 -61.617 -1.978 6.400 1.00 98.84 C +ATOM 7693 N ARG 508 -57.118 1.464 8.738 1.00 98.79 N +ATOM 7694 CA ARG 508 -56.194 2.470 8.227 1.00 98.79 C +ATOM 7695 C ARG 508 -56.721 2.939 6.862 1.00 98.79 C +ATOM 7696 O ARG 508 -56.467 2.280 5.853 1.00 98.79 O +ATOM 7697 CB ARG 508 -54.770 1.871 8.098 1.00 98.79 C +ATOM 7698 CG ARG 508 -54.153 1.288 9.380 1.00 98.79 C +ATOM 7699 CD ARG 508 -53.835 2.351 10.437 1.00 98.79 C +ATOM 7700 NE ARG 508 -53.268 1.762 11.653 1.00 98.79 N +ATOM 7701 NH1 ARG 508 -55.269 1.367 12.799 1.00 98.79 N +ATOM 7702 NH2 ARG 508 -53.234 0.729 13.708 1.00 98.79 N +ATOM 7703 CZ ARG 508 -53.935 1.289 12.715 1.00 98.79 C +ATOM 7717 N PHE 509 -57.459 4.059 6.852 1.00 98.88 N +ATOM 7718 CA PHE 509 -57.968 4.685 5.628 1.00 98.88 C +ATOM 7719 C PHE 509 -56.974 5.728 5.091 1.00 98.88 C +ATOM 7720 O PHE 509 -56.167 6.257 5.856 1.00 98.88 O +ATOM 7721 CB PHE 509 -59.339 5.331 5.905 1.00 98.88 C +ATOM 7722 CG PHE 509 -60.419 4.360 6.350 1.00 98.88 C +ATOM 7723 CD1 PHE 509 -60.965 3.441 5.430 1.00 98.88 C +ATOM 7724 CD2 PHE 509 -60.802 4.283 7.706 1.00 98.88 C +ATOM 7725 CE1 PHE 509 -61.895 2.501 5.854 1.00 98.88 C +ATOM 7726 CE2 PHE 509 -61.746 3.347 8.107 1.00 98.88 C +ATOM 7727 CZ PHE 509 -62.287 2.458 7.186 1.00 98.88 C +ATOM 7737 N SER 510 -57.069 6.010 3.783 1.00 98.85 N +ATOM 7738 CA SER 510 -56.239 6.983 3.077 1.00 98.85 C +ATOM 7739 C SER 510 -57.098 7.665 2.005 1.00 98.85 C +ATOM 7740 O SER 510 -57.272 7.113 0.921 1.00 98.85 O +ATOM 7741 CB SER 510 -54.992 6.276 2.499 1.00 98.85 C +ATOM 7742 OG SER 510 -54.160 7.169 1.780 1.00 98.85 O +ATOM 7748 N LEU 511 -57.629 8.848 2.340 1.00 98.85 N +ATOM 7749 CA LEU 511 -58.451 9.665 1.449 1.00 98.85 C +ATOM 7750 C LEU 511 -57.587 10.822 0.935 1.00 98.85 C +ATOM 7751 O LEU 511 -57.004 11.527 1.755 1.00 98.85 O +ATOM 7752 CB LEU 511 -59.673 10.192 2.234 1.00 98.85 C +ATOM 7753 CG LEU 511 -60.601 9.088 2.794 1.00 98.85 C +ATOM 7754 CD1 LEU 511 -61.722 9.694 3.663 1.00 98.85 C +ATOM 7755 CD2 LEU 511 -61.151 8.160 1.691 1.00 98.85 C +ATOM 7767 N GLY 512 -57.511 10.986 -0.394 1.00 98.82 N +ATOM 7768 CA GLY 512 -56.698 12.010 -1.043 1.00 98.82 C +ATOM 7769 C GLY 512 -57.488 12.654 -2.187 1.00 98.82 C +ATOM 7770 O GLY 512 -58.318 12.009 -2.828 1.00 98.82 O +ATOM 7774 N LEU 513 -57.163 13.926 -2.468 1.00 98.91 N +ATOM 7775 CA LEU 513 -57.675 14.712 -3.588 1.00 98.91 C +ATOM 7776 C LEU 513 -56.670 15.822 -3.923 1.00 98.91 C +ATOM 7777 O LEU 513 -56.010 16.349 -3.030 1.00 98.91 O +ATOM 7778 CB LEU 513 -59.088 15.260 -3.264 1.00 98.91 C +ATOM 7779 CG LEU 513 -59.778 16.052 -4.405 1.00 98.91 C +ATOM 7780 CD1 LEU 513 -59.935 15.213 -5.694 1.00 98.91 C +ATOM 7781 CD2 LEU 513 -61.120 16.648 -3.930 1.00 98.91 C +ATOM 7793 N ARG 514 -56.590 16.170 -5.213 1.00 98.89 N +ATOM 7794 CA ARG 514 -55.701 17.195 -5.743 1.00 98.89 C +ATOM 7795 C ARG 514 -56.312 17.802 -7.008 1.00 98.89 C +ATOM 7796 O ARG 514 -57.014 17.104 -7.737 1.00 98.89 O +ATOM 7797 CB ARG 514 -54.312 16.558 -5.981 1.00 98.89 C +ATOM 7798 CG ARG 514 -53.292 17.400 -6.770 1.00 98.89 C +ATOM 7799 CD ARG 514 -52.030 16.601 -7.068 1.00 98.89 C +ATOM 7800 NE ARG 514 -51.021 17.386 -7.777 1.00 98.89 N +ATOM 7801 NH1 ARG 514 -49.569 17.821 -5.993 1.00 98.89 N +ATOM 7802 NH2 ARG 514 -49.113 18.615 -8.109 1.00 98.89 N +ATOM 7803 CZ ARG 514 -49.906 17.934 -7.281 1.00 98.89 C +ATOM 7817 N GLN 515 -55.970 19.076 -7.250 1.00 98.90 N +ATOM 7818 CA GLN 515 -56.220 19.798 -8.491 1.00 98.90 C +ATOM 7819 C GLN 515 -54.889 20.388 -8.971 1.00 98.90 C +ATOM 7820 O GLN 515 -54.244 21.112 -8.210 1.00 98.90 O +ATOM 7821 CB GLN 515 -57.256 20.909 -8.231 1.00 98.90 C +ATOM 7822 CG GLN 515 -57.652 21.713 -9.491 1.00 98.90 C +ATOM 7823 CD GLN 515 -58.724 22.770 -9.214 1.00 98.90 C +ATOM 7824 NE2 GLN 515 -59.277 23.365 -10.271 1.00 98.90 N +ATOM 7825 OE1 GLN 515 -59.049 23.064 -8.065 1.00 98.90 O +ATOM 7834 N ASP 516 -54.540 20.103 -10.234 1.00 98.91 N +ATOM 7835 CA ASP 516 -53.426 20.724 -10.950 1.00 98.91 C +ATOM 7836 C ASP 516 -53.949 21.696 -12.010 1.00 98.91 C +ATOM 7837 O ASP 516 -54.978 21.436 -12.631 1.00 98.91 O +ATOM 7838 CB ASP 516 -52.452 19.729 -11.624 1.00 98.91 C +ATOM 7839 CG ASP 516 -51.837 18.690 -10.689 1.00 98.91 C +ATOM 7840 OD1 ASP 516 -50.601 18.747 -10.515 1.00 98.91 O +ATOM 7841 OD2 ASP 516 -52.584 17.813 -10.204 1.00 98.91 O +ATOM 7846 N TRP 517 -53.164 22.760 -12.220 1.00 98.85 N +ATOM 7847 CA TRP 517 -53.227 23.684 -13.345 1.00 98.85 C +ATOM 7848 C TRP 517 -51.893 23.530 -14.078 1.00 98.85 C +ATOM 7849 O TRP 517 -50.861 23.900 -13.516 1.00 98.85 O +ATOM 7850 CB TRP 517 -53.382 25.133 -12.839 1.00 98.85 C +ATOM 7851 CG TRP 517 -54.628 25.455 -12.074 1.00 98.85 C +ATOM 7852 CD1 TRP 517 -55.735 26.025 -12.598 1.00 98.85 C +ATOM 7853 CD2 TRP 517 -54.936 25.197 -10.669 1.00 98.85 C +ATOM 7854 CE2 TRP 517 -56.256 25.673 -10.404 1.00 98.85 C +ATOM 7855 CE3 TRP 517 -54.237 24.611 -9.588 1.00 98.85 C +ATOM 7856 NE1 TRP 517 -56.696 26.156 -11.618 1.00 98.85 N +ATOM 7857 CH2 TRP 517 -56.120 24.993 -8.079 1.00 98.85 C +ATOM 7858 CZ2 TRP 517 -56.842 25.589 -9.129 1.00 98.85 C +ATOM 7859 CZ3 TRP 517 -54.822 24.500 -8.311 1.00 98.85 C +ATOM 7870 N VAL 518 -51.933 22.963 -15.291 1.00 98.67 N +ATOM 7871 CA VAL 518 -50.746 22.673 -16.089 1.00 98.67 C +ATOM 7872 C VAL 518 -50.782 23.478 -17.393 1.00 98.67 C +ATOM 7873 O VAL 518 -51.745 23.374 -18.153 1.00 98.67 O +ATOM 7874 CB VAL 518 -50.634 21.156 -16.411 1.00 98.67 C +ATOM 7875 CG1 VAL 518 -49.575 20.790 -17.474 1.00 98.67 C +ATOM 7876 CG2 VAL 518 -50.357 20.362 -15.126 1.00 98.67 C +ATOM 7886 N SER 519 -49.693 24.223 -17.622 1.00 98.18 N +ATOM 7887 CA SER 519 -49.392 24.950 -18.845 1.00 98.18 C +ATOM 7888 C SER 519 -48.212 24.250 -19.536 1.00 98.18 C +ATOM 7889 O SER 519 -47.227 23.922 -18.873 1.00 98.18 O +ATOM 7890 CB SER 519 -49.047 26.406 -18.474 1.00 98.18 C +ATOM 7891 OG SER 519 -48.819 27.196 -19.624 1.00 98.18 O +ATOM 7897 N VAL 520 -48.327 24.046 -20.854 1.00 97.25 N +ATOM 7898 CA VAL 520 -47.267 23.499 -21.697 1.00 97.25 C +ATOM 7899 C VAL 520 -47.205 24.341 -22.977 1.00 97.25 C +ATOM 7900 O VAL 520 -48.237 24.555 -23.614 1.00 97.25 O +ATOM 7901 CB VAL 520 -47.512 22.005 -22.071 1.00 97.25 C +ATOM 7902 CG1 VAL 520 -46.551 21.449 -23.147 1.00 97.25 C +ATOM 7903 CG2 VAL 520 -47.448 21.098 -20.829 1.00 97.25 C +ATOM 7913 N THR 521 -45.989 24.779 -23.332 1.00 96.95 N +ATOM 7914 CA THR 521 -45.715 25.516 -24.561 1.00 96.95 C +ATOM 7915 C THR 521 -44.476 24.932 -25.257 1.00 96.95 C +ATOM 7916 O THR 521 -43.609 24.359 -24.595 1.00 96.95 O +ATOM 7917 CB THR 521 -45.525 27.050 -24.326 1.00 96.95 C +ATOM 7918 CG2 THR 521 -46.453 27.661 -23.266 1.00 96.95 C +ATOM 7919 OG1 THR 521 -44.194 27.473 -24.083 1.00 96.95 O +ATOM 7927 N ASP 522 -44.413 25.111 -26.582 1.00 96.57 N +ATOM 7928 CA ASP 522 -43.274 24.701 -27.388 1.00 96.57 C +ATOM 7929 C ASP 522 -43.157 25.684 -28.557 1.00 96.57 C +ATOM 7930 O ASP 522 -43.923 25.598 -29.517 1.00 96.57 O +ATOM 7931 CB ASP 522 -43.363 23.216 -27.823 1.00 96.57 C +ATOM 7932 CG ASP 522 -42.053 22.642 -28.377 1.00 96.57 C +ATOM 7933 OD1 ASP 522 -41.072 23.408 -28.510 1.00 96.57 O +ATOM 7934 OD2 ASP 522 -42.043 21.421 -28.642 1.00 96.57 O +ATOM 7939 N LYS 523 -42.186 26.599 -28.429 1.00 97.54 N +ATOM 7940 CA LYS 523 -41.804 27.574 -29.439 1.00 97.54 C +ATOM 7941 C LYS 523 -40.745 26.952 -30.358 1.00 97.54 C +ATOM 7942 O LYS 523 -39.588 26.860 -29.953 1.00 97.54 O +ATOM 7943 CB LYS 523 -41.291 28.840 -28.709 1.00 97.54 C +ATOM 7944 CG LYS 523 -40.694 29.949 -29.601 1.00 97.54 C +ATOM 7945 CD LYS 523 -41.718 30.604 -30.538 1.00 97.54 C +ATOM 7946 CE LYS 523 -41.079 31.633 -31.479 1.00 97.54 C +ATOM 7947 NZ LYS 523 -42.097 32.323 -32.287 1.00 97.54 N +ATOM 7961 N ASN 524 -41.143 26.577 -31.584 1.00 96.89 N +ATOM 7962 CA ASN 524 -40.211 26.220 -32.654 1.00 96.89 C +ATOM 7963 C ASN 524 -39.546 27.512 -33.171 1.00 96.89 C +ATOM 7964 O ASN 524 -40.238 28.389 -33.687 1.00 96.89 O +ATOM 7965 CB ASN 524 -40.954 25.447 -33.770 1.00 96.89 C +ATOM 7966 CG ASN 524 -40.007 24.756 -34.763 1.00 96.89 C +ATOM 7967 ND2 ASN 524 -40.113 23.435 -34.912 1.00 96.89 N +ATOM 7968 OD1 ASN 524 -39.189 25.409 -35.403 1.00 96.89 O +ATOM 7975 N ARG 525 -38.220 27.602 -32.998 1.00 98.18 N +ATOM 7976 CA ARG 525 -37.402 28.742 -33.409 1.00 98.18 C +ATOM 7977 C ARG 525 -36.942 28.657 -34.875 1.00 98.18 C +ATOM 7978 O ARG 525 -36.629 29.703 -35.442 1.00 98.18 O +ATOM 7979 CB ARG 525 -36.191 28.866 -32.464 1.00 98.18 C +ATOM 7980 CG ARG 525 -36.572 29.257 -31.023 1.00 98.18 C +ATOM 7981 CD ARG 525 -35.350 29.388 -30.102 1.00 98.18 C +ATOM 7982 NE ARG 525 -34.810 28.071 -29.734 1.00 98.18 N +ATOM 7983 NH1 ARG 525 -32.598 28.294 -30.527 1.00 98.18 N +ATOM 7984 NH2 ARG 525 -33.285 26.373 -29.477 1.00 98.18 N +ATOM 7985 CZ ARG 525 -33.567 27.598 -29.918 1.00 98.18 C +ATOM 7999 N SER 526 -36.917 27.449 -35.466 1.00 96.89 N +ATOM 8000 CA SER 526 -36.565 27.233 -36.874 1.00 96.89 C +ATOM 8001 C SER 526 -37.645 27.733 -37.852 1.00 96.89 C +ATOM 8002 O SER 526 -37.294 28.322 -38.874 1.00 96.89 O +ATOM 8003 CB SER 526 -36.243 25.743 -37.122 1.00 96.89 C +ATOM 8004 OG SER 526 -34.910 25.460 -36.755 1.00 96.89 O +ATOM 8010 N THR 527 -38.924 27.500 -37.516 1.00 95.82 N +ATOM 8011 CA THR 527 -40.086 27.877 -38.327 1.00 95.82 C +ATOM 8012 C THR 527 -40.790 29.147 -37.802 1.00 95.82 C +ATOM 8013 O THR 527 -41.502 29.789 -38.574 1.00 95.82 O +ATOM 8014 CB THR 527 -41.134 26.728 -38.353 1.00 95.82 C +ATOM 8015 CG2 THR 527 -40.562 25.371 -38.793 1.00 95.82 C +ATOM 8016 OG1 THR 527 -41.810 26.572 -37.118 1.00 95.82 O +ATOM 8024 N GLY 528 -40.588 29.488 -36.517 1.00 94.87 N +ATOM 8025 CA GLY 528 -41.201 30.641 -35.861 1.00 94.87 C +ATOM 8026 C GLY 528 -42.613 30.348 -35.317 1.00 94.87 C +ATOM 8027 O GLY 528 -43.224 31.261 -34.762 1.00 94.87 O +ATOM 8031 N SER 529 -43.132 29.112 -35.444 1.00 94.97 N +ATOM 8032 CA SER 529 -44.423 28.690 -34.886 1.00 94.97 C +ATOM 8033 C SER 529 -44.353 28.471 -33.360 1.00 94.97 C +ATOM 8034 O SER 529 -43.263 28.282 -32.821 1.00 94.97 O +ATOM 8035 CB SER 529 -44.916 27.435 -35.643 1.00 94.97 C +ATOM 8036 OG SER 529 -44.262 26.244 -35.244 1.00 94.97 O +ATOM 8042 N LYS 530 -45.521 28.478 -32.698 1.00 95.45 N +ATOM 8043 CA LYS 530 -45.635 28.205 -31.267 1.00 95.45 C +ATOM 8044 C LYS 530 -46.917 27.408 -30.982 1.00 95.45 C +ATOM 8045 O LYS 530 -48.006 27.863 -31.334 1.00 95.45 O +ATOM 8046 CB LYS 530 -45.583 29.529 -30.463 1.00 95.45 C +ATOM 8047 CG LYS 530 -45.555 29.323 -28.934 1.00 95.45 C +ATOM 8048 CD LYS 530 -45.757 30.604 -28.115 1.00 95.45 C +ATOM 8049 CE LYS 530 -45.689 30.319 -26.605 1.00 95.45 C +ATOM 8050 NZ LYS 530 -46.186 31.449 -25.803 1.00 95.45 N +ATOM 8064 N ALA 531 -46.753 26.277 -30.278 1.00 95.04 N +ATOM 8065 CA ALA 531 -47.821 25.570 -29.570 1.00 95.04 C +ATOM 8066 C ALA 531 -47.923 26.131 -28.143 1.00 95.04 C +ATOM 8067 O ALA 531 -46.889 26.433 -27.544 1.00 95.04 O +ATOM 8068 CB ALA 531 -47.485 24.074 -29.535 1.00 95.04 C +ATOM 8074 N ASP 532 -49.153 26.277 -27.629 1.00 94.81 N +ATOM 8075 CA ASP 532 -49.421 26.947 -26.355 1.00 94.81 C +ATOM 8076 C ASP 532 -50.784 26.449 -25.850 1.00 94.81 C +ATOM 8077 O ASP 532 -51.800 26.716 -26.494 1.00 94.81 O +ATOM 8078 CB ASP 532 -49.362 28.492 -26.522 1.00 94.81 C +ATOM 8079 CG ASP 532 -49.257 29.306 -25.227 1.00 94.81 C +ATOM 8080 OD1 ASP 532 -49.541 28.756 -24.142 1.00 94.81 O +ATOM 8081 OD2 ASP 532 -48.906 30.500 -25.357 1.00 94.81 O +ATOM 8086 N ASP 533 -50.765 25.716 -24.725 1.00 94.43 N +ATOM 8087 CA ASP 533 -51.932 25.086 -24.102 1.00 94.43 C +ATOM 8088 C ASP 533 -51.916 25.270 -22.584 1.00 94.43 C +ATOM 8089 O ASP 533 -50.848 25.269 -21.972 1.00 94.43 O +ATOM 8090 CB ASP 533 -52.060 23.571 -24.387 1.00 94.43 C +ATOM 8091 CG ASP 533 -52.091 23.177 -25.859 1.00 94.43 C +ATOM 8092 OD1 ASP 533 -53.181 22.751 -26.297 1.00 94.43 O +ATOM 8093 OD2 ASP 533 -51.023 23.252 -26.502 1.00 94.43 O +ATOM 8098 N ASP 534 -53.131 25.330 -22.020 1.00 96.92 N +ATOM 8099 CA ASP 534 -53.428 25.279 -20.590 1.00 96.92 C +ATOM 8100 C ASP 534 -54.592 24.299 -20.380 1.00 96.92 C +ATOM 8101 O ASP 534 -55.527 24.281 -21.182 1.00 96.92 O +ATOM 8102 CB ASP 534 -53.785 26.656 -19.977 1.00 96.92 C +ATOM 8103 CG ASP 534 -52.801 27.781 -20.306 1.00 96.92 C +ATOM 8104 OD1 ASP 534 -51.626 27.647 -19.900 1.00 96.92 O +ATOM 8105 OD2 ASP 534 -53.252 28.782 -20.904 1.00 96.92 O +ATOM 8110 N TRP 535 -54.527 23.524 -19.288 1.00 97.62 N +ATOM 8111 CA TRP 535 -55.575 22.592 -18.874 1.00 97.62 C +ATOM 8112 C TRP 535 -55.531 22.369 -17.357 1.00 97.62 C +ATOM 8113 O TRP 535 -54.498 22.597 -16.727 1.00 97.62 O +ATOM 8114 CB TRP 535 -55.476 21.259 -19.659 1.00 97.62 C +ATOM 8115 CG TRP 535 -54.175 20.504 -19.612 1.00 97.62 C +ATOM 8116 CD1 TRP 535 -53.687 19.833 -18.543 1.00 97.62 C +ATOM 8117 CD2 TRP 535 -53.182 20.335 -20.672 1.00 97.62 C +ATOM 8118 CE2 TRP 535 -52.102 19.552 -20.160 1.00 97.62 C +ATOM 8119 CE3 TRP 535 -53.083 20.756 -22.019 1.00 97.62 C +ATOM 8120 NE1 TRP 535 -52.466 19.275 -18.859 1.00 97.62 N +ATOM 8121 CH2 TRP 535 -50.918 19.644 -22.276 1.00 97.62 C +ATOM 8122 CZ2 TRP 535 -50.981 19.215 -20.938 1.00 97.62 C +ATOM 8123 CZ3 TRP 535 -51.972 20.406 -22.816 1.00 97.62 C +ATOM 8134 N GLU 536 -56.658 21.882 -16.817 1.00 98.44 N +ATOM 8135 CA GLU 536 -56.796 21.464 -15.425 1.00 98.44 C +ATOM 8136 C GLU 536 -57.109 19.965 -15.360 1.00 98.44 C +ATOM 8137 O GLU 536 -57.805 19.450 -16.237 1.00 98.44 O +ATOM 8138 CB GLU 536 -57.922 22.264 -14.740 1.00 98.44 C +ATOM 8139 CG GLU 536 -57.643 23.777 -14.658 1.00 98.44 C +ATOM 8140 CD GLU 536 -58.744 24.566 -13.941 1.00 98.44 C +ATOM 8141 OE1 GLU 536 -58.785 25.797 -14.157 1.00 98.44 O +ATOM 8142 OE2 GLU 536 -59.515 23.945 -13.176 1.00 98.44 O +ATOM 8149 N LYS 537 -56.627 19.310 -14.292 1.00 98.54 N +ATOM 8150 CA LYS 537 -56.937 17.919 -13.969 1.00 98.54 C +ATOM 8151 C LYS 537 -57.087 17.742 -12.458 1.00 98.54 C +ATOM 8152 O LYS 537 -56.196 18.138 -11.706 1.00 98.54 O +ATOM 8153 CB LYS 537 -55.853 16.958 -14.521 1.00 98.54 C +ATOM 8154 CG LYS 537 -55.899 16.699 -16.039 1.00 98.54 C +ATOM 8155 CD LYS 537 -57.220 16.076 -16.529 1.00 98.54 C +ATOM 8156 CE LYS 537 -57.176 15.707 -18.015 1.00 98.54 C +ATOM 8157 NZ LYS 537 -58.494 15.284 -18.512 1.00 98.54 N +ATOM 8171 N PHE 538 -58.182 17.072 -12.070 1.00 98.72 N +ATOM 8172 CA PHE 538 -58.369 16.490 -10.745 1.00 98.72 C +ATOM 8173 C PHE 538 -57.889 15.033 -10.742 1.00 98.72 C +ATOM 8174 O PHE 538 -58.154 14.309 -11.703 1.00 98.72 O +ATOM 8175 CB PHE 538 -59.854 16.558 -10.332 1.00 98.72 C +ATOM 8176 CG PHE 538 -60.326 17.900 -9.804 1.00 98.72 C +ATOM 8177 CD1 PHE 538 -60.255 18.177 -8.421 1.00 98.72 C +ATOM 8178 CD2 PHE 538 -60.720 18.925 -10.689 1.00 98.72 C +ATOM 8179 CE1 PHE 538 -60.668 19.411 -7.940 1.00 98.72 C +ATOM 8180 CE2 PHE 538 -61.120 20.156 -10.188 1.00 98.72 C +ATOM 8181 CZ PHE 538 -61.111 20.391 -8.819 1.00 98.72 C +ATOM 8191 N THR 539 -57.233 14.626 -9.646 1.00 98.84 N +ATOM 8192 CA THR 539 -56.859 13.236 -9.380 1.00 98.84 C +ATOM 8193 C THR 539 -57.036 12.963 -7.878 1.00 98.84 C +ATOM 8194 O THR 539 -56.582 13.752 -7.047 1.00 98.84 O +ATOM 8195 CB THR 539 -55.398 12.907 -9.797 1.00 98.84 C +ATOM 8196 CG2 THR 539 -55.167 13.017 -11.312 1.00 98.84 C +ATOM 8197 OG1 THR 539 -54.440 13.709 -9.128 1.00 98.84 O +ATOM 8205 N GLY 540 -57.726 11.854 -7.574 1.00 98.80 N +ATOM 8206 CA GLY 540 -58.042 11.427 -6.217 1.00 98.80 C +ATOM 8207 C GLY 540 -57.489 10.027 -5.947 1.00 98.80 C +ATOM 8208 O GLY 540 -56.953 9.355 -6.830 1.00 98.80 O +ATOM 8212 N ARG 541 -57.655 9.598 -4.688 1.00 98.87 N +ATOM 8213 CA ARG 541 -57.322 8.267 -4.193 1.00 98.87 C +ATOM 8214 C ARG 541 -58.192 7.956 -2.971 1.00 98.87 C +ATOM 8215 O ARG 541 -58.380 8.822 -2.117 1.00 98.87 O +ATOM 8216 CB ARG 541 -55.805 8.164 -3.909 1.00 98.87 C +ATOM 8217 CG ARG 541 -55.342 6.875 -3.192 1.00 98.87 C +ATOM 8218 CD ARG 541 -53.820 6.771 -3.054 1.00 98.87 C +ATOM 8219 NE ARG 541 -53.296 7.780 -2.127 1.00 98.87 N +ATOM 8220 NH1 ARG 541 -51.086 7.744 -2.905 1.00 98.87 N +ATOM 8221 NH2 ARG 541 -51.716 9.179 -1.205 1.00 98.87 N +ATOM 8222 CZ ARG 541 -52.032 8.226 -2.086 1.00 98.87 C +ATOM 8236 N ILE 542 -58.687 6.713 -2.911 1.00 98.90 N +ATOM 8237 CA ILE 542 -59.464 6.173 -1.801 1.00 98.90 C +ATOM 8238 C ILE 542 -58.875 4.791 -1.479 1.00 98.90 C +ATOM 8239 O ILE 542 -59.119 3.837 -2.217 1.00 98.90 O +ATOM 8240 CB ILE 542 -60.981 6.037 -2.147 1.00 98.90 C +ATOM 8241 CG1 ILE 542 -61.613 7.415 -2.459 1.00 98.90 C +ATOM 8242 CG2 ILE 542 -61.794 5.320 -1.041 1.00 98.90 C +ATOM 8243 CD1 ILE 542 -63.050 7.343 -2.996 1.00 98.90 C +ATOM 8255 N GLY 543 -58.095 4.733 -0.391 1.00 98.87 N +ATOM 8256 CA GLY 543 -57.477 3.523 0.135 1.00 98.87 C +ATOM 8257 C GLY 543 -58.168 3.132 1.446 1.00 98.87 C +ATOM 8258 O GLY 543 -58.664 3.987 2.184 1.00 98.87 O +ATOM 8262 N ALA 544 -58.150 1.826 1.743 1.00 98.93 N +ATOM 8263 CA ALA 544 -58.673 1.228 2.968 1.00 98.93 C +ATOM 8264 C ALA 544 -57.909 -0.068 3.249 1.00 98.93 C +ATOM 8265 O ALA 544 -57.728 -0.873 2.338 1.00 98.93 O +ATOM 8266 CB ALA 544 -60.182 0.966 2.825 1.00 98.93 C +ATOM 8272 N LEU 545 -57.488 -0.243 4.507 1.00 98.91 N +ATOM 8273 CA LEU 545 -56.713 -1.381 4.995 1.00 98.91 C +ATOM 8274 C LEU 545 -57.224 -1.748 6.393 1.00 98.91 C +ATOM 8275 O LEU 545 -57.639 -0.855 7.129 1.00 98.91 O +ATOM 8276 CB LEU 545 -55.209 -0.998 4.943 1.00 98.91 C +ATOM 8277 CG LEU 545 -54.183 -2.018 5.508 1.00 98.91 C +ATOM 8278 CD1 LEU 545 -52.836 -1.963 4.752 1.00 98.91 C +ATOM 8279 CD2 LEU 545 -53.972 -1.871 7.031 1.00 98.91 C +ATOM 8291 N TYR 546 -57.154 -3.041 6.743 1.00 98.87 N +ATOM 8292 CA TYR 546 -57.465 -3.540 8.081 1.00 98.87 C +ATOM 8293 C TYR 546 -56.260 -4.326 8.603 1.00 98.87 C +ATOM 8294 O TYR 546 -55.959 -5.391 8.068 1.00 98.87 O +ATOM 8295 CB TYR 546 -58.740 -4.405 8.040 1.00 98.87 C +ATOM 8296 CG TYR 546 -59.219 -4.854 9.410 1.00 98.87 C +ATOM 8297 CD1 TYR 546 -58.818 -6.093 9.950 1.00 98.87 C +ATOM 8298 CD2 TYR 546 -60.054 -4.007 10.164 1.00 98.87 C +ATOM 8299 CE1 TYR 546 -59.254 -6.479 11.232 1.00 98.87 C +ATOM 8300 CE2 TYR 546 -60.515 -4.403 11.432 1.00 98.87 C +ATOM 8301 OH TYR 546 -60.532 -6.016 13.212 1.00 98.87 O +ATOM 8302 CZ TYR 546 -60.109 -5.638 11.971 1.00 98.87 C +ATOM 8312 N LEU 547 -55.607 -3.787 9.641 1.00 98.77 N +ATOM 8313 CA LEU 547 -54.452 -4.384 10.302 1.00 98.77 C +ATOM 8314 C LEU 547 -54.922 -5.340 11.412 1.00 98.77 C +ATOM 8315 O LEU 547 -55.422 -4.875 12.432 1.00 98.77 O +ATOM 8316 CB LEU 547 -53.571 -3.233 10.849 1.00 98.77 C +ATOM 8317 CG LEU 547 -52.308 -3.663 11.632 1.00 98.77 C +ATOM 8318 CD1 LEU 547 -51.367 -4.532 10.777 1.00 98.77 C +ATOM 8319 CD2 LEU 547 -51.580 -2.434 12.215 1.00 98.77 C +ATOM 8331 N PHE 548 -54.716 -6.651 11.221 1.00 98.64 N +ATOM 8332 CA PHE 548 -54.882 -7.664 12.266 1.00 98.64 C +ATOM 8333 C PHE 548 -53.739 -7.616 13.296 1.00 98.64 C +ATOM 8334 O PHE 548 -52.638 -7.162 12.979 1.00 98.64 O +ATOM 8335 CB PHE 548 -54.951 -9.067 11.635 1.00 98.64 C +ATOM 8336 CG PHE 548 -56.225 -9.391 10.879 1.00 98.64 C +ATOM 8337 CD1 PHE 548 -57.366 -9.834 11.581 1.00 98.64 C +ATOM 8338 CD2 PHE 548 -56.327 -9.133 9.496 1.00 98.64 C +ATOM 8339 CE1 PHE 548 -58.549 -10.081 10.898 1.00 98.64 C +ATOM 8340 CE2 PHE 548 -57.519 -9.389 8.834 1.00 98.64 C +ATOM 8341 CZ PHE 548 -58.624 -9.865 9.528 1.00 98.64 C +ATOM 8351 N ASP 549 -54.022 -8.134 14.503 1.00 95.70 N +ATOM 8352 CA ASP 549 -53.078 -8.277 15.621 1.00 95.70 C +ATOM 8353 C ASP 549 -51.884 -9.206 15.317 1.00 95.70 C +ATOM 8354 O ASP 549 -50.784 -8.939 15.801 1.00 95.70 O +ATOM 8355 CB ASP 549 -53.754 -8.691 16.958 1.00 95.70 C +ATOM 8356 CG ASP 549 -54.805 -9.813 16.900 1.00 95.70 C +ATOM 8357 OD1 ASP 549 -54.931 -10.475 15.845 1.00 95.70 O +ATOM 8358 OD2 ASP 549 -55.453 -10.012 17.950 1.00 95.70 O +ATOM 8363 N ASN 550 -52.113 -10.249 14.498 1.00 97.47 N +ATOM 8364 CA ASN 550 -51.089 -11.182 14.009 1.00 97.47 C +ATOM 8365 C ASN 550 -50.155 -10.588 12.928 1.00 97.47 C +ATOM 8366 O ASN 550 -49.236 -11.284 12.497 1.00 97.47 O +ATOM 8367 CB ASN 550 -51.748 -12.516 13.564 1.00 97.47 C +ATOM 8368 CG ASN 550 -52.535 -12.493 12.243 1.00 97.47 C +ATOM 8369 ND2 ASN 550 -52.811 -13.673 11.687 1.00 97.47 N +ATOM 8370 OD1 ASN 550 -52.898 -11.438 11.730 1.00 97.47 O +ATOM 8377 N GLY 551 -50.401 -9.333 12.516 1.00 97.95 N +ATOM 8378 CA GLY 551 -49.578 -8.592 11.568 1.00 97.95 C +ATOM 8379 C GLY 551 -50.044 -8.752 10.115 1.00 97.95 C +ATOM 8380 O GLY 551 -49.389 -8.209 9.229 1.00 97.95 O +ATOM 8384 N LEU 552 -51.156 -9.465 9.855 1.00 98.72 N +ATOM 8385 CA LEU 552 -51.790 -9.555 8.537 1.00 98.72 C +ATOM 8386 C LEU 552 -52.519 -8.235 8.208 1.00 98.72 C +ATOM 8387 O LEU 552 -53.064 -7.608 9.114 1.00 98.72 O +ATOM 8388 CB LEU 552 -52.747 -10.770 8.538 1.00 98.72 C +ATOM 8389 CG LEU 552 -53.199 -11.242 7.141 1.00 98.72 C +ATOM 8390 CD1 LEU 552 -52.032 -11.846 6.330 1.00 98.72 C +ATOM 8391 CD2 LEU 552 -54.400 -12.206 7.234 1.00 98.72 C +ATOM 8403 N ALA 553 -52.508 -7.826 6.932 1.00 98.87 N +ATOM 8404 CA ALA 553 -53.004 -6.521 6.500 1.00 98.87 C +ATOM 8405 C ALA 553 -53.572 -6.550 5.068 1.00 98.87 C +ATOM 8406 O ALA 553 -52.918 -6.033 4.160 1.00 98.87 O +ATOM 8407 CB ALA 553 -51.906 -5.462 6.696 1.00 98.87 C +ATOM 8413 N PRO 554 -54.785 -7.128 4.877 1.00 98.92 N +ATOM 8414 CA PRO 554 -55.550 -6.967 3.624 1.00 98.92 C +ATOM 8415 C PRO 554 -55.970 -5.511 3.369 1.00 98.92 C +ATOM 8416 O PRO 554 -56.355 -4.816 4.311 1.00 98.92 O +ATOM 8417 CB PRO 554 -56.774 -7.875 3.813 1.00 98.92 C +ATOM 8418 CG PRO 554 -56.968 -7.948 5.314 1.00 98.92 C +ATOM 8419 CD PRO 554 -55.539 -7.935 5.841 1.00 98.92 C +ATOM 8427 N TYR 555 -55.883 -5.091 2.098 1.00 98.92 N +ATOM 8428 CA TYR 555 -56.224 -3.740 1.671 1.00 98.92 C +ATOM 8429 C TYR 555 -56.843 -3.724 0.266 1.00 98.92 C +ATOM 8430 O TYR 555 -56.650 -4.649 -0.523 1.00 98.92 O +ATOM 8431 CB TYR 555 -54.977 -2.829 1.788 1.00 98.92 C +ATOM 8432 CG TYR 555 -53.916 -2.966 0.709 1.00 98.92 C +ATOM 8433 CD1 TYR 555 -52.858 -3.886 0.856 1.00 98.92 C +ATOM 8434 CD2 TYR 555 -53.985 -2.159 -0.447 1.00 98.92 C +ATOM 8435 CE1 TYR 555 -51.880 -4.002 -0.152 1.00 98.92 C +ATOM 8436 CE2 TYR 555 -53.010 -2.276 -1.452 1.00 98.92 C +ATOM 8437 OH TYR 555 -51.013 -3.309 -2.283 1.00 98.92 O +ATOM 8438 CZ TYR 555 -51.956 -3.196 -1.306 1.00 98.92 C +ATOM 8448 N VAL 556 -57.544 -2.617 -0.004 1.00 98.92 N +ATOM 8449 CA VAL 556 -58.080 -2.214 -1.298 1.00 98.92 C +ATOM 8450 C VAL 556 -57.726 -0.734 -1.530 1.00 98.92 C +ATOM 8451 O VAL 556 -57.599 0.023 -0.566 1.00 98.92 O +ATOM 8452 CB VAL 556 -59.626 -2.409 -1.354 1.00 98.92 C +ATOM 8453 CG1 VAL 556 -60.403 -1.639 -0.264 1.00 98.92 C +ATOM 8454 CG2 VAL 556 -60.228 -2.088 -2.737 1.00 98.92 C +ATOM 8464 N SER 557 -57.577 -0.345 -2.804 1.00 98.86 N +ATOM 8465 CA SER 557 -57.298 1.031 -3.193 1.00 98.86 C +ATOM 8466 C SER 557 -57.774 1.306 -4.622 1.00 98.86 C +ATOM 8467 O SER 557 -57.494 0.517 -5.523 1.00 98.86 O +ATOM 8468 CB SER 557 -55.796 1.331 -3.003 1.00 98.86 C +ATOM 8469 OG SER 557 -55.458 2.658 -3.356 1.00 98.86 O +ATOM 8475 N TYR 558 -58.422 2.467 -4.790 1.00 98.92 N +ATOM 8476 CA TYR 558 -58.588 3.151 -6.067 1.00 98.92 C +ATOM 8477 C TYR 558 -57.638 4.356 -6.070 1.00 98.92 C +ATOM 8478 O TYR 558 -57.566 5.043 -5.053 1.00 98.92 O +ATOM 8479 CB TYR 558 -60.055 3.597 -6.239 1.00 98.92 C +ATOM 8480 CG TYR 558 -60.330 4.347 -7.533 1.00 98.92 C +ATOM 8481 CD1 TYR 558 -60.499 5.748 -7.533 1.00 98.92 C +ATOM 8482 CD2 TYR 558 -60.376 3.642 -8.752 1.00 98.92 C +ATOM 8483 CE1 TYR 558 -60.699 6.434 -8.748 1.00 98.92 C +ATOM 8484 CE2 TYR 558 -60.570 4.326 -9.966 1.00 98.92 C +ATOM 8485 OH TYR 558 -60.895 6.385 -11.149 1.00 98.92 O +ATOM 8486 CZ TYR 558 -60.726 5.725 -9.966 1.00 98.92 C +ATOM 8496 N SER 559 -56.952 4.615 -7.195 1.00 98.79 N +ATOM 8497 CA SER 559 -56.034 5.750 -7.324 1.00 98.79 C +ATOM 8498 C SER 559 -55.902 6.180 -8.793 1.00 98.79 C +ATOM 8499 O SER 559 -56.010 5.338 -9.686 1.00 98.79 O +ATOM 8500 CB SER 559 -54.680 5.399 -6.670 1.00 98.79 C +ATOM 8501 OG SER 559 -53.853 6.538 -6.557 1.00 98.79 O +ATOM 8507 N GLU 560 -55.676 7.489 -9.003 1.00 98.92 N +ATOM 8508 CA GLU 560 -55.659 8.138 -10.315 1.00 98.92 C +ATOM 8509 C GLU 560 -54.332 8.862 -10.584 1.00 98.92 C +ATOM 8510 O GLU 560 -53.635 9.268 -9.651 1.00 98.92 O +ATOM 8511 CB GLU 560 -56.822 9.149 -10.396 1.00 98.92 C +ATOM 8512 CG GLU 560 -58.210 8.504 -10.232 1.00 98.92 C +ATOM 8513 CD GLU 560 -59.354 9.505 -10.396 1.00 98.92 C +ATOM 8514 OE1 GLU 560 -60.328 9.141 -11.090 1.00 98.92 O +ATOM 8515 OE2 GLU 560 -59.250 10.603 -9.807 1.00 98.92 O +ATOM 8522 N SER 561 -54.044 9.040 -11.884 1.00 98.81 N +ATOM 8523 CA SER 561 -52.935 9.829 -12.405 1.00 98.81 C +ATOM 8524 C SER 561 -53.298 10.538 -13.709 1.00 98.81 C +ATOM 8525 O SER 561 -54.315 10.234 -14.331 1.00 98.81 O +ATOM 8526 CB SER 561 -51.627 9.009 -12.502 1.00 98.81 C +ATOM 8527 OG SER 561 -51.584 8.132 -13.612 1.00 98.81 O +ATOM 8533 N PHE 562 -52.409 11.459 -14.099 1.00 98.79 N +ATOM 8534 CA PHE 562 -52.409 12.117 -15.397 1.00 98.79 C +ATOM 8535 C PHE 562 -50.947 12.433 -15.761 1.00 98.79 C +ATOM 8536 O PHE 562 -50.107 12.571 -14.871 1.00 98.79 O +ATOM 8537 CB PHE 562 -53.327 13.368 -15.356 1.00 98.79 C +ATOM 8538 CG PHE 562 -52.688 14.640 -14.824 1.00 98.79 C +ATOM 8539 CD1 PHE 562 -52.502 14.810 -13.437 1.00 98.79 C +ATOM 8540 CD2 PHE 562 -52.090 15.558 -15.713 1.00 98.79 C +ATOM 8541 CE1 PHE 562 -51.775 15.891 -12.961 1.00 98.79 C +ATOM 8542 CE2 PHE 562 -51.365 16.631 -15.218 1.00 98.79 C +ATOM 8543 CZ PHE 562 -51.211 16.800 -13.847 1.00 98.79 C +ATOM 8553 N ASN 563 -50.681 12.585 -17.067 1.00 98.18 N +ATOM 8554 CA ASN 563 -49.382 13.007 -17.587 1.00 98.18 C +ATOM 8555 C ASN 563 -49.601 13.712 -18.945 1.00 98.18 C +ATOM 8556 O ASN 563 -50.270 13.116 -19.793 1.00 98.18 O +ATOM 8557 CB ASN 563 -48.463 11.770 -17.757 1.00 98.18 C +ATOM 8558 CG ASN 563 -46.982 12.152 -17.852 1.00 98.18 C +ATOM 8559 ND2 ASN 563 -46.342 11.847 -18.983 1.00 98.18 N +ATOM 8560 OD1 ASN 563 -46.421 12.715 -16.915 1.00 98.18 O +ATOM 8567 N PRO 564 -49.029 14.930 -19.150 1.00 97.16 N +ATOM 8568 CA PRO 564 -48.953 15.610 -20.465 1.00 97.16 C +ATOM 8569 C PRO 564 -48.554 14.715 -21.652 1.00 97.16 C +ATOM 8570 O PRO 564 -47.536 14.026 -21.577 1.00 97.16 O +ATOM 8571 CB PRO 564 -47.926 16.730 -20.234 1.00 97.16 C +ATOM 8572 CG PRO 564 -48.115 17.094 -18.775 1.00 97.16 C +ATOM 8573 CD PRO 564 -48.362 15.741 -18.125 1.00 97.16 C +ATOM 8581 N ASN 565 -49.396 14.721 -22.700 1.00 94.45 N +ATOM 8582 CA ASN 565 -49.219 13.913 -23.908 1.00 94.45 C +ATOM 8583 C ASN 565 -47.999 14.385 -24.725 1.00 94.45 C +ATOM 8584 O ASN 565 -47.844 15.585 -24.950 1.00 94.45 O +ATOM 8585 CB ASN 565 -50.507 13.965 -24.768 1.00 94.45 C +ATOM 8586 CG ASN 565 -50.791 12.658 -25.519 1.00 94.45 C +ATOM 8587 ND2 ASN 565 -52.024 12.156 -25.424 1.00 94.45 N +ATOM 8588 OD1 ASN 565 -49.918 12.119 -26.196 1.00 94.45 O +ATOM 8595 N ALA 566 -47.173 13.418 -25.158 1.00 87.97 N +ATOM 8596 CA ALA 566 -45.968 13.642 -25.959 1.00 87.97 C +ATOM 8597 C ALA 566 -46.244 13.938 -27.447 1.00 87.97 C +ATOM 8598 O ALA 566 -45.316 14.343 -28.146 1.00 87.97 O +ATOM 8599 CB ALA 566 -45.059 12.409 -25.816 1.00 87.97 C +ATOM 8605 N TYR 567 -47.489 13.716 -27.902 1.00 92.12 N +ATOM 8606 CA TYR 567 -47.912 13.830 -29.298 1.00 92.12 C +ATOM 8607 C TYR 567 -48.916 14.977 -29.483 1.00 92.12 C +ATOM 8608 O TYR 567 -49.554 15.406 -28.521 1.00 92.12 O +ATOM 8609 CB TYR 567 -48.538 12.489 -29.727 1.00 92.12 C +ATOM 8610 CG TYR 567 -47.571 11.317 -29.718 1.00 92.12 C +ATOM 8611 CD1 TYR 567 -46.831 11.005 -30.877 1.00 92.12 C +ATOM 8612 CD2 TYR 567 -47.398 10.541 -28.552 1.00 92.12 C +ATOM 8613 CE1 TYR 567 -45.937 9.917 -30.876 1.00 92.12 C +ATOM 8614 CE2 TYR 567 -46.503 9.454 -28.549 1.00 92.12 C +ATOM 8615 OH TYR 567 -44.904 8.088 -29.712 1.00 92.12 O +ATOM 8616 CZ TYR 567 -45.772 9.141 -29.712 1.00 92.12 C +ATOM 8626 N SER 568 -49.030 15.428 -30.742 1.00 91.49 N +ATOM 8627 CA SER 568 -49.873 16.542 -31.177 1.00 91.49 C +ATOM 8628 C SER 568 -50.874 16.094 -32.256 1.00 91.49 C +ATOM 8629 O SER 568 -50.686 15.047 -32.880 1.00 91.49 O +ATOM 8630 CB SER 568 -48.959 17.652 -31.732 1.00 91.49 C +ATOM 8631 OG SER 568 -48.320 18.351 -30.683 1.00 91.49 O +ATOM 8637 N ASP 569 -51.912 16.922 -32.465 1.00 91.66 N +ATOM 8638 CA ASP 569 -52.951 16.745 -33.488 1.00 91.66 C +ATOM 8639 C ASP 569 -52.496 17.264 -34.874 1.00 91.66 C +ATOM 8640 O ASP 569 -51.312 17.535 -35.084 1.00 91.66 O +ATOM 8641 CB ASP 569 -54.318 17.347 -33.048 1.00 91.66 C +ATOM 8642 CG ASP 569 -54.306 18.831 -32.655 1.00 91.66 C +ATOM 8643 OD1 ASP 569 -53.378 19.547 -33.093 1.00 91.66 O +ATOM 8644 OD2 ASP 569 -55.278 19.240 -31.986 1.00 91.66 O +ATOM 8649 N ALA 570 -53.465 17.399 -35.797 1.00 89.67 N +ATOM 8650 CA ALA 570 -53.293 17.919 -37.154 1.00 89.67 C +ATOM 8651 C ALA 570 -52.884 19.403 -37.234 1.00 89.67 C +ATOM 8652 O ALA 570 -52.255 19.778 -38.223 1.00 89.67 O +ATOM 8653 CB ALA 570 -54.595 17.685 -37.935 1.00 89.67 C +ATOM 8659 N SER 571 -53.223 20.209 -36.210 1.00 90.48 N +ATOM 8660 CA SER 571 -52.845 21.623 -36.109 1.00 90.48 C +ATOM 8661 C SER 571 -51.522 21.852 -35.346 1.00 90.48 C +ATOM 8662 O SER 571 -51.142 23.008 -35.164 1.00 90.48 O +ATOM 8663 CB SER 571 -54.031 22.437 -35.543 1.00 90.48 C +ATOM 8664 OG SER 571 -54.277 22.195 -34.173 1.00 90.48 O +ATOM 8670 N GLY 572 -50.839 20.769 -34.930 1.00 88.10 N +ATOM 8671 CA GLY 572 -49.558 20.818 -34.220 1.00 88.10 C +ATOM 8672 C GLY 572 -49.721 21.135 -32.724 1.00 88.10 C +ATOM 8673 O GLY 572 -48.721 21.402 -32.058 1.00 88.10 O +ATOM 8677 N THR 573 -50.957 21.099 -32.200 1.00 91.23 N +ATOM 8678 CA THR 573 -51.301 21.408 -30.817 1.00 91.23 C +ATOM 8679 C THR 573 -51.284 20.102 -29.983 1.00 91.23 C +ATOM 8680 O THR 573 -51.986 19.164 -30.364 1.00 91.23 O +ATOM 8681 CB THR 573 -52.740 21.991 -30.769 1.00 91.23 C +ATOM 8682 CG2 THR 573 -53.261 22.330 -29.366 1.00 91.23 C +ATOM 8683 OG1 THR 573 -52.790 23.180 -31.536 1.00 91.23 O +ATOM 8691 N PRO 574 -50.484 20.043 -28.887 1.00 92.30 N +ATOM 8692 CA PRO 574 -50.477 18.941 -27.900 1.00 92.30 C +ATOM 8693 C PRO 574 -51.846 18.353 -27.518 1.00 92.30 C +ATOM 8694 O PRO 574 -52.743 19.091 -27.108 1.00 92.30 O +ATOM 8695 CB PRO 574 -49.775 19.566 -26.686 1.00 92.30 C +ATOM 8696 CG PRO 574 -48.744 20.486 -27.311 1.00 92.30 C +ATOM 8697 CD PRO 574 -49.470 21.037 -28.533 1.00 92.30 C +ATOM 8705 N LEU 575 -51.963 17.025 -27.683 1.00 95.14 N +ATOM 8706 CA LEU 575 -53.140 16.218 -27.360 1.00 95.14 C +ATOM 8707 C LEU 575 -53.513 16.263 -25.869 1.00 95.14 C +ATOM 8708 O LEU 575 -52.673 16.581 -25.024 1.00 95.14 O +ATOM 8709 CB LEU 575 -52.860 14.756 -27.780 1.00 95.14 C +ATOM 8710 CG LEU 575 -52.890 14.503 -29.298 1.00 95.14 C +ATOM 8711 CD1 LEU 575 -52.393 13.081 -29.630 1.00 95.14 C +ATOM 8712 CD2 LEU 575 -54.282 14.780 -29.893 1.00 95.14 C +ATOM 8724 N ALA 576 -54.773 15.887 -25.588 1.00 95.91 N +ATOM 8725 CA ALA 576 -55.334 15.728 -24.246 1.00 95.91 C +ATOM 8726 C ALA 576 -54.486 14.751 -23.399 1.00 95.91 C +ATOM 8727 O ALA 576 -54.190 13.660 -23.894 1.00 95.91 O +ATOM 8728 CB ALA 576 -56.764 15.185 -24.398 1.00 95.91 C +ATOM 8734 N PRO 577 -54.060 15.170 -22.182 1.00 97.82 N +ATOM 8735 CA PRO 577 -53.131 14.389 -21.343 1.00 97.82 C +ATOM 8736 C PRO 577 -53.690 13.009 -20.956 1.00 97.82 C +ATOM 8737 O PRO 577 -54.853 12.915 -20.562 1.00 97.82 O +ATOM 8738 CB PRO 577 -52.904 15.286 -20.113 1.00 97.82 C +ATOM 8739 CG PRO 577 -54.148 16.145 -20.032 1.00 97.82 C +ATOM 8740 CD PRO 577 -54.484 16.392 -21.493 1.00 97.82 C +ATOM 8748 N THR 578 -52.843 11.975 -21.103 1.00 98.41 N +ATOM 8749 CA THR 578 -53.142 10.582 -20.755 1.00 98.41 C +ATOM 8750 C THR 578 -53.531 10.439 -19.268 1.00 98.41 C +ATOM 8751 O THR 578 -52.899 11.087 -18.438 1.00 98.41 O +ATOM 8752 CB THR 578 -51.938 9.643 -21.064 1.00 98.41 C +ATOM 8753 CG2 THR 578 -51.358 9.817 -22.476 1.00 98.41 C +ATOM 8754 OG1 THR 578 -50.880 9.718 -20.122 1.00 98.41 O +ATOM 8762 N GLU 579 -54.569 9.636 -18.974 1.00 98.75 N +ATOM 8763 CA GLU 579 -55.101 9.437 -17.621 1.00 98.75 C +ATOM 8764 C GLU 579 -54.916 7.979 -17.187 1.00 98.75 C +ATOM 8765 O GLU 579 -55.500 7.102 -17.816 1.00 98.75 O +ATOM 8766 CB GLU 579 -56.607 9.772 -17.571 1.00 98.75 C +ATOM 8767 CG GLU 579 -56.962 11.246 -17.835 1.00 98.75 C +ATOM 8768 CD GLU 579 -58.454 11.545 -17.635 1.00 98.75 C +ATOM 8769 OE1 GLU 579 -58.766 12.746 -17.484 1.00 98.75 O +ATOM 8770 OE2 GLU 579 -59.265 10.593 -17.624 1.00 98.75 O +ATOM 8777 N GLY 580 -54.183 7.755 -16.085 1.00 98.75 N +ATOM 8778 CA GLY 580 -54.090 6.451 -15.427 1.00 98.75 C +ATOM 8779 C GLY 580 -55.200 6.350 -14.376 1.00 98.75 C +ATOM 8780 O GLY 580 -55.466 7.315 -13.663 1.00 98.75 O +ATOM 8784 N LYS 581 -55.832 5.172 -14.269 1.00 98.90 N +ATOM 8785 CA LYS 581 -56.883 4.858 -13.298 1.00 98.90 C +ATOM 8786 C LYS 581 -56.719 3.391 -12.897 1.00 98.90 C +ATOM 8787 O LYS 581 -56.752 2.530 -13.775 1.00 98.90 O +ATOM 8788 CB LYS 581 -58.285 5.110 -13.903 1.00 98.90 C +ATOM 8789 CG LYS 581 -58.586 6.591 -14.188 1.00 98.90 C +ATOM 8790 CD LYS 581 -59.934 6.823 -14.875 1.00 98.90 C +ATOM 8791 CE LYS 581 -60.077 8.284 -15.326 1.00 98.90 C +ATOM 8792 NZ LYS 581 -61.164 8.454 -16.301 1.00 98.90 N +ATOM 8806 N GLN 582 -56.535 3.138 -11.593 1.00 98.88 N +ATOM 8807 CA GLN 582 -56.243 1.817 -11.042 1.00 98.88 C +ATOM 8808 C GLN 582 -57.275 1.385 -10.005 1.00 98.88 C +ATOM 8809 O GLN 582 -57.659 2.194 -9.166 1.00 98.88 O +ATOM 8810 CB GLN 582 -54.826 1.832 -10.431 1.00 98.88 C +ATOM 8811 CG GLN 582 -54.429 0.587 -9.606 1.00 98.88 C +ATOM 8812 CD GLN 582 -52.967 0.612 -9.174 1.00 98.88 C +ATOM 8813 NE2 GLN 582 -52.706 0.929 -7.904 1.00 98.88 N +ATOM 8814 OE1 GLN 582 -52.084 0.334 -9.978 1.00 98.88 O +ATOM 8823 N TRP 583 -57.570 0.078 -10.020 1.00 98.92 N +ATOM 8824 CA TRP 583 -58.045 -0.688 -8.873 1.00 98.92 C +ATOM 8825 C TRP 583 -56.944 -1.676 -8.470 1.00 98.92 C +ATOM 8826 O TRP 583 -56.368 -2.330 -9.339 1.00 98.92 O +ATOM 8827 CB TRP 583 -59.336 -1.438 -9.235 1.00 98.92 C +ATOM 8828 CG TRP 583 -60.544 -0.565 -9.354 1.00 98.92 C +ATOM 8829 CD1 TRP 583 -61.023 -0.019 -10.494 1.00 98.92 C +ATOM 8830 CD2 TRP 583 -61.381 -0.050 -8.276 1.00 98.92 C +ATOM 8831 CE2 TRP 583 -62.387 0.787 -8.847 1.00 98.92 C +ATOM 8832 CE3 TRP 583 -61.390 -0.202 -6.869 1.00 98.92 C +ATOM 8833 NE1 TRP 583 -62.119 0.767 -10.201 1.00 98.92 N +ATOM 8834 CH2 TRP 583 -63.342 1.257 -6.666 1.00 98.92 C +ATOM 8835 CZ2 TRP 583 -63.357 1.435 -8.062 1.00 98.92 C +ATOM 8836 CZ3 TRP 583 -62.361 0.440 -6.072 1.00 98.92 C +ATOM 8847 N GLU 584 -56.679 -1.760 -7.160 1.00 98.93 N +ATOM 8848 CA GLU 584 -55.677 -2.638 -6.566 1.00 98.93 C +ATOM 8849 C GLU 584 -56.263 -3.300 -5.315 1.00 98.93 C +ATOM 8850 O GLU 584 -56.889 -2.623 -4.502 1.00 98.93 O +ATOM 8851 CB GLU 584 -54.375 -1.840 -6.313 1.00 98.93 C +ATOM 8852 CG GLU 584 -53.257 -2.597 -5.563 1.00 98.93 C +ATOM 8853 CD GLU 584 -51.958 -1.793 -5.490 1.00 98.93 C +ATOM 8854 OE1 GLU 584 -51.590 -1.393 -4.364 1.00 98.93 O +ATOM 8855 OE2 GLU 584 -51.339 -1.606 -6.560 1.00 98.93 O +ATOM 8862 N LEU 585 -56.031 -4.613 -5.198 1.00 98.91 N +ATOM 8863 CA LEU 585 -56.368 -5.450 -4.052 1.00 98.91 C +ATOM 8864 C LEU 585 -55.074 -6.146 -3.632 1.00 98.91 C +ATOM 8865 O LEU 585 -54.423 -6.752 -4.481 1.00 98.91 O +ATOM 8866 CB LEU 585 -57.408 -6.515 -4.472 1.00 98.91 C +ATOM 8867 CG LEU 585 -58.853 -6.000 -4.637 1.00 98.91 C +ATOM 8868 CD1 LEU 585 -59.701 -6.971 -5.486 1.00 98.91 C +ATOM 8869 CD2 LEU 585 -59.515 -5.707 -3.276 1.00 98.91 C +ATOM 8881 N GLY 586 -54.721 -6.070 -2.344 1.00 98.88 N +ATOM 8882 CA GLY 586 -53.491 -6.686 -1.872 1.00 98.88 C +ATOM 8883 C GLY 586 -53.631 -7.186 -0.440 1.00 98.88 C +ATOM 8884 O GLY 586 -54.658 -7.030 0.218 1.00 98.88 O +ATOM 8888 N LEU 587 -52.536 -7.805 0.009 1.00 98.88 N +ATOM 8889 CA LEU 587 -52.331 -8.396 1.318 1.00 98.88 C +ATOM 8890 C LEU 587 -50.861 -8.177 1.679 1.00 98.88 C +ATOM 8891 O LEU 587 -49.993 -8.411 0.841 1.00 98.88 O +ATOM 8892 CB LEU 587 -52.698 -9.899 1.251 1.00 98.88 C +ATOM 8893 CG LEU 587 -52.553 -10.679 2.578 1.00 98.88 C +ATOM 8894 CD1 LEU 587 -53.512 -10.142 3.655 1.00 98.88 C +ATOM 8895 CD2 LEU 587 -52.719 -12.197 2.353 1.00 98.88 C +ATOM 8907 N LYS 588 -50.613 -7.756 2.924 1.00 98.87 N +ATOM 8908 CA LYS 588 -49.274 -7.617 3.490 1.00 98.87 C +ATOM 8909 C LYS 588 -49.209 -8.425 4.791 1.00 98.87 C +ATOM 8910 O LYS 588 -50.245 -8.663 5.412 1.00 98.87 O +ATOM 8911 CB LYS 588 -48.954 -6.126 3.718 1.00 98.87 C +ATOM 8912 CG LYS 588 -49.007 -5.292 2.426 1.00 98.87 C +ATOM 8913 CD LYS 588 -48.537 -3.851 2.635 1.00 98.87 C +ATOM 8914 CE LYS 588 -48.549 -3.034 1.338 1.00 98.87 C +ATOM 8915 NZ LYS 588 -48.003 -1.689 1.561 1.00 98.87 N +ATOM 8929 N PHE 589 -47.997 -8.849 5.175 1.00 98.78 N +ATOM 8930 CA PHE 589 -47.781 -9.650 6.375 1.00 98.78 C +ATOM 8931 C PHE 589 -46.379 -9.436 6.950 1.00 98.78 C +ATOM 8932 O PHE 589 -45.397 -9.483 6.211 1.00 98.78 O +ATOM 8933 CB PHE 589 -48.116 -11.137 6.108 1.00 98.78 C +ATOM 8934 CG PHE 589 -47.851 -12.088 7.266 1.00 98.78 C +ATOM 8935 CD1 PHE 589 -46.737 -12.953 7.245 1.00 98.78 C +ATOM 8936 CD2 PHE 589 -48.650 -12.029 8.427 1.00 98.78 C +ATOM 8937 CE1 PHE 589 -46.465 -13.761 8.341 1.00 98.78 C +ATOM 8938 CE2 PHE 589 -48.365 -12.847 9.510 1.00 98.78 C +ATOM 8939 CZ PHE 589 -47.280 -13.712 9.466 1.00 98.78 C +ATOM 8949 N GLN 590 -46.334 -9.254 8.276 1.00 98.27 N +ATOM 8950 CA GLN 590 -45.134 -9.188 9.095 1.00 98.27 C +ATOM 8951 C GLN 590 -45.538 -9.563 10.520 1.00 98.27 C +ATOM 8952 O GLN 590 -46.143 -8.739 11.205 1.00 98.27 O +ATOM 8953 CB GLN 590 -44.452 -7.803 8.984 1.00 98.27 C +ATOM 8954 CG GLN 590 -43.351 -7.530 10.038 1.00 98.27 C +ATOM 8955 CD GLN 590 -42.577 -6.236 9.783 1.00 98.27 C +ATOM 8956 NE2 GLN 590 -41.282 -6.234 10.109 1.00 98.27 N +ATOM 8957 OE1 GLN 590 -43.139 -5.239 9.334 1.00 98.27 O +ATOM 8966 N ALA 591 -45.186 -10.792 10.933 1.00 96.44 N +ATOM 8967 CA ALA 591 -45.387 -11.317 12.285 1.00 96.44 C +ATOM 8968 C ALA 591 -44.688 -10.421 13.337 1.00 96.44 C +ATOM 8969 O ALA 591 -43.511 -10.123 13.133 1.00 96.44 O +ATOM 8970 CB ALA 591 -44.788 -12.731 12.321 1.00 96.44 C +ATOM 8976 N PRO 592 -45.404 -9.971 14.397 1.00 93.02 N +ATOM 8977 CA PRO 592 -44.841 -9.150 15.492 1.00 93.02 C +ATOM 8978 C PRO 592 -43.485 -9.623 16.055 1.00 93.02 C +ATOM 8979 O PRO 592 -43.399 -10.715 16.616 1.00 93.02 O +ATOM 8980 CB PRO 592 -45.950 -9.169 16.557 1.00 93.02 C +ATOM 8981 CG PRO 592 -47.231 -9.258 15.751 1.00 93.02 C +ATOM 8982 CD PRO 592 -46.844 -10.158 14.586 1.00 93.02 C +ATOM 8990 N GLY 593 -42.455 -8.785 15.857 1.00 89.03 N +ATOM 8991 CA GLY 593 -41.089 -9.018 16.324 1.00 89.03 C +ATOM 8992 C GLY 593 -40.187 -9.673 15.263 1.00 89.03 C +ATOM 8993 O GLY 593 -38.988 -9.789 15.516 1.00 89.03 O +ATOM 8997 N SER 594 -40.718 -10.085 14.096 1.00 92.20 N +ATOM 8998 CA SER 594 -39.934 -10.646 12.990 1.00 92.20 C +ATOM 8999 C SER 594 -39.344 -9.540 12.096 1.00 92.20 C +ATOM 9000 O SER 594 -39.963 -8.490 11.916 1.00 92.20 O +ATOM 9001 CB SER 594 -40.788 -11.660 12.190 1.00 92.20 C +ATOM 9002 OG SER 594 -41.638 -11.068 11.224 1.00 92.20 O +ATOM 9008 N ASN 595 -38.180 -9.849 11.505 1.00 93.57 N +ATOM 9009 CA ASN 595 -37.498 -9.027 10.504 1.00 93.57 C +ATOM 9010 C ASN 595 -37.783 -9.571 9.086 1.00 93.57 C +ATOM 9011 O ASN 595 -36.895 -9.584 8.234 1.00 93.57 O +ATOM 9012 CB ASN 595 -35.986 -8.986 10.847 1.00 93.57 C +ATOM 9013 CG ASN 595 -35.224 -7.747 10.357 1.00 93.57 C +ATOM 9014 ND2 ASN 595 -33.963 -7.640 10.774 1.00 93.57 N +ATOM 9015 OD1 ASN 595 -35.746 -6.906 9.628 1.00 93.57 O +ATOM 9022 N SER 596 -39.031 -10.016 8.865 1.00 97.28 N +ATOM 9023 CA SER 596 -39.510 -10.596 7.616 1.00 97.28 C +ATOM 9024 C SER 596 -40.804 -9.874 7.217 1.00 97.28 C +ATOM 9025 O SER 596 -41.662 -9.652 8.071 1.00 97.28 O +ATOM 9026 CB SER 596 -39.760 -12.101 7.830 1.00 97.28 C +ATOM 9027 OG SER 596 -38.544 -12.789 8.047 1.00 97.28 O +ATOM 9033 N PHE 597 -40.916 -9.523 5.928 1.00 98.49 N +ATOM 9034 CA PHE 597 -42.016 -8.738 5.375 1.00 98.49 C +ATOM 9035 C PHE 597 -42.387 -9.306 4.003 1.00 98.49 C +ATOM 9036 O PHE 597 -41.519 -9.440 3.140 1.00 98.49 O +ATOM 9037 CB PHE 597 -41.580 -7.264 5.296 1.00 98.49 C +ATOM 9038 CG PHE 597 -42.640 -6.264 4.868 1.00 98.49 C +ATOM 9039 CD1 PHE 597 -42.843 -5.957 3.506 1.00 98.49 C +ATOM 9040 CD2 PHE 597 -43.518 -5.721 5.828 1.00 98.49 C +ATOM 9041 CE1 PHE 597 -43.848 -5.071 3.139 1.00 98.49 C +ATOM 9042 CE2 PHE 597 -44.523 -4.849 5.440 1.00 98.49 C +ATOM 9043 CZ PHE 597 -44.682 -4.519 4.102 1.00 98.49 C +ATOM 9053 N TYR 598 -43.677 -9.617 3.840 1.00 98.84 N +ATOM 9054 CA TYR 598 -44.240 -10.270 2.663 1.00 98.84 C +ATOM 9055 C TYR 598 -45.371 -9.406 2.098 1.00 98.84 C +ATOM 9056 O TYR 598 -46.078 -8.756 2.869 1.00 98.84 O +ATOM 9057 CB TYR 598 -44.777 -11.657 3.074 1.00 98.84 C +ATOM 9058 CG TYR 598 -43.752 -12.559 3.741 1.00 98.84 C +ATOM 9059 CD1 TYR 598 -42.923 -13.391 2.961 1.00 98.84 C +ATOM 9060 CD2 TYR 598 -43.609 -12.549 5.144 1.00 98.84 C +ATOM 9061 CE1 TYR 598 -41.958 -14.207 3.583 1.00 98.84 C +ATOM 9062 CE2 TYR 598 -42.650 -13.368 5.767 1.00 98.84 C +ATOM 9063 OH TYR 598 -40.883 -14.983 5.588 1.00 98.84 O +ATOM 9064 CZ TYR 598 -41.820 -14.196 4.986 1.00 98.84 C +ATOM 9074 N THR 599 -45.535 -9.439 0.767 1.00 98.87 N +ATOM 9075 CA THR 599 -46.629 -8.781 0.055 1.00 98.87 C +ATOM 9076 C THR 599 -47.157 -9.676 -1.081 1.00 98.87 C +ATOM 9077 O THR 599 -46.417 -10.486 -1.642 1.00 98.87 O +ATOM 9078 CB THR 599 -46.237 -7.388 -0.534 1.00 98.87 C +ATOM 9079 CG2 THR 599 -45.481 -6.460 0.426 1.00 98.87 C +ATOM 9080 OG1 THR 599 -45.558 -7.441 -1.776 1.00 98.87 O +ATOM 9088 N ALA 600 -48.437 -9.457 -1.406 1.00 98.93 N +ATOM 9089 CA ALA 600 -49.142 -9.965 -2.573 1.00 98.93 C +ATOM 9090 C ALA 600 -50.077 -8.844 -3.035 1.00 98.93 C +ATOM 9091 O ALA 600 -50.761 -8.262 -2.195 1.00 98.93 O +ATOM 9092 CB ALA 600 -49.922 -11.236 -2.201 1.00 98.93 C +ATOM 9098 N SER 601 -50.067 -8.527 -4.338 1.00 98.89 N +ATOM 9099 CA SER 601 -50.717 -7.333 -4.873 1.00 98.89 C +ATOM 9100 C SER 601 -51.237 -7.592 -6.291 1.00 98.89 C +ATOM 9101 O SER 601 -50.467 -7.519 -7.248 1.00 98.89 O +ATOM 9102 CB SER 601 -49.725 -6.149 -4.838 1.00 98.89 C +ATOM 9103 OG SER 601 -49.553 -5.666 -3.519 1.00 98.89 O +ATOM 9109 N LEU 602 -52.550 -7.853 -6.394 1.00 98.91 N +ATOM 9110 CA LEU 602 -53.310 -7.850 -7.644 1.00 98.91 C +ATOM 9111 C LEU 602 -53.619 -6.400 -8.051 1.00 98.91 C +ATOM 9112 O LEU 602 -54.010 -5.610 -7.193 1.00 98.91 O +ATOM 9113 CB LEU 602 -54.633 -8.625 -7.441 1.00 98.91 C +ATOM 9114 CG LEU 602 -54.476 -10.159 -7.348 1.00 98.91 C +ATOM 9115 CD1 LEU 602 -55.732 -10.818 -6.737 1.00 98.91 C +ATOM 9116 CD2 LEU 602 -54.086 -10.782 -8.707 1.00 98.91 C +ATOM 9128 N PHE 603 -53.475 -6.084 -9.346 1.00 98.91 N +ATOM 9129 CA PHE 603 -53.748 -4.751 -9.888 1.00 98.91 C +ATOM 9130 C PHE 603 -54.471 -4.846 -11.239 1.00 98.91 C +ATOM 9131 O PHE 603 -54.419 -5.878 -11.907 1.00 98.91 O +ATOM 9132 CB PHE 603 -52.435 -3.930 -9.954 1.00 98.91 C +ATOM 9133 CG PHE 603 -51.385 -4.375 -10.964 1.00 98.91 C +ATOM 9134 CD1 PHE 603 -50.429 -5.353 -10.614 1.00 98.91 C +ATOM 9135 CD2 PHE 603 -51.439 -3.923 -12.301 1.00 98.91 C +ATOM 9136 CE1 PHE 603 -49.518 -5.804 -11.560 1.00 98.91 C +ATOM 9137 CE2 PHE 603 -50.518 -4.387 -13.231 1.00 98.91 C +ATOM 9138 CZ PHE 603 -49.558 -5.319 -12.861 1.00 98.91 C +ATOM 9148 N HIS 604 -55.116 -3.730 -11.605 1.00 98.92 N +ATOM 9149 CA HIS 604 -55.778 -3.492 -12.880 1.00 98.92 C +ATOM 9150 C HIS 604 -55.755 -1.978 -13.121 1.00 98.92 C +ATOM 9151 O HIS 604 -56.574 -1.261 -12.550 1.00 98.92 O +ATOM 9152 CB HIS 604 -57.209 -4.076 -12.875 1.00 98.92 C +ATOM 9153 CG HIS 604 -57.972 -3.874 -14.166 1.00 98.92 C +ATOM 9154 CD2 HIS 604 -58.672 -2.792 -14.658 1.00 98.92 C +ATOM 9155 ND1 HIS 604 -58.100 -4.862 -15.127 1.00 98.92 N +ATOM 9156 CE1 HIS 604 -58.830 -4.354 -16.122 1.00 98.92 C +ATOM 9157 NE2 HIS 604 -59.205 -3.098 -15.912 1.00 98.92 N +ATOM 9165 N ILE 605 -54.803 -1.538 -13.953 1.00 98.89 N +ATOM 9166 CA ILE 605 -54.608 -0.160 -14.394 1.00 98.89 C +ATOM 9167 C ILE 605 -55.167 -0.025 -15.820 1.00 98.89 C +ATOM 9168 O ILE 605 -54.977 -0.935 -16.625 1.00 98.89 O +ATOM 9169 CB ILE 605 -53.090 0.202 -14.460 1.00 98.89 C +ATOM 9170 CG1 ILE 605 -52.399 0.023 -13.093 1.00 98.89 C +ATOM 9171 CG2 ILE 605 -52.814 1.632 -14.988 1.00 98.89 C +ATOM 9172 CD1 ILE 605 -50.882 -0.180 -13.177 1.00 98.89 C +ATOM 9184 N THR 606 -55.790 1.124 -16.117 1.00 98.90 N +ATOM 9185 CA THR 606 -56.185 1.519 -17.466 1.00 98.90 C +ATOM 9186 C THR 606 -55.671 2.943 -17.730 1.00 98.90 C +ATOM 9187 O THR 606 -56.068 3.874 -17.030 1.00 98.90 O +ATOM 9188 CB THR 606 -57.724 1.490 -17.658 1.00 98.90 C +ATOM 9189 CG2 THR 606 -58.210 1.938 -19.050 1.00 98.90 C +ATOM 9190 OG1 THR 606 -58.190 0.170 -17.456 1.00 98.90 O +ATOM 9198 N GLN 607 -54.804 3.070 -18.747 1.00 98.76 N +ATOM 9199 CA GLN 607 -54.330 4.333 -19.296 1.00 98.76 C +ATOM 9200 C GLN 607 -55.226 4.710 -20.483 1.00 98.76 C +ATOM 9201 O GLN 607 -55.184 4.024 -21.501 1.00 98.76 O +ATOM 9202 CB GLN 607 -52.855 4.207 -19.728 1.00 98.76 C +ATOM 9203 CG GLN 607 -52.257 5.543 -20.231 1.00 98.76 C +ATOM 9204 CD GLN 607 -50.791 5.433 -20.658 1.00 98.76 C +ATOM 9205 NE2 GLN 607 -50.050 6.538 -20.560 1.00 98.76 N +ATOM 9206 OE1 GLN 607 -50.335 4.380 -21.097 1.00 98.76 O +ATOM 9215 N GLU 608 -55.990 5.798 -20.330 1.00 98.50 N +ATOM 9216 CA GLU 608 -56.836 6.386 -21.368 1.00 98.50 C +ATOM 9217 C GLU 608 -56.112 7.551 -22.063 1.00 98.50 C +ATOM 9218 O GLU 608 -55.099 8.037 -21.560 1.00 98.50 O +ATOM 9219 CB GLU 608 -58.146 6.881 -20.723 1.00 98.50 C +ATOM 9220 CG GLU 608 -58.964 5.762 -20.054 1.00 98.50 C +ATOM 9221 CD GLU 608 -60.276 6.295 -19.487 1.00 98.50 C +ATOM 9222 OE1 GLU 608 -61.257 6.348 -20.260 1.00 98.50 O +ATOM 9223 OE2 GLU 608 -60.276 6.655 -18.290 1.00 98.50 O +ATOM 9230 N ASN 609 -56.673 7.980 -23.207 1.00 97.84 N +ATOM 9231 CA ASN 609 -56.258 9.133 -24.023 1.00 97.84 C +ATOM 9232 C ASN 609 -54.834 9.013 -24.606 1.00 97.84 C +ATOM 9233 O ASN 609 -54.194 10.033 -24.863 1.00 97.84 O +ATOM 9234 CB ASN 609 -56.490 10.479 -23.277 1.00 97.84 C +ATOM 9235 CG ASN 609 -57.946 10.728 -22.880 1.00 97.84 C +ATOM 9236 ND2 ASN 609 -58.845 10.816 -23.864 1.00 97.84 N +ATOM 9237 OD1 ASN 609 -58.255 10.849 -21.697 1.00 97.84 O +ATOM 9244 N VAL 610 -54.379 7.770 -24.844 1.00 96.98 N +ATOM 9245 CA VAL 610 -53.108 7.450 -25.494 1.00 96.98 C +ATOM 9246 C VAL 610 -53.157 7.848 -26.984 1.00 96.98 C +ATOM 9247 O VAL 610 -54.182 7.647 -27.637 1.00 96.98 O +ATOM 9248 CB VAL 610 -52.790 5.927 -25.384 1.00 96.98 C +ATOM 9249 CG1 VAL 610 -51.492 5.489 -26.095 1.00 96.98 C +ATOM 9250 CG2 VAL 610 -52.747 5.467 -23.916 1.00 96.98 C +ATOM 9260 N ALA 611 -52.049 8.417 -27.483 1.00 96.81 N +ATOM 9261 CA ALA 611 -51.896 8.840 -28.873 1.00 96.81 C +ATOM 9262 C ALA 611 -51.905 7.646 -29.839 1.00 96.81 C +ATOM 9263 O ALA 611 -51.100 6.727 -29.680 1.00 96.81 O +ATOM 9264 CB ALA 611 -50.590 9.627 -29.000 1.00 96.81 C +ATOM 9270 N SER 612 -52.819 7.692 -30.817 1.00 96.42 N +ATOM 9271 CA SER 612 -53.019 6.643 -31.811 1.00 96.42 C +ATOM 9272 C SER 612 -53.481 7.272 -33.134 1.00 96.42 C +ATOM 9273 O SER 612 -54.113 8.329 -33.125 1.00 96.42 O +ATOM 9274 CB SER 612 -54.031 5.621 -31.250 1.00 96.42 C +ATOM 9275 OG SER 612 -54.141 4.493 -32.091 1.00 96.42 O +ATOM 9281 N LYS 613 -53.156 6.607 -34.251 1.00 95.63 N +ATOM 9282 CA LYS 613 -53.519 7.038 -35.599 1.00 95.63 C +ATOM 9283 C LYS 613 -53.649 5.820 -36.514 1.00 95.63 C +ATOM 9284 O LYS 613 -53.006 4.799 -36.262 1.00 95.63 O +ATOM 9285 CB LYS 613 -52.469 8.039 -36.133 1.00 95.63 C +ATOM 9286 CG LYS 613 -51.089 7.465 -36.507 1.00 95.63 C +ATOM 9287 CD LYS 613 -50.166 8.529 -37.124 1.00 95.63 C +ATOM 9288 CE LYS 613 -48.904 7.932 -37.764 1.00 95.63 C +ATOM 9289 NZ LYS 613 -49.230 7.109 -38.944 1.00 95.63 N +ATOM 9303 N GLU 614 -54.421 5.975 -37.603 1.00 93.74 N +ATOM 9304 CA GLU 614 -54.425 5.016 -38.708 1.00 93.74 C +ATOM 9305 C GLU 614 -53.114 5.142 -39.523 1.00 93.74 C +ATOM 9306 O GLU 614 -52.528 6.228 -39.529 1.00 93.74 O +ATOM 9307 CB GLU 614 -55.668 5.229 -39.593 1.00 93.74 C +ATOM 9308 CG GLU 614 -57.000 5.031 -38.841 1.00 93.74 C +ATOM 9309 CD GLU 614 -58.241 5.153 -39.730 1.00 93.74 C +ATOM 9310 OE1 GLU 614 -59.295 5.528 -39.172 1.00 93.74 O +ATOM 9311 OE2 GLU 614 -58.136 4.844 -40.938 1.00 93.74 O +ATOM 9318 N PRO 615 -52.654 4.050 -40.184 1.00 91.58 N +ATOM 9319 CA PRO 615 -51.367 4.043 -40.917 1.00 91.58 C +ATOM 9320 C PRO 615 -51.171 5.133 -41.991 1.00 91.58 C +ATOM 9321 O PRO 615 -50.049 5.612 -42.151 1.00 91.58 O +ATOM 9322 CB PRO 615 -51.292 2.634 -41.527 1.00 91.58 C +ATOM 9323 CG PRO 615 -52.149 1.778 -40.613 1.00 91.58 C +ATOM 9324 CD PRO 615 -53.276 2.722 -40.218 1.00 91.58 C +ATOM 9332 N GLN 616 -52.263 5.508 -42.679 1.00 91.06 N +ATOM 9333 CA GLN 616 -52.302 6.534 -43.727 1.00 91.06 C +ATOM 9334 C GLN 616 -52.391 7.987 -43.212 1.00 91.06 C +ATOM 9335 O GLN 616 -52.063 8.894 -43.978 1.00 91.06 O +ATOM 9336 CB GLN 616 -53.372 6.206 -44.811 1.00 91.06 C +ATOM 9337 CG GLN 616 -54.417 5.098 -44.521 1.00 91.06 C +ATOM 9338 CD GLN 616 -55.408 5.394 -43.390 1.00 91.06 C +ATOM 9339 NE2 GLN 616 -56.327 4.459 -43.143 1.00 91.06 N +ATOM 9340 OE1 GLN 616 -55.347 6.434 -42.742 1.00 91.06 O +ATOM 9349 N ASP 617 -52.786 8.195 -41.942 1.00 90.98 N +ATOM 9350 CA ASP 617 -52.777 9.504 -41.272 1.00 90.98 C +ATOM 9351 C ASP 617 -51.355 9.946 -40.895 1.00 90.98 C +ATOM 9352 O ASP 617 -50.506 9.107 -40.595 1.00 90.98 O +ATOM 9353 CB ASP 617 -53.674 9.555 -40.011 1.00 90.98 C +ATOM 9354 CG ASP 617 -55.145 9.202 -40.241 1.00 90.98 C +ATOM 9355 OD1 ASP 617 -55.642 9.470 -41.357 1.00 90.98 O +ATOM 9356 OD2 ASP 617 -55.772 8.759 -39.253 1.00 90.98 O +ATOM 9361 N ASN 618 -51.150 11.273 -40.887 1.00 89.65 N +ATOM 9362 CA ASN 618 -49.896 11.938 -40.505 1.00 89.65 C +ATOM 9363 C ASN 618 -50.001 12.623 -39.126 1.00 89.65 C +ATOM 9364 O ASN 618 -49.029 13.248 -38.703 1.00 89.65 O +ATOM 9365 CB ASN 618 -49.518 12.976 -41.592 1.00 89.65 C +ATOM 9366 CG ASN 618 -49.254 12.373 -42.979 1.00 89.65 C +ATOM 9367 ND2 ASN 618 -49.535 13.140 -44.034 1.00 89.65 N +ATOM 9368 OD1 ASN 618 -48.784 11.244 -43.102 1.00 89.65 O +ATOM 9375 N PHE 619 -51.159 12.505 -38.456 1.00 89.76 N +ATOM 9376 CA PHE 619 -51.475 13.150 -37.181 1.00 89.76 C +ATOM 9377 C PHE 619 -52.072 12.120 -36.212 1.00 89.76 C +ATOM 9378 O PHE 619 -52.672 11.140 -36.653 1.00 89.76 O +ATOM 9379 CB PHE 619 -52.447 14.322 -37.448 1.00 89.76 C +ATOM 9380 CG PHE 619 -53.847 13.956 -37.923 1.00 89.76 C +ATOM 9381 CD1 PHE 619 -54.079 13.668 -39.286 1.00 89.76 C +ATOM 9382 CD2 PHE 619 -54.887 13.741 -36.992 1.00 89.76 C +ATOM 9383 CE1 PHE 619 -55.327 13.222 -39.700 1.00 89.76 C +ATOM 9384 CE2 PHE 619 -56.129 13.298 -37.428 1.00 89.76 C +ATOM 9385 CZ PHE 619 -56.347 13.042 -38.776 1.00 89.76 C +ATOM 9395 N TYR 620 -51.915 12.393 -34.907 1.00 95.46 N +ATOM 9396 CA TYR 620 -52.406 11.550 -33.817 1.00 95.46 C +ATOM 9397 C TYR 620 -53.693 12.113 -33.204 1.00 95.46 C +ATOM 9398 O TYR 620 -53.922 13.321 -33.233 1.00 95.46 O +ATOM 9399 CB TYR 620 -51.303 11.416 -32.750 1.00 95.46 C +ATOM 9400 CG TYR 620 -50.103 10.606 -33.203 1.00 95.46 C +ATOM 9401 CD1 TYR 620 -50.082 9.210 -33.006 1.00 95.46 C +ATOM 9402 CD2 TYR 620 -49.011 11.238 -33.834 1.00 95.46 C +ATOM 9403 CE1 TYR 620 -48.976 8.450 -33.431 1.00 95.46 C +ATOM 9404 CE2 TYR 620 -47.908 10.477 -34.266 1.00 95.46 C +ATOM 9405 OH TYR 620 -46.821 8.344 -34.480 1.00 95.46 O +ATOM 9406 CZ TYR 620 -47.889 9.083 -34.063 1.00 95.46 C +ATOM 9416 N THR 621 -54.493 11.200 -32.636 1.00 95.45 N +ATOM 9417 CA THR 621 -55.708 11.481 -31.878 1.00 95.45 C +ATOM 9418 C THR 621 -55.651 10.699 -30.549 1.00 95.45 C +ATOM 9419 O THR 621 -55.099 9.599 -30.495 1.00 95.45 O +ATOM 9420 CB THR 621 -56.982 11.073 -32.672 1.00 95.45 C +ATOM 9421 CG2 THR 621 -57.089 11.734 -34.055 1.00 95.45 C +ATOM 9422 OG1 THR 621 -57.132 9.674 -32.819 1.00 95.45 O +ATOM 9430 N SER 622 -56.217 11.299 -29.491 1.00 95.76 N +ATOM 9431 CA SER 622 -56.227 10.776 -28.123 1.00 95.76 C +ATOM 9432 C SER 622 -57.408 9.814 -27.864 1.00 95.76 C +ATOM 9433 O SER 622 -58.171 10.021 -26.919 1.00 95.76 O +ATOM 9434 CB SER 622 -56.155 11.981 -27.158 1.00 95.76 C +ATOM 9435 OG SER 622 -57.301 12.807 -27.236 1.00 95.76 O +ATOM 9441 N VAL 623 -57.532 8.782 -28.715 1.00 95.30 N +ATOM 9442 CA VAL 623 -58.595 7.769 -28.671 1.00 95.30 C +ATOM 9443 C VAL 623 -58.080 6.381 -28.236 1.00 95.30 C +ATOM 9444 O VAL 623 -58.902 5.503 -27.966 1.00 95.30 O +ATOM 9445 CB VAL 623 -59.264 7.604 -30.066 1.00 95.30 C +ATOM 9446 CG1 VAL 623 -59.886 8.922 -30.558 1.00 95.30 C +ATOM 9447 CG2 VAL 623 -58.364 6.977 -31.152 1.00 95.30 C +ATOM 9457 N GLY 624 -56.749 6.197 -28.185 1.00 97.44 N +ATOM 9458 CA GLY 624 -56.106 4.942 -27.810 1.00 97.44 C +ATOM 9459 C GLY 624 -56.229 4.690 -26.301 1.00 97.44 C +ATOM 9460 O GLY 624 -56.458 5.611 -25.513 1.00 97.44 O +ATOM 9464 N GLU 625 -56.039 3.424 -25.910 1.00 98.79 N +ATOM 9465 CA GLU 625 -56.131 2.967 -24.529 1.00 98.79 C +ATOM 9466 C GLU 625 -55.252 1.721 -24.349 1.00 98.79 C +ATOM 9467 O GLU 625 -55.232 0.856 -25.226 1.00 98.79 O +ATOM 9468 CB GLU 625 -57.614 2.715 -24.174 1.00 98.79 C +ATOM 9469 CG GLU 625 -57.904 2.345 -22.706 1.00 98.79 C +ATOM 9470 CD GLU 625 -59.384 2.026 -22.500 1.00 98.79 C +ATOM 9471 OE1 GLU 625 -59.680 0.845 -22.212 1.00 98.79 O +ATOM 9472 OE2 GLU 625 -60.201 2.960 -22.658 1.00 98.79 O +ATOM 9479 N VAL 626 -54.560 1.660 -23.202 1.00 98.75 N +ATOM 9480 CA VAL 626 -53.737 0.531 -22.774 1.00 98.75 C +ATOM 9481 C VAL 626 -54.192 0.117 -21.369 1.00 98.75 C +ATOM 9482 O VAL 626 -54.212 0.957 -20.473 1.00 98.75 O +ATOM 9483 CB VAL 626 -52.225 0.908 -22.714 1.00 98.75 C +ATOM 9484 CG1 VAL 626 -51.324 -0.149 -22.033 1.00 98.75 C +ATOM 9485 CG2 VAL 626 -51.673 1.198 -24.117 1.00 98.75 C +ATOM 9495 N ARG 627 -54.504 -1.174 -21.195 1.00 98.87 N +ATOM 9496 CA ARG 627 -54.817 -1.781 -19.903 1.00 98.87 C +ATOM 9497 C ARG 627 -53.650 -2.682 -19.497 1.00 98.87 C +ATOM 9498 O ARG 627 -53.210 -3.481 -20.321 1.00 98.87 O +ATOM 9499 CB ARG 627 -56.149 -2.551 -20.030 1.00 98.87 C +ATOM 9500 CG ARG 627 -56.669 -3.288 -18.776 1.00 98.87 C +ATOM 9501 CD ARG 627 -56.151 -4.727 -18.577 1.00 98.87 C +ATOM 9502 NE ARG 627 -56.620 -5.632 -19.642 1.00 98.87 N +ATOM 9503 NH1 ARG 627 -54.566 -6.654 -20.180 1.00 98.87 N +ATOM 9504 NH2 ARG 627 -56.492 -7.277 -21.267 1.00 98.87 N +ATOM 9505 CZ ARG 627 -55.887 -6.513 -20.350 1.00 98.87 C +ATOM 9519 N SER 628 -53.228 -2.582 -18.228 1.00 98.92 N +ATOM 9520 CA SER 628 -52.243 -3.460 -17.606 1.00 98.92 C +ATOM 9521 C SER 628 -52.821 -4.013 -16.300 1.00 98.92 C +ATOM 9522 O SER 628 -53.138 -3.237 -15.404 1.00 98.92 O +ATOM 9523 CB SER 628 -50.935 -2.690 -17.362 1.00 98.92 C +ATOM 9524 OG SER 628 -49.934 -3.562 -16.877 1.00 98.92 O +ATOM 9530 N GLN 629 -52.915 -5.344 -16.213 1.00 98.87 N +ATOM 9531 CA GLN 629 -53.379 -6.079 -15.040 1.00 98.87 C +ATOM 9532 C GLN 629 -52.382 -7.200 -14.730 1.00 98.87 C +ATOM 9533 O GLN 629 -51.685 -7.659 -15.633 1.00 98.87 O +ATOM 9534 CB GLN 629 -54.803 -6.613 -15.314 1.00 98.87 C +ATOM 9535 CG GLN 629 -54.902 -7.657 -16.453 1.00 98.87 C +ATOM 9536 CD GLN 629 -56.335 -8.029 -16.837 1.00 98.87 C +ATOM 9537 NE2 GLN 629 -56.478 -8.839 -17.888 1.00 98.87 N +ATOM 9538 OE1 GLN 629 -57.299 -7.597 -16.208 1.00 98.87 O +ATOM 9547 N GLY 630 -52.327 -7.638 -13.466 1.00 98.84 N +ATOM 9548 CA GLY 630 -51.363 -8.666 -13.102 1.00 98.84 C +ATOM 9549 C GLY 630 -51.307 -8.885 -11.594 1.00 98.84 C +ATOM 9550 O GLY 630 -52.165 -8.416 -10.847 1.00 98.84 O +ATOM 9554 N LEU 631 -50.267 -9.624 -11.182 1.00 98.91 N +ATOM 9555 CA LEU 631 -49.932 -9.964 -9.803 1.00 98.91 C +ATOM 9556 C LEU 631 -48.464 -9.599 -9.549 1.00 98.91 C +ATOM 9557 O LEU 631 -47.622 -9.808 -10.420 1.00 98.91 O +ATOM 9558 CB LEU 631 -50.180 -11.479 -9.588 1.00 98.91 C +ATOM 9559 CG LEU 631 -49.790 -12.060 -8.204 1.00 98.91 C +ATOM 9560 CD1 LEU 631 -50.514 -11.364 -7.029 1.00 98.91 C +ATOM 9561 CD2 LEU 631 -49.960 -13.594 -8.179 1.00 98.91 C +ATOM 9573 N GLU 632 -48.187 -9.112 -8.335 1.00 98.96 N +ATOM 9574 CA GLU 632 -46.846 -8.875 -7.812 1.00 98.96 C +ATOM 9575 C GLU 632 -46.745 -9.539 -6.442 1.00 98.96 C +ATOM 9576 O GLU 632 -47.614 -9.319 -5.601 1.00 98.96 O +ATOM 9577 CB GLU 632 -46.601 -7.363 -7.685 1.00 98.96 C +ATOM 9578 CG GLU 632 -46.382 -6.680 -9.044 1.00 98.96 C +ATOM 9579 CD GLU 632 -46.316 -5.159 -8.952 1.00 98.96 C +ATOM 9580 OE1 GLU 632 -46.292 -4.542 -10.035 1.00 98.96 O +ATOM 9581 OE2 GLU 632 -46.333 -4.616 -7.826 1.00 98.96 O +ATOM 9588 N LEU 633 -45.670 -10.308 -6.240 1.00 98.94 N +ATOM 9589 CA LEU 633 -45.312 -10.918 -4.966 1.00 98.94 C +ATOM 9590 C LEU 633 -43.928 -10.399 -4.566 1.00 98.94 C +ATOM 9591 O LEU 633 -43.062 -10.250 -5.430 1.00 98.94 O +ATOM 9592 CB LEU 633 -45.278 -12.457 -5.109 1.00 98.94 C +ATOM 9593 CG LEU 633 -46.615 -13.119 -5.519 1.00 98.94 C +ATOM 9594 CD1 LEU 633 -46.426 -14.626 -5.793 1.00 98.94 C +ATOM 9595 CD2 LEU 633 -47.743 -12.850 -4.502 1.00 98.94 C +ATOM 9607 N GLU 634 -43.742 -10.169 -3.259 1.00 98.91 N +ATOM 9608 CA GLU 634 -42.468 -9.768 -2.667 1.00 98.91 C +ATOM 9609 C GLU 634 -42.312 -10.513 -1.336 1.00 98.91 C +ATOM 9610 O GLU 634 -43.308 -10.754 -0.653 1.00 98.91 O +ATOM 9611 CB GLU 634 -42.445 -8.234 -2.495 1.00 98.91 C +ATOM 9612 CG GLU 634 -41.025 -7.643 -2.385 1.00 98.91 C +ATOM 9613 CD GLU 634 -40.995 -6.111 -2.413 1.00 98.91 C +ATOM 9614 OE1 GLU 634 -39.884 -5.576 -2.614 1.00 98.91 O +ATOM 9615 OE2 GLU 634 -42.068 -5.486 -2.254 1.00 98.91 O +ATOM 9622 N ALA 635 -41.068 -10.885 -1.003 1.00 98.80 N +ATOM 9623 CA ALA 635 -40.765 -11.722 0.151 1.00 98.80 C +ATOM 9624 C ALA 635 -39.351 -11.438 0.658 1.00 98.80 C +ATOM 9625 O ALA 635 -38.410 -12.126 0.266 1.00 98.80 O +ATOM 9626 CB ALA 635 -40.965 -13.204 -0.221 1.00 98.80 C +ATOM 9632 N HIS 636 -39.239 -10.449 1.558 1.00 98.43 N +ATOM 9633 CA HIS 636 -38.064 -10.256 2.403 1.00 98.43 C +ATOM 9634 C HIS 636 -38.157 -11.219 3.591 1.00 98.43 C +ATOM 9635 O HIS 636 -39.159 -11.198 4.306 1.00 98.43 O +ATOM 9636 CB HIS 636 -37.973 -8.791 2.867 1.00 98.43 C +ATOM 9637 CG HIS 636 -37.535 -7.849 1.774 1.00 98.43 C +ATOM 9638 CD2 HIS 636 -36.296 -7.332 1.470 1.00 98.43 C +ATOM 9639 ND1 HIS 636 -38.399 -7.325 0.827 1.00 98.43 N +ATOM 9640 CE1 HIS 636 -37.669 -6.556 0.013 1.00 98.43 C +ATOM 9641 NE2 HIS 636 -36.383 -6.519 0.340 1.00 98.43 N +ATOM 9649 N THR 637 -37.130 -12.061 3.755 1.00 97.42 N +ATOM 9650 CA THR 637 -37.090 -13.100 4.776 1.00 97.42 C +ATOM 9651 C THR 637 -35.693 -13.108 5.404 1.00 97.42 C +ATOM 9652 O THR 637 -34.741 -13.540 4.757 1.00 97.42 O +ATOM 9653 CB THR 637 -37.384 -14.505 4.178 1.00 97.42 C +ATOM 9654 CG2 THR 637 -37.304 -15.663 5.190 1.00 97.42 C +ATOM 9655 OG1 THR 637 -38.677 -14.524 3.610 1.00 97.42 O +ATOM 9663 N GLN 638 -35.597 -12.635 6.654 1.00 92.50 N +ATOM 9664 CA GLN 638 -34.368 -12.686 7.439 1.00 92.50 C +ATOM 9665 C GLN 638 -34.621 -13.663 8.589 1.00 92.50 C +ATOM 9666 O GLN 638 -35.217 -13.287 9.598 1.00 92.50 O +ATOM 9667 CB GLN 638 -33.971 -11.274 7.915 1.00 92.50 C +ATOM 9668 CG GLN 638 -33.759 -10.284 6.751 1.00 92.50 C +ATOM 9669 CD GLN 638 -33.293 -8.904 7.213 1.00 92.50 C +ATOM 9670 NE2 GLN 638 -33.825 -7.852 6.593 1.00 92.50 N +ATOM 9671 OE1 GLN 638 -32.441 -8.783 8.091 1.00 92.50 O +ATOM 9680 N LEU 639 -34.185 -14.918 8.380 1.00 89.16 N +ATOM 9681 CA LEU 639 -34.279 -16.033 9.332 1.00 89.16 C +ATOM 9682 C LEU 639 -33.497 -15.777 10.634 1.00 89.16 C +ATOM 9683 O LEU 639 -33.881 -16.280 11.689 1.00 89.16 O +ATOM 9684 CB LEU 639 -33.739 -17.316 8.655 1.00 89.16 C +ATOM 9685 CG LEU 639 -34.534 -17.785 7.416 1.00 89.16 C +ATOM 9686 CD1 LEU 639 -33.800 -18.937 6.696 1.00 89.16 C +ATOM 9687 CD2 LEU 639 -35.993 -18.149 7.768 1.00 89.16 C +ATOM 9699 N SER 640 -32.424 -14.988 10.506 1.00 87.25 N +ATOM 9700 CA SER 640 -31.487 -14.561 11.534 1.00 87.25 C +ATOM 9701 C SER 640 -30.605 -13.454 10.934 1.00 87.25 C +ATOM 9702 O SER 640 -30.608 -13.253 9.717 1.00 87.25 O +ATOM 9703 CB SER 640 -30.691 -15.778 12.064 1.00 87.25 C +ATOM 9704 OG SER 640 -29.999 -16.460 11.035 1.00 87.25 O +ATOM 9710 N ASP 641 -29.858 -12.752 11.801 1.00 87.06 N +ATOM 9711 CA ASP 641 -28.961 -11.640 11.441 1.00 87.06 C +ATOM 9712 C ASP 641 -27.853 -12.033 10.439 1.00 87.06 C +ATOM 9713 O ASP 641 -27.384 -11.173 9.695 1.00 87.06 O +ATOM 9714 CB ASP 641 -28.317 -10.951 12.673 1.00 87.06 C +ATOM 9715 CG ASP 641 -29.259 -10.633 13.844 1.00 87.06 C +ATOM 9716 OD1 ASP 641 -30.487 -10.557 13.622 1.00 87.06 O +ATOM 9717 OD2 ASP 641 -28.716 -10.414 14.949 1.00 87.06 O +ATOM 9722 N ASN 642 -27.476 -13.324 10.436 1.00 94.62 N +ATOM 9723 CA ASN 642 -26.441 -13.899 9.581 1.00 94.62 C +ATOM 9724 C ASN 642 -26.958 -14.458 8.237 1.00 94.62 C +ATOM 9725 O ASN 642 -26.132 -14.954 7.477 1.00 94.62 O +ATOM 9726 CB ASN 642 -25.619 -14.929 10.404 1.00 94.62 C +ATOM 9727 CG ASN 642 -26.289 -16.267 10.766 1.00 94.62 C +ATOM 9728 ND2 ASN 642 -25.755 -16.943 11.783 1.00 94.62 N +ATOM 9729 OD1 ASN 642 -27.255 -16.705 10.148 1.00 94.62 O +ATOM 9736 N LEU 643 -28.277 -14.412 7.966 1.00 97.45 N +ATOM 9737 CA LEU 643 -28.860 -14.965 6.742 1.00 97.45 C +ATOM 9738 C LEU 643 -30.077 -14.146 6.304 1.00 97.45 C +ATOM 9739 O LEU 643 -31.139 -14.236 6.920 1.00 97.45 O +ATOM 9740 CB LEU 643 -29.162 -16.474 6.912 1.00 97.45 C +ATOM 9741 CG LEU 643 -29.756 -17.172 5.662 1.00 97.45 C +ATOM 9742 CD1 LEU 643 -28.938 -16.930 4.373 1.00 97.45 C +ATOM 9743 CD2 LEU 643 -29.978 -18.674 5.922 1.00 97.45 C +ATOM 9755 N LYS 644 -29.878 -13.385 5.219 1.00 97.94 N +ATOM 9756 CA LYS 644 -30.862 -12.505 4.602 1.00 97.94 C +ATOM 9757 C LYS 644 -31.263 -13.104 3.248 1.00 97.94 C +ATOM 9758 O LYS 644 -30.395 -13.579 2.516 1.00 97.94 O +ATOM 9759 CB LYS 644 -30.212 -11.124 4.369 1.00 97.94 C +ATOM 9760 CG LYS 644 -29.647 -10.442 5.637 1.00 97.94 C +ATOM 9761 CD LYS 644 -28.603 -9.344 5.353 1.00 97.94 C +ATOM 9762 CE LYS 644 -27.381 -9.861 4.570 1.00 97.94 C +ATOM 9763 NZ LYS 644 -26.232 -8.946 4.633 1.00 97.94 N +ATOM 9777 N LEU 645 -32.560 -13.025 2.927 1.00 98.35 N +ATOM 9778 CA LEU 645 -33.117 -13.355 1.618 1.00 98.35 C +ATOM 9779 C LEU 645 -34.068 -12.233 1.189 1.00 98.35 C +ATOM 9780 O LEU 645 -34.701 -11.593 2.031 1.00 98.35 O +ATOM 9781 CB LEU 645 -33.883 -14.702 1.631 1.00 98.35 C +ATOM 9782 CG LEU 645 -33.017 -15.970 1.783 1.00 98.35 C +ATOM 9783 CD1 LEU 645 -32.664 -16.267 3.255 1.00 98.35 C +ATOM 9784 CD2 LEU 645 -33.697 -17.182 1.116 1.00 98.35 C +ATOM 9796 N LEU 646 -34.181 -12.071 -0.134 1.00 97.83 N +ATOM 9797 CA LEU 646 -35.160 -11.218 -0.791 1.00 97.83 C +ATOM 9798 C LEU 646 -35.565 -11.930 -2.090 1.00 97.83 C +ATOM 9799 O LEU 646 -34.698 -12.299 -2.883 1.00 97.83 O +ATOM 9800 CB LEU 646 -34.607 -9.773 -0.934 1.00 97.83 C +ATOM 9801 CG LEU 646 -33.474 -9.566 -1.968 1.00 97.83 C +ATOM 9802 CD1 LEU 646 -34.027 -9.308 -3.383 1.00 97.83 C +ATOM 9803 CD2 LEU 646 -32.491 -8.455 -1.553 1.00 97.83 C +ATOM 9815 N GLY 647 -36.873 -12.155 -2.256 1.00 98.78 N +ATOM 9816 CA GLY 647 -37.448 -12.846 -3.404 1.00 98.78 C +ATOM 9817 C GLY 647 -38.585 -12.003 -3.973 1.00 98.78 C +ATOM 9818 O GLY 647 -39.153 -11.151 -3.285 1.00 98.78 O +ATOM 9822 N SER 648 -38.932 -12.275 -5.240 1.00 98.91 N +ATOM 9823 CA SER 648 -40.034 -11.626 -5.937 1.00 98.91 C +ATOM 9824 C SER 648 -40.540 -12.483 -7.107 1.00 98.91 C +ATOM 9825 O SER 648 -39.802 -13.305 -7.652 1.00 98.91 O +ATOM 9826 CB SER 648 -39.632 -10.185 -6.344 1.00 98.91 C +ATOM 9827 OG SER 648 -39.009 -10.080 -7.611 1.00 98.91 O +ATOM 9833 N TYR 649 -41.797 -12.225 -7.487 1.00 98.95 N +ATOM 9834 CA TYR 649 -42.441 -12.746 -8.686 1.00 98.95 C +ATOM 9835 C TYR 649 -43.358 -11.658 -9.250 1.00 98.95 C +ATOM 9836 O TYR 649 -43.940 -10.888 -8.486 1.00 98.95 O +ATOM 9837 CB TYR 649 -43.177 -14.072 -8.380 1.00 98.95 C +ATOM 9838 CG TYR 649 -44.062 -14.598 -9.500 1.00 98.95 C +ATOM 9839 CD1 TYR 649 -45.442 -14.298 -9.519 1.00 98.95 C +ATOM 9840 CD2 TYR 649 -43.501 -15.360 -10.545 1.00 98.95 C +ATOM 9841 CE1 TYR 649 -46.252 -14.753 -10.578 1.00 98.95 C +ATOM 9842 CE2 TYR 649 -44.311 -15.821 -11.601 1.00 98.95 C +ATOM 9843 OH TYR 649 -46.476 -15.975 -12.631 1.00 98.95 O +ATOM 9844 CZ TYR 649 -45.687 -15.519 -11.616 1.00 98.95 C +ATOM 9854 N THR 650 -43.477 -11.634 -10.583 1.00 98.95 N +ATOM 9855 CA THR 650 -44.357 -10.734 -11.313 1.00 98.95 C +ATOM 9856 C THR 650 -45.069 -11.505 -12.432 1.00 98.95 C +ATOM 9857 O THR 650 -44.434 -12.281 -13.148 1.00 98.95 O +ATOM 9858 CB THR 650 -43.571 -9.574 -11.977 1.00 98.95 C +ATOM 9859 CG2 THR 650 -44.450 -8.517 -12.669 1.00 98.95 C +ATOM 9860 OG1 THR 650 -42.789 -8.912 -11.006 1.00 98.95 O +ATOM 9868 N TYR 651 -46.364 -11.214 -12.583 1.00 98.95 N +ATOM 9869 CA TYR 651 -47.161 -11.481 -13.771 1.00 98.95 C +ATOM 9870 C TYR 651 -47.691 -10.125 -14.257 1.00 98.95 C +ATOM 9871 O TYR 651 -48.166 -9.350 -13.429 1.00 98.95 O +ATOM 9872 CB TYR 651 -48.295 -12.465 -13.415 1.00 98.95 C +ATOM 9873 CG TYR 651 -49.300 -12.726 -14.526 1.00 98.95 C +ATOM 9874 CD1 TYR 651 -50.640 -12.307 -14.397 1.00 98.95 C +ATOM 9875 CD2 TYR 651 -48.889 -13.383 -15.703 1.00 98.95 C +ATOM 9876 CE1 TYR 651 -51.558 -12.534 -15.442 1.00 98.95 C +ATOM 9877 CE2 TYR 651 -49.807 -13.623 -16.743 1.00 98.95 C +ATOM 9878 OH TYR 651 -52.027 -13.426 -17.628 1.00 98.95 O +ATOM 9879 CZ TYR 651 -51.142 -13.196 -16.615 1.00 98.95 C +ATOM 9889 N THR 652 -47.598 -9.857 -15.570 1.00 98.90 N +ATOM 9890 CA THR 652 -48.068 -8.609 -16.175 1.00 98.90 C +ATOM 9891 C THR 652 -48.703 -8.913 -17.540 1.00 98.90 C +ATOM 9892 O THR 652 -47.998 -9.070 -18.536 1.00 98.90 O +ATOM 9893 CB THR 652 -46.928 -7.560 -16.356 1.00 98.90 C +ATOM 9894 CG2 THR 652 -47.334 -6.255 -17.074 1.00 98.90 C +ATOM 9895 OG1 THR 652 -46.420 -7.185 -15.091 1.00 98.90 O +ATOM 9903 N ASP 653 -50.041 -8.956 -17.558 1.00 98.82 N +ATOM 9904 CA ASP 653 -50.854 -8.973 -18.767 1.00 98.82 C +ATOM 9905 C ASP 653 -51.159 -7.513 -19.139 1.00 98.82 C +ATOM 9906 O ASP 653 -52.061 -6.916 -18.552 1.00 98.82 O +ATOM 9907 CB ASP 653 -52.145 -9.800 -18.553 1.00 98.82 C +ATOM 9908 CG ASP 653 -53.039 -9.908 -19.793 1.00 98.82 C +ATOM 9909 OD1 ASP 653 -52.478 -10.069 -20.900 1.00 98.82 O +ATOM 9910 OD2 ASP 653 -54.275 -9.894 -19.604 1.00 98.82 O +ATOM 9915 N ILE 654 -50.401 -6.973 -20.104 1.00 98.82 N +ATOM 9916 CA ILE 654 -50.622 -5.641 -20.662 1.00 98.82 C +ATOM 9917 C ILE 654 -51.016 -5.757 -22.145 1.00 98.82 C +ATOM 9918 O ILE 654 -50.490 -6.619 -22.848 1.00 98.82 O +ATOM 9919 CB ILE 654 -49.393 -4.709 -20.452 1.00 98.82 C +ATOM 9920 CG1 ILE 654 -49.678 -3.255 -20.891 1.00 98.82 C +ATOM 9921 CG2 ILE 654 -48.081 -5.235 -21.067 1.00 98.82 C +ATOM 9922 CD1 ILE 654 -48.646 -2.232 -20.398 1.00 98.82 C +ATOM 9934 N THR 655 -51.990 -4.929 -22.562 1.00 98.89 N +ATOM 9935 CA THR 655 -52.673 -5.025 -23.852 1.00 98.89 C +ATOM 9936 C THR 655 -53.141 -3.633 -24.322 1.00 98.89 C +ATOM 9937 O THR 655 -53.674 -2.874 -23.513 1.00 98.89 O +ATOM 9938 CB THR 655 -53.939 -5.933 -23.746 1.00 98.89 C +ATOM 9939 CG2 THR 655 -54.757 -6.086 -25.041 1.00 98.89 C +ATOM 9940 OG1 THR 655 -53.585 -7.238 -23.329 1.00 98.89 O +ATOM 9948 N TYR 656 -52.998 -3.362 -25.632 1.00 98.57 N +ATOM 9949 CA TYR 656 -53.638 -2.251 -26.346 1.00 98.57 C +ATOM 9950 C TYR 656 -55.135 -2.562 -26.538 1.00 98.57 C +ATOM 9951 O TYR 656 -55.490 -3.237 -27.502 1.00 98.57 O +ATOM 9952 CB TYR 656 -52.971 -2.071 -27.732 1.00 98.57 C +ATOM 9953 CG TYR 656 -51.521 -1.621 -27.754 1.00 98.57 C +ATOM 9954 CD1 TYR 656 -51.178 -0.316 -27.350 1.00 98.57 C +ATOM 9955 CD2 TYR 656 -50.516 -2.489 -28.230 1.00 98.57 C +ATOM 9956 CE1 TYR 656 -49.833 0.102 -27.376 1.00 98.57 C +ATOM 9957 CE2 TYR 656 -49.173 -2.069 -28.272 1.00 98.57 C +ATOM 9958 OH TYR 656 -47.525 -0.389 -27.808 1.00 98.57 O +ATOM 9959 CZ TYR 656 -48.830 -0.778 -27.827 1.00 98.57 C +ATOM 9969 N THR 657 -55.992 -2.106 -25.613 1.00 98.65 N +ATOM 9970 CA THR 657 -57.439 -2.355 -25.665 1.00 98.65 C +ATOM 9971 C THR 657 -58.164 -1.528 -26.750 1.00 98.65 C +ATOM 9972 O THR 657 -59.193 -1.987 -27.247 1.00 98.65 O +ATOM 9973 CB THR 657 -58.111 -2.052 -24.304 1.00 98.65 C +ATOM 9974 CG2 THR 657 -57.574 -2.937 -23.175 1.00 98.65 C +ATOM 9975 OG1 THR 657 -57.937 -0.697 -23.944 1.00 98.65 O +ATOM 9983 N LYS 658 -57.611 -0.359 -27.116 1.00 98.39 N +ATOM 9984 CA LYS 658 -58.085 0.489 -28.208 1.00 98.39 C +ATOM 9985 C LYS 658 -56.852 1.012 -28.951 1.00 98.39 C +ATOM 9986 O LYS 658 -55.960 1.563 -28.303 1.00 98.39 O +ATOM 9987 CB LYS 658 -58.923 1.673 -27.665 1.00 98.39 C +ATOM 9988 CG LYS 658 -60.172 1.270 -26.861 1.00 98.39 C +ATOM 9989 CD LYS 658 -60.867 2.470 -26.203 1.00 98.39 C +ATOM 9990 CE LYS 658 -62.038 2.045 -25.305 1.00 98.39 C +ATOM 9991 NZ LYS 658 -62.456 3.142 -24.416 1.00 98.39 N +ATOM 10005 N SER 659 -56.830 0.866 -30.286 1.00 97.37 N +ATOM 10006 CA SER 659 -55.792 1.447 -31.140 1.00 97.37 C +ATOM 10007 C SER 659 -56.233 1.424 -32.615 1.00 97.37 C +ATOM 10008 O SER 659 -56.873 0.467 -33.051 1.00 97.37 O +ATOM 10009 CB SER 659 -54.432 0.737 -30.928 1.00 97.37 C +ATOM 10010 OG SER 659 -53.385 1.549 -31.415 1.00 97.37 O +ATOM 10016 N LEU 660 -55.866 2.484 -33.351 1.00 96.71 N +ATOM 10017 CA LEU 660 -56.217 2.707 -34.756 1.00 96.71 C +ATOM 10018 C LEU 660 -55.181 2.140 -35.747 1.00 96.71 C +ATOM 10019 O LEU 660 -55.530 1.947 -36.911 1.00 96.71 O +ATOM 10020 CB LEU 660 -56.340 4.227 -34.995 1.00 96.71 C +ATOM 10021 CG LEU 660 -57.452 4.962 -34.223 1.00 96.71 C +ATOM 10022 CD1 LEU 660 -57.328 6.482 -34.463 1.00 96.71 C +ATOM 10023 CD2 LEU 660 -58.859 4.428 -34.568 1.00 96.71 C +ATOM 10035 N ASP 661 -53.937 1.906 -35.293 1.00 95.26 N +ATOM 10036 CA ASP 661 -52.797 1.467 -36.118 1.00 95.26 C +ATOM 10037 C ASP 661 -52.895 0.005 -36.612 1.00 95.26 C +ATOM 10038 O ASP 661 -52.114 -0.381 -37.481 1.00 95.26 O +ATOM 10039 CB ASP 661 -51.423 1.711 -35.431 1.00 95.26 C +ATOM 10040 CG ASP 661 -51.280 1.199 -33.991 1.00 95.26 C +ATOM 10041 OD1 ASP 661 -52.141 0.404 -33.553 1.00 95.26 O +ATOM 10042 OD2 ASP 661 -50.268 1.569 -33.358 1.00 95.26 O +ATOM 10047 N GLY 662 -53.833 -0.772 -36.046 1.00 95.80 N +ATOM 10048 CA GLY 662 -54.016 -2.197 -36.312 1.00 95.80 C +ATOM 10049 C GLY 662 -53.405 -3.063 -35.198 1.00 95.80 C +ATOM 10050 O GLY 662 -53.531 -4.284 -35.268 1.00 95.80 O +ATOM 10054 N ASN 663 -52.775 -2.457 -34.172 1.00 97.43 N +ATOM 10055 CA ASN 663 -52.164 -3.153 -33.032 1.00 97.43 C +ATOM 10056 C ASN 663 -53.122 -3.272 -31.832 1.00 97.43 C +ATOM 10057 O ASN 663 -52.654 -3.486 -30.716 1.00 97.43 O +ATOM 10058 CB ASN 663 -50.824 -2.480 -32.632 1.00 97.43 C +ATOM 10059 CG ASN 663 -49.795 -2.437 -33.766 1.00 97.43 C +ATOM 10060 ND2 ASN 663 -48.998 -1.371 -33.835 1.00 97.43 N +ATOM 10061 OD1 ASN 663 -49.704 -3.369 -34.560 1.00 97.43 O +ATOM 10068 N GLN 664 -54.443 -3.171 -32.061 1.00 98.15 N +ATOM 10069 CA GLN 664 -55.464 -3.438 -31.049 1.00 98.15 C +ATOM 10070 C GLN 664 -55.541 -4.949 -30.750 1.00 98.15 C +ATOM 10071 O GLN 664 -55.621 -5.754 -31.677 1.00 98.15 O +ATOM 10072 CB GLN 664 -56.810 -2.847 -31.512 1.00 98.15 C +ATOM 10073 CG GLN 664 -57.950 -3.003 -30.485 1.00 98.15 C +ATOM 10074 CD GLN 664 -59.226 -2.271 -30.906 1.00 98.15 C +ATOM 10075 NE2 GLN 664 -60.377 -2.934 -30.779 1.00 98.15 N +ATOM 10076 OE1 GLN 664 -59.183 -1.111 -31.311 1.00 98.15 O +ATOM 10085 N GLY 665 -55.502 -5.288 -29.453 1.00 98.35 N +ATOM 10086 CA GLY 665 -55.475 -6.655 -28.939 1.00 98.35 C +ATOM 10087 C GLY 665 -54.040 -7.176 -28.743 1.00 98.35 C +ATOM 10088 O GLY 665 -53.875 -8.217 -28.108 1.00 98.35 O +ATOM 10092 N HIS 666 -53.011 -6.469 -29.248 1.00 98.65 N +ATOM 10093 CA HIS 666 -51.598 -6.821 -29.077 1.00 98.65 C +ATOM 10094 C HIS 666 -51.068 -6.368 -27.710 1.00 98.65 C +ATOM 10095 O HIS 666 -51.596 -5.422 -27.127 1.00 98.65 O +ATOM 10096 CB HIS 666 -50.758 -6.183 -30.202 1.00 98.65 C +ATOM 10097 CG HIS 666 -51.050 -6.671 -31.601 1.00 98.65 C +ATOM 10098 CD2 HIS 666 -51.974 -7.559 -32.107 1.00 98.65 C +ATOM 10099 ND1 HIS 666 -50.326 -6.230 -32.693 1.00 98.65 N +ATOM 10100 CE1 HIS 666 -50.830 -6.831 -33.773 1.00 98.65 C +ATOM 10101 NE2 HIS 666 -51.831 -7.656 -33.493 1.00 98.65 N +ATOM 10109 N THR 667 -50.005 -7.040 -27.248 1.00 98.71 N +ATOM 10110 CA THR 667 -49.275 -6.708 -26.028 1.00 98.71 C +ATOM 10111 C THR 667 -48.085 -5.791 -26.400 1.00 98.71 C +ATOM 10112 O THR 667 -47.285 -6.197 -27.245 1.00 98.71 O +ATOM 10113 CB THR 667 -48.712 -8.014 -25.400 1.00 98.71 C +ATOM 10114 CG2 THR 667 -47.660 -7.851 -24.283 1.00 98.71 C +ATOM 10115 OG1 THR 667 -49.791 -8.746 -24.851 1.00 98.71 O +ATOM 10123 N PRO 668 -47.974 -4.591 -25.776 1.00 98.53 N +ATOM 10124 CA PRO 668 -46.784 -3.719 -25.877 1.00 98.53 C +ATOM 10125 C PRO 668 -45.423 -4.419 -25.705 1.00 98.53 C +ATOM 10126 O PRO 668 -45.256 -5.223 -24.788 1.00 98.53 O +ATOM 10127 CB PRO 668 -47.002 -2.681 -24.763 1.00 98.53 C +ATOM 10128 CG PRO 668 -48.508 -2.558 -24.649 1.00 98.53 C +ATOM 10129 CD PRO 668 -48.995 -3.975 -24.922 1.00 98.53 C +ATOM 10137 N ASN 669 -44.479 -4.073 -26.594 1.00 98.38 N +ATOM 10138 CA ASN 669 -43.063 -4.456 -26.538 1.00 98.38 C +ATOM 10139 C ASN 669 -42.371 -4.004 -25.238 1.00 98.38 C +ATOM 10140 O ASN 669 -42.791 -3.015 -24.634 1.00 98.38 O +ATOM 10141 CB ASN 669 -42.324 -3.893 -27.779 1.00 98.38 C +ATOM 10142 CG ASN 669 -42.523 -2.388 -28.011 1.00 98.38 C +ATOM 10143 ND2 ASN 669 -41.632 -1.555 -27.475 1.00 98.38 N +ATOM 10144 OD1 ASN 669 -43.481 -1.981 -28.657 1.00 98.38 O +ATOM 10151 N GLN 670 -41.296 -4.721 -24.864 1.00 98.64 N +ATOM 10152 CA GLN 670 -40.443 -4.446 -23.694 1.00 98.64 C +ATOM 10153 C GLN 670 -41.186 -4.639 -22.349 1.00 98.64 C +ATOM 10154 O GLN 670 -40.808 -4.020 -21.355 1.00 98.64 O +ATOM 10155 CB GLN 670 -39.793 -3.037 -23.790 1.00 98.64 C +ATOM 10156 CG GLN 670 -39.083 -2.741 -25.132 1.00 98.64 C +ATOM 10157 CD GLN 670 -38.662 -1.280 -25.295 1.00 98.64 C +ATOM 10158 NE2 GLN 670 -39.569 -0.341 -25.013 1.00 98.64 N +ATOM 10159 OE1 GLN 670 -37.539 -0.999 -25.701 1.00 98.64 O +ATOM 10168 N ALA 671 -42.228 -5.488 -22.341 1.00 98.64 N +ATOM 10169 CA ALA 671 -43.049 -5.800 -21.176 1.00 98.64 C +ATOM 10170 C ALA 671 -43.153 -7.333 -21.059 1.00 98.64 C +ATOM 10171 O ALA 671 -44.001 -7.922 -21.733 1.00 98.64 O +ATOM 10172 CB ALA 671 -44.426 -5.133 -21.332 1.00 98.64 C +ATOM 10178 N PRO 672 -42.275 -7.962 -20.239 1.00 98.66 N +ATOM 10179 CA PRO 672 -42.330 -9.414 -19.979 1.00 98.66 C +ATOM 10180 C PRO 672 -43.618 -9.825 -19.248 1.00 98.66 C +ATOM 10181 O PRO 672 -43.943 -9.225 -18.222 1.00 98.66 O +ATOM 10182 CB PRO 672 -41.088 -9.692 -19.109 1.00 98.66 C +ATOM 10183 CG PRO 672 -40.204 -8.462 -19.216 1.00 98.66 C +ATOM 10184 CD PRO 672 -41.180 -7.334 -19.497 1.00 98.66 C +ATOM 10192 N LYS 673 -44.313 -10.846 -19.781 1.00 98.80 N +ATOM 10193 CA LYS 673 -45.501 -11.423 -19.144 1.00 98.80 C +ATOM 10194 C LYS 673 -45.202 -12.151 -17.819 1.00 98.80 C +ATOM 10195 O LYS 673 -46.075 -12.177 -16.955 1.00 98.80 O +ATOM 10196 CB LYS 673 -46.314 -12.252 -20.166 1.00 98.80 C +ATOM 10197 CG LYS 673 -47.517 -13.017 -19.568 1.00 98.80 C +ATOM 10198 CD LYS 673 -48.671 -13.266 -20.551 1.00 98.80 C +ATOM 10199 CE LYS 673 -49.609 -12.052 -20.650 1.00 98.80 C +ATOM 10200 NZ LYS 673 -50.764 -12.314 -21.524 1.00 98.80 N +ATOM 10214 N HIS 674 -43.972 -12.662 -17.660 1.00 98.92 N +ATOM 10215 CA HIS 674 -43.469 -13.223 -16.410 1.00 98.92 C +ATOM 10216 C HIS 674 -42.090 -12.635 -16.106 1.00 98.92 C +ATOM 10217 O HIS 674 -41.280 -12.476 -17.016 1.00 98.92 O +ATOM 10218 CB HIS 674 -43.387 -14.758 -16.516 1.00 98.92 C +ATOM 10219 CG HIS 674 -44.721 -15.447 -16.650 1.00 98.92 C +ATOM 10220 CD2 HIS 674 -45.279 -16.166 -17.684 1.00 98.92 C +ATOM 10221 ND1 HIS 674 -45.673 -15.438 -15.645 1.00 98.92 N +ATOM 10222 CE1 HIS 674 -46.722 -16.134 -16.092 1.00 98.92 C +ATOM 10223 NE2 HIS 674 -46.557 -16.598 -17.325 1.00 98.92 N +ATOM 10231 N MET 675 -41.841 -12.371 -14.818 1.00 98.94 N +ATOM 10232 CA MET 675 -40.515 -12.120 -14.255 1.00 98.94 C +ATOM 10233 C MET 675 -40.465 -12.782 -12.874 1.00 98.94 C +ATOM 10234 O MET 675 -41.502 -12.961 -12.234 1.00 98.94 O +ATOM 10235 CB MET 675 -40.191 -10.609 -14.148 1.00 98.94 C +ATOM 10236 CG MET 675 -40.316 -9.819 -15.459 1.00 98.94 C +ATOM 10237 SD MET 675 -39.875 -8.064 -15.352 1.00 98.94 S +ATOM 10238 CE MET 675 -41.344 -7.421 -14.507 1.00 98.94 C +ATOM 10248 N ALA 676 -39.249 -13.110 -12.428 1.00 98.94 N +ATOM 10249 CA ALA 676 -38.996 -13.648 -11.097 1.00 98.94 C +ATOM 10250 C ALA 676 -37.557 -13.345 -10.693 1.00 98.94 C +ATOM 10251 O ALA 676 -36.689 -13.207 -11.554 1.00 98.94 O +ATOM 10252 CB ALA 676 -39.284 -15.159 -11.064 1.00 98.94 C +ATOM 10258 N SER 677 -37.326 -13.267 -9.379 1.00 98.90 N +ATOM 10259 CA SER 677 -36.000 -13.058 -8.820 1.00 98.90 C +ATOM 10260 C SER 677 -35.905 -13.699 -7.433 1.00 98.90 C +ATOM 10261 O SER 677 -36.914 -13.860 -6.746 1.00 98.90 O +ATOM 10262 CB SER 677 -35.650 -11.552 -8.843 1.00 98.90 C +ATOM 10263 OG SER 677 -36.193 -10.846 -7.745 1.00 98.90 O +ATOM 10269 N LEU 678 -34.668 -14.029 -7.048 1.00 98.91 N +ATOM 10270 CA LEU 678 -34.327 -14.540 -5.731 1.00 98.91 C +ATOM 10271 C LEU 678 -32.851 -14.248 -5.493 1.00 98.91 C +ATOM 10272 O LEU 678 -32.028 -14.636 -6.315 1.00 98.91 O +ATOM 10273 CB LEU 678 -34.666 -16.048 -5.624 1.00 98.91 C +ATOM 10274 CG LEU 678 -34.304 -16.715 -4.274 1.00 98.91 C +ATOM 10275 CD1 LEU 678 -35.016 -16.049 -3.076 1.00 98.91 C +ATOM 10276 CD2 LEU 678 -34.551 -18.238 -4.332 1.00 98.91 C +ATOM 10288 N TRP 679 -32.558 -13.600 -4.362 1.00 98.86 N +ATOM 10289 CA TRP 679 -31.218 -13.331 -3.863 1.00 98.86 C +ATOM 10290 C TRP 679 -31.138 -13.792 -2.405 1.00 98.86 C +ATOM 10291 O TRP 679 -32.116 -13.678 -1.666 1.00 98.86 O +ATOM 10292 CB TRP 679 -30.907 -11.828 -4.038 1.00 98.86 C +ATOM 10293 CG TRP 679 -29.655 -11.279 -3.416 1.00 98.86 C +ATOM 10294 CD1 TRP 679 -29.515 -10.922 -2.117 1.00 98.86 C +ATOM 10295 CD2 TRP 679 -28.352 -11.052 -4.034 1.00 98.86 C +ATOM 10296 CE2 TRP 679 -27.459 -10.566 -3.032 1.00 98.86 C +ATOM 10297 CE3 TRP 679 -27.826 -11.201 -5.339 1.00 98.86 C +ATOM 10298 NE1 TRP 679 -28.223 -10.503 -1.886 1.00 98.86 N +ATOM 10299 CH2 TRP 679 -25.626 -10.425 -4.616 1.00 98.86 C +ATOM 10300 CZ2 TRP 679 -26.119 -10.262 -3.309 1.00 98.86 C +ATOM 10301 CZ3 TRP 679 -26.483 -10.886 -5.630 1.00 98.86 C +ATOM 10312 N ALA 680 -29.946 -14.265 -2.025 1.00 98.67 N +ATOM 10313 CA ALA 680 -29.584 -14.622 -0.662 1.00 98.67 C +ATOM 10314 C ALA 680 -28.165 -14.124 -0.366 1.00 98.67 C +ATOM 10315 O ALA 680 -27.367 -13.943 -1.286 1.00 98.67 O +ATOM 10316 CB ALA 680 -29.692 -16.146 -0.494 1.00 98.67 C +ATOM 10322 N ASP 681 -27.877 -13.933 0.927 1.00 98.60 N +ATOM 10323 CA ASP 681 -26.559 -13.568 1.429 1.00 98.60 C +ATOM 10324 C ASP 681 -26.424 -14.152 2.838 1.00 98.60 C +ATOM 10325 O ASP 681 -27.212 -13.802 3.718 1.00 98.60 O +ATOM 10326 CB ASP 681 -26.318 -12.042 1.393 1.00 98.60 C +ATOM 10327 CG ASP 681 -24.914 -11.614 1.838 1.00 98.60 C +ATOM 10328 OD1 ASP 681 -24.834 -10.683 2.669 1.00 98.60 O +ATOM 10329 OD2 ASP 681 -23.941 -12.177 1.290 1.00 98.60 O +ATOM 10334 N TYR 682 -25.417 -15.021 3.008 1.00 98.27 N +ATOM 10335 CA TYR 682 -25.060 -15.645 4.275 1.00 98.27 C +ATOM 10336 C TYR 682 -23.733 -15.054 4.762 1.00 98.27 C +ATOM 10337 O TYR 682 -22.753 -15.091 4.022 1.00 98.27 O +ATOM 10338 CB TYR 682 -24.952 -17.174 4.084 1.00 98.27 C +ATOM 10339 CG TYR 682 -24.709 -17.938 5.376 1.00 98.27 C +ATOM 10340 CD1 TYR 682 -23.397 -18.223 5.807 1.00 98.27 C +ATOM 10341 CD2 TYR 682 -25.803 -18.328 6.176 1.00 98.27 C +ATOM 10342 CE1 TYR 682 -23.183 -18.866 7.041 1.00 98.27 C +ATOM 10343 CE2 TYR 682 -25.590 -18.966 7.412 1.00 98.27 C +ATOM 10344 OH TYR 682 -24.065 -19.836 9.052 1.00 98.27 O +ATOM 10345 CZ TYR 682 -24.278 -19.230 7.848 1.00 98.27 C +ATOM 10355 N ALA 683 -23.722 -14.577 6.013 1.00 98.11 N +ATOM 10356 CA ALA 683 -22.533 -14.128 6.728 1.00 98.11 C +ATOM 10357 C ALA 683 -22.073 -15.212 7.712 1.00 98.11 C +ATOM 10358 O ALA 683 -22.901 -15.882 8.326 1.00 98.11 O +ATOM 10359 CB ALA 683 -22.863 -12.828 7.474 1.00 98.11 C +ATOM 10365 N PHE 684 -20.748 -15.328 7.865 1.00 97.71 N +ATOM 10366 CA PHE 684 -20.083 -16.180 8.843 1.00 97.71 C +ATOM 10367 C PHE 684 -19.708 -15.313 10.052 1.00 97.71 C +ATOM 10368 O PHE 684 -18.759 -14.531 9.977 1.00 97.71 O +ATOM 10369 CB PHE 684 -18.839 -16.820 8.199 1.00 97.71 C +ATOM 10370 CG PHE 684 -19.127 -17.853 7.123 1.00 97.71 C +ATOM 10371 CD1 PHE 684 -19.344 -19.202 7.476 1.00 97.71 C +ATOM 10372 CD2 PHE 684 -19.338 -17.453 5.786 1.00 97.71 C +ATOM 10373 CE1 PHE 684 -19.688 -20.127 6.499 1.00 97.71 C +ATOM 10374 CE2 PHE 684 -19.680 -18.392 4.824 1.00 97.71 C +ATOM 10375 CZ PHE 684 -19.848 -19.725 5.178 1.00 97.71 C +ATOM 10385 N ASP 685 -20.501 -15.443 11.125 1.00 93.95 N +ATOM 10386 CA ASP 685 -20.369 -14.690 12.377 1.00 93.95 C +ATOM 10387 C ASP 685 -19.285 -15.259 13.312 1.00 93.95 C +ATOM 10388 O ASP 685 -18.661 -14.485 14.039 1.00 93.95 O +ATOM 10389 CB ASP 685 -21.715 -14.530 13.140 1.00 93.95 C +ATOM 10390 CG ASP 685 -22.666 -15.740 13.145 1.00 93.95 C +ATOM 10391 OD1 ASP 685 -22.199 -16.880 12.928 1.00 93.95 O +ATOM 10392 OD2 ASP 685 -23.861 -15.504 13.423 1.00 93.95 O +ATOM 10397 N ALA 686 -19.101 -16.588 13.280 1.00 91.96 N +ATOM 10398 CA ALA 686 -18.234 -17.348 14.177 1.00 91.96 C +ATOM 10399 C ALA 686 -17.374 -18.357 13.400 1.00 91.96 C +ATOM 10400 O ALA 686 -17.584 -18.571 12.204 1.00 91.96 O +ATOM 10401 CB ALA 686 -19.126 -18.056 15.212 1.00 91.96 C +ATOM 10407 N GLY 687 -16.410 -18.961 14.116 1.00 94.77 N +ATOM 10408 CA GLY 687 -15.498 -19.974 13.585 1.00 94.77 C +ATOM 10409 C GLY 687 -14.311 -19.329 12.843 1.00 94.77 C +ATOM 10410 O GLY 687 -14.101 -18.119 12.952 1.00 94.77 O +ATOM 10414 N PRO 688 -13.513 -20.126 12.095 1.00 92.98 N +ATOM 10415 CA PRO 688 -12.329 -19.629 11.364 1.00 92.98 C +ATOM 10416 C PRO 688 -12.647 -18.746 10.141 1.00 92.98 C +ATOM 10417 O PRO 688 -11.766 -18.012 9.696 1.00 92.98 O +ATOM 10418 CB PRO 688 -11.590 -20.916 10.965 1.00 92.98 C +ATOM 10419 CG PRO 688 -12.691 -21.955 10.825 1.00 92.98 C +ATOM 10420 CD PRO 688 -13.674 -21.572 11.927 1.00 92.98 C +ATOM 10428 N LEU 689 -13.896 -18.808 9.649 1.00 96.15 N +ATOM 10429 CA LEU 689 -14.409 -17.986 8.555 1.00 96.15 C +ATOM 10430 C LEU 689 -15.057 -16.680 9.054 1.00 96.15 C +ATOM 10431 O LEU 689 -15.758 -16.047 8.272 1.00 96.15 O +ATOM 10432 CB LEU 689 -15.395 -18.827 7.704 1.00 96.15 C +ATOM 10433 CG LEU 689 -14.760 -20.038 6.983 1.00 96.15 C +ATOM 10434 CD1 LEU 689 -15.838 -20.872 6.260 1.00 96.15 C +ATOM 10435 CD2 LEU 689 -13.611 -19.631 6.035 1.00 96.15 C +ATOM 10447 N SER 690 -14.813 -16.269 10.313 1.00 95.95 N +ATOM 10448 CA SER 690 -15.307 -15.021 10.907 1.00 95.95 C +ATOM 10449 C SER 690 -15.014 -13.782 10.040 1.00 95.95 C +ATOM 10450 O SER 690 -13.852 -13.525 9.724 1.00 95.95 O +ATOM 10451 CB SER 690 -14.697 -14.835 12.311 1.00 95.95 C +ATOM 10452 OG SER 690 -15.444 -15.542 13.275 1.00 95.95 O +ATOM 10458 N GLY 691 -16.081 -13.051 9.681 1.00 95.95 N +ATOM 10459 CA GLY 691 -16.015 -11.842 8.861 1.00 95.95 C +ATOM 10460 C GLY 691 -16.321 -12.122 7.383 1.00 95.95 C +ATOM 10461 O GLY 691 -16.635 -11.173 6.666 1.00 95.95 O +ATOM 10465 N LEU 692 -16.264 -13.389 6.923 1.00 98.39 N +ATOM 10466 CA LEU 692 -16.643 -13.801 5.567 1.00 98.39 C +ATOM 10467 C LEU 692 -18.155 -13.663 5.352 1.00 98.39 C +ATOM 10468 O LEU 692 -18.933 -13.819 6.291 1.00 98.39 O +ATOM 10469 CB LEU 692 -16.162 -15.256 5.314 1.00 98.39 C +ATOM 10470 CG LEU 692 -16.368 -15.843 3.896 1.00 98.39 C +ATOM 10471 CD1 LEU 692 -15.647 -15.052 2.789 1.00 98.39 C +ATOM 10472 CD2 LEU 692 -15.958 -17.324 3.862 1.00 98.39 C +ATOM 10484 N SER 693 -18.534 -13.406 4.098 1.00 98.46 N +ATOM 10485 CA SER 693 -19.910 -13.422 3.633 1.00 98.46 C +ATOM 10486 C SER 693 -19.925 -13.863 2.169 1.00 98.46 C +ATOM 10487 O SER 693 -19.052 -13.460 1.406 1.00 98.46 O +ATOM 10488 CB SER 693 -20.583 -12.058 3.904 1.00 98.46 C +ATOM 10489 OG SER 693 -19.934 -11.000 3.224 1.00 98.46 O +ATOM 10495 N ILE 694 -20.894 -14.716 1.818 1.00 98.71 N +ATOM 10496 CA ILE 694 -21.080 -15.264 0.479 1.00 98.71 C +ATOM 10497 C ILE 694 -22.567 -15.115 0.138 1.00 98.71 C +ATOM 10498 O ILE 694 -23.416 -15.565 0.910 1.00 98.71 O +ATOM 10499 CB ILE 694 -20.693 -16.774 0.394 1.00 98.71 C +ATOM 10500 CG1 ILE 694 -19.204 -17.006 0.745 1.00 98.71 C +ATOM 10501 CG2 ILE 694 -21.010 -17.404 -0.985 1.00 98.71 C +ATOM 10502 CD1 ILE 694 -18.824 -18.485 0.912 1.00 98.71 C +ATOM 10514 N GLY 695 -22.843 -14.501 -1.018 1.00 98.71 N +ATOM 10515 CA GLY 695 -24.199 -14.301 -1.505 1.00 98.71 C +ATOM 10516 C GLY 695 -24.236 -14.477 -3.020 1.00 98.71 C +ATOM 10517 O GLY 695 -23.248 -14.836 -3.663 1.00 98.71 O +ATOM 10521 N GLY 696 -25.420 -14.213 -3.576 1.00 98.77 N +ATOM 10522 CA GLY 696 -25.707 -14.380 -4.988 1.00 98.77 C +ATOM 10523 C GLY 696 -27.209 -14.587 -5.157 1.00 98.77 C +ATOM 10524 O GLY 696 -27.953 -14.758 -4.190 1.00 98.77 O +ATOM 10528 N GLY 697 -27.647 -14.555 -6.418 1.00 98.82 N +ATOM 10529 CA GLY 697 -29.050 -14.680 -6.763 1.00 98.82 C +ATOM 10530 C GLY 697 -29.194 -15.030 -8.240 1.00 98.82 C +ATOM 10531 O GLY 697 -28.215 -15.144 -8.975 1.00 98.82 O +ATOM 10535 N ALA 698 -30.457 -15.183 -8.655 1.00 98.90 N +ATOM 10536 CA ALA 698 -30.878 -15.395 -10.031 1.00 98.90 C +ATOM 10537 C ALA 698 -32.006 -14.418 -10.373 1.00 98.90 C +ATOM 10538 O ALA 698 -32.790 -14.049 -9.497 1.00 98.90 O +ATOM 10539 CB ALA 698 -31.323 -16.853 -10.213 1.00 98.90 C +ATOM 10545 N ARG 699 -32.055 -14.020 -11.652 1.00 98.86 N +ATOM 10546 CA ARG 699 -33.035 -13.093 -12.207 1.00 98.86 C +ATOM 10547 C ARG 699 -33.548 -13.660 -13.531 1.00 98.86 C +ATOM 10548 O ARG 699 -32.822 -13.634 -14.525 1.00 98.86 O +ATOM 10549 CB ARG 699 -32.399 -11.703 -12.416 1.00 98.86 C +ATOM 10550 CG ARG 699 -31.990 -11.015 -11.107 1.00 98.86 C +ATOM 10551 CD ARG 699 -31.419 -9.613 -11.323 1.00 98.86 C +ATOM 10552 NE ARG 699 -30.071 -9.646 -11.913 1.00 98.86 N +ATOM 10553 NH1 ARG 699 -30.608 -8.891 -14.068 1.00 98.86 N +ATOM 10554 NH2 ARG 699 -28.434 -9.484 -13.531 1.00 98.86 N +ATOM 10555 CZ ARG 699 -29.716 -9.338 -13.172 1.00 98.86 C +ATOM 10569 N TYR 700 -34.800 -14.137 -13.508 1.00 98.93 N +ATOM 10570 CA TYR 700 -35.545 -14.560 -14.685 1.00 98.93 C +ATOM 10571 C TYR 700 -36.352 -13.385 -15.253 1.00 98.93 C +ATOM 10572 O TYR 700 -37.028 -12.675 -14.506 1.00 98.93 O +ATOM 10573 CB TYR 700 -36.469 -15.741 -14.322 1.00 98.93 C +ATOM 10574 CG TYR 700 -37.349 -16.234 -15.462 1.00 98.93 C +ATOM 10575 CD1 TYR 700 -38.746 -16.029 -15.438 1.00 98.93 C +ATOM 10576 CD2 TYR 700 -36.760 -16.876 -16.572 1.00 98.93 C +ATOM 10577 CE1 TYR 700 -39.544 -16.473 -16.512 1.00 98.93 C +ATOM 10578 CE2 TYR 700 -37.557 -17.325 -17.641 1.00 98.93 C +ATOM 10579 OH TYR 700 -39.724 -17.559 -18.651 1.00 98.93 O +ATOM 10580 CZ TYR 700 -38.951 -17.125 -17.612 1.00 98.93 C +ATOM 10590 N VAL 701 -36.308 -13.264 -16.582 1.00 98.93 N +ATOM 10591 CA VAL 701 -37.179 -12.412 -17.375 1.00 98.93 C +ATOM 10592 C VAL 701 -37.745 -13.292 -18.497 1.00 98.93 C +ATOM 10593 O VAL 701 -36.972 -13.890 -19.245 1.00 98.93 O +ATOM 10594 CB VAL 701 -36.397 -11.214 -17.983 1.00 98.93 C +ATOM 10595 CG1 VAL 701 -37.128 -10.482 -19.124 1.00 98.93 C +ATOM 10596 CG2 VAL 701 -35.997 -10.203 -16.893 1.00 98.93 C +ATOM 10606 N GLY 702 -39.081 -13.343 -18.583 1.00 98.75 N +ATOM 10607 CA GLY 702 -39.834 -14.087 -19.589 1.00 98.75 C +ATOM 10608 C GLY 702 -39.807 -13.373 -20.946 1.00 98.75 C +ATOM 10609 O GLY 702 -39.251 -12.282 -21.087 1.00 98.75 O +ATOM 10613 N GLU 703 -40.426 -14.009 -21.954 1.00 98.63 N +ATOM 10614 CA GLU 703 -40.501 -13.498 -23.323 1.00 98.63 C +ATOM 10615 C GLU 703 -41.231 -12.148 -23.422 1.00 98.63 C +ATOM 10616 O GLU 703 -42.340 -12.009 -22.901 1.00 98.63 O +ATOM 10617 CB GLU 703 -41.198 -14.520 -24.239 1.00 98.63 C +ATOM 10618 CG GLU 703 -40.419 -15.832 -24.450 1.00 98.63 C +ATOM 10619 CD GLU 703 -41.082 -16.757 -25.477 1.00 98.63 C +ATOM 10620 OE1 GLU 703 -40.341 -17.592 -26.038 1.00 98.63 O +ATOM 10621 OE2 GLU 703 -42.307 -16.618 -25.697 1.00 98.63 O +ATOM 10628 N THR 704 -40.600 -11.210 -24.142 1.00 98.54 N +ATOM 10629 CA THR 704 -41.201 -9.950 -24.577 1.00 98.54 C +ATOM 10630 C THR 704 -41.402 -10.005 -26.101 1.00 98.54 C +ATOM 10631 O THR 704 -40.738 -10.789 -26.781 1.00 98.54 O +ATOM 10632 CB THR 704 -40.315 -8.710 -24.221 1.00 98.54 C +ATOM 10633 CG2 THR 704 -39.706 -8.761 -22.817 1.00 98.54 C +ATOM 10634 OG1 THR 704 -39.292 -8.388 -25.147 1.00 98.54 O +ATOM 10642 N TRP 705 -42.293 -9.147 -26.615 1.00 98.84 N +ATOM 10643 CA TRP 705 -42.374 -8.871 -28.047 1.00 98.84 C +ATOM 10644 C TRP 705 -41.298 -7.855 -28.446 1.00 98.84 C +ATOM 10645 O TRP 705 -41.034 -6.911 -27.699 1.00 98.84 O +ATOM 10646 CB TRP 705 -43.778 -8.372 -28.413 1.00 98.84 C +ATOM 10647 CG TRP 705 -44.865 -9.380 -28.208 1.00 98.84 C +ATOM 10648 CD1 TRP 705 -45.738 -9.403 -27.177 1.00 98.84 C +ATOM 10649 CD2 TRP 705 -45.164 -10.560 -29.012 1.00 98.84 C +ATOM 10650 CE2 TRP 705 -46.282 -11.231 -28.433 1.00 98.84 C +ATOM 10651 CE3 TRP 705 -44.610 -11.128 -30.183 1.00 98.84 C +ATOM 10652 NE1 TRP 705 -46.587 -10.481 -27.316 1.00 98.84 N +ATOM 10653 CH2 TRP 705 -46.258 -12.932 -30.163 1.00 98.84 C +ATOM 10654 CZ2 TRP 705 -46.836 -12.393 -28.999 1.00 98.84 C +ATOM 10655 CZ3 TRP 705 -45.142 -12.304 -30.748 1.00 98.84 C +ATOM 10666 N ALA 706 -40.717 -8.070 -29.634 1.00 98.65 N +ATOM 10667 CA ALA 706 -39.730 -7.182 -30.239 1.00 98.65 C +ATOM 10668 C ALA 706 -40.350 -5.929 -30.885 1.00 98.65 C +ATOM 10669 O ALA 706 -39.599 -5.033 -31.257 1.00 98.65 O +ATOM 10670 CB ALA 706 -38.920 -7.982 -31.275 1.00 98.65 C +ATOM 10676 N ASP 707 -41.686 -5.892 -31.022 1.00 98.59 N +ATOM 10677 CA ASP 707 -42.438 -4.883 -31.769 1.00 98.59 C +ATOM 10678 C ASP 707 -43.875 -4.771 -31.226 1.00 98.59 C +ATOM 10679 O ASP 707 -44.362 -5.697 -30.574 1.00 98.59 O +ATOM 10680 CB ASP 707 -42.449 -5.150 -33.303 1.00 98.59 C +ATOM 10681 CG ASP 707 -42.837 -6.564 -33.781 1.00 98.59 C +ATOM 10682 OD1 ASP 707 -43.081 -7.462 -32.944 1.00 98.59 O +ATOM 10683 OD2 ASP 707 -42.896 -6.728 -35.017 1.00 98.59 O +ATOM 10688 N LYS 708 -44.544 -3.647 -31.541 1.00 98.22 N +ATOM 10689 CA LYS 708 -45.973 -3.420 -31.270 1.00 98.22 C +ATOM 10690 C LYS 708 -46.887 -4.334 -32.107 1.00 98.22 C +ATOM 10691 O LYS 708 -47.982 -4.669 -31.657 1.00 98.22 O +ATOM 10692 CB LYS 708 -46.339 -1.947 -31.549 1.00 98.22 C +ATOM 10693 CG LYS 708 -45.610 -0.947 -30.643 1.00 98.22 C +ATOM 10694 CD LYS 708 -46.057 0.508 -30.857 1.00 98.22 C +ATOM 10695 CE LYS 708 -45.433 1.497 -29.856 1.00 98.22 C +ATOM 10696 NZ LYS 708 -43.962 1.464 -29.886 1.00 98.22 N +ATOM 10710 N GLU 709 -46.404 -4.712 -33.301 1.00 98.38 N +ATOM 10711 CA GLU 709 -47.063 -5.561 -34.289 1.00 98.38 C +ATOM 10712 C GLU 709 -47.079 -7.052 -33.902 1.00 98.38 C +ATOM 10713 O GLU 709 -47.861 -7.799 -34.489 1.00 98.38 O +ATOM 10714 CB GLU 709 -46.411 -5.339 -35.676 1.00 98.38 C +ATOM 10715 CG GLU 709 -46.641 -3.951 -36.328 1.00 98.38 C +ATOM 10716 CD GLU 709 -45.988 -2.755 -35.624 1.00 98.38 C +ATOM 10717 OE1 GLU 709 -46.638 -1.687 -35.596 1.00 98.38 O +ATOM 10718 OE2 GLU 709 -44.858 -2.922 -35.113 1.00 98.38 O +ATOM 10725 N ASN 710 -46.250 -7.449 -32.917 1.00 98.52 N +ATOM 10726 CA ASN 710 -46.165 -8.788 -32.313 1.00 98.52 C +ATOM 10727 C ASN 710 -45.824 -9.874 -33.357 1.00 98.52 C +ATOM 10728 O ASN 710 -46.432 -10.945 -33.354 1.00 98.52 O +ATOM 10729 CB ASN 710 -47.457 -9.113 -31.499 1.00 98.52 C +ATOM 10730 CG ASN 710 -47.682 -8.321 -30.202 1.00 98.52 C +ATOM 10731 ND2 ASN 710 -46.911 -7.265 -29.933 1.00 98.52 N +ATOM 10732 OD1 ASN 710 -48.559 -8.680 -29.420 1.00 98.52 O +ATOM 10739 N THR 711 -44.857 -9.570 -34.238 1.00 98.47 N +ATOM 10740 CA THR 711 -44.413 -10.466 -35.309 1.00 98.47 C +ATOM 10741 C THR 711 -43.221 -11.350 -34.886 1.00 98.47 C +ATOM 10742 O THR 711 -42.998 -12.376 -35.529 1.00 98.47 O +ATOM 10743 CB THR 711 -44.011 -9.683 -36.592 1.00 98.47 C +ATOM 10744 CG2 THR 711 -45.053 -8.644 -37.030 1.00 98.47 C +ATOM 10745 OG1 THR 711 -42.736 -9.069 -36.521 1.00 98.47 O +ATOM 10753 N LEU 712 -42.485 -10.949 -33.835 1.00 98.53 N +ATOM 10754 CA LEU 712 -41.261 -11.617 -33.403 1.00 98.53 C +ATOM 10755 C LEU 712 -41.079 -11.466 -31.890 1.00 98.53 C +ATOM 10756 O LEU 712 -41.296 -10.382 -31.347 1.00 98.53 O +ATOM 10757 CB LEU 712 -40.073 -11.044 -34.215 1.00 98.53 C +ATOM 10758 CG LEU 712 -38.687 -11.667 -33.942 1.00 98.53 C +ATOM 10759 CD1 LEU 712 -38.645 -13.192 -34.163 1.00 98.53 C +ATOM 10760 CD2 LEU 712 -37.620 -10.963 -34.795 1.00 98.53 C +ATOM 10772 N ARG 713 -40.654 -12.566 -31.252 1.00 98.68 N +ATOM 10773 CA ARG 713 -40.321 -12.634 -29.833 1.00 98.68 C +ATOM 10774 C ARG 713 -38.834 -12.348 -29.601 1.00 98.68 C +ATOM 10775 O ARG 713 -37.984 -12.769 -30.386 1.00 98.68 O +ATOM 10776 CB ARG 713 -40.647 -14.051 -29.308 1.00 98.68 C +ATOM 10777 CG ARG 713 -42.142 -14.342 -29.103 1.00 98.68 C +ATOM 10778 CD ARG 713 -42.757 -13.487 -27.985 1.00 98.68 C +ATOM 10779 NE ARG 713 -44.056 -14.015 -27.553 1.00 98.68 N +ATOM 10780 NH1 ARG 713 -44.326 -12.550 -25.752 1.00 98.68 N +ATOM 10781 NH2 ARG 713 -45.942 -14.141 -26.219 1.00 98.68 N +ATOM 10782 CZ ARG 713 -44.771 -13.562 -26.510 1.00 98.68 C +ATOM 10796 N VAL 714 -38.570 -11.724 -28.447 1.00 98.86 N +ATOM 10797 CA VAL 714 -37.281 -11.729 -27.768 1.00 98.86 C +ATOM 10798 C VAL 714 -37.327 -12.928 -26.788 1.00 98.86 C +ATOM 10799 O VAL 714 -38.214 -12.937 -25.930 1.00 98.86 O +ATOM 10800 CB VAL 714 -37.105 -10.434 -26.925 1.00 98.86 C +ATOM 10801 CG1 VAL 714 -35.793 -10.418 -26.110 1.00 98.86 C +ATOM 10802 CG2 VAL 714 -37.187 -9.175 -27.804 1.00 98.86 C +ATOM 10812 N PRO 715 -36.418 -13.924 -26.935 1.00 98.76 N +ATOM 10813 CA PRO 715 -36.310 -15.072 -26.007 1.00 98.76 C +ATOM 10814 C PRO 715 -36.166 -14.697 -24.522 1.00 98.76 C +ATOM 10815 O PRO 715 -35.561 -13.670 -24.208 1.00 98.76 O +ATOM 10816 CB PRO 715 -35.054 -15.816 -26.493 1.00 98.76 C +ATOM 10817 CG PRO 715 -34.949 -15.472 -27.966 1.00 98.76 C +ATOM 10818 CD PRO 715 -35.432 -14.031 -28.012 1.00 98.76 C +ATOM 10826 N ASP 716 -36.695 -15.563 -23.641 1.00 98.81 N +ATOM 10827 CA ASP 716 -36.514 -15.462 -22.190 1.00 98.81 C +ATOM 10828 C ASP 716 -35.044 -15.706 -21.787 1.00 98.81 C +ATOM 10829 O ASP 716 -34.280 -16.309 -22.546 1.00 98.81 O +ATOM 10830 CB ASP 716 -37.474 -16.374 -21.380 1.00 98.81 C +ATOM 10831 CG ASP 716 -37.491 -17.877 -21.683 1.00 98.81 C +ATOM 10832 OD1 ASP 716 -36.779 -18.322 -22.610 1.00 98.81 O +ATOM 10833 OD2 ASP 716 -38.240 -18.563 -20.954 1.00 98.81 O +ATOM 10838 N TYR 717 -34.673 -15.226 -20.593 1.00 98.88 N +ATOM 10839 CA TYR 717 -33.315 -15.346 -20.076 1.00 98.88 C +ATOM 10840 C TYR 717 -33.313 -15.426 -18.550 1.00 98.88 C +ATOM 10841 O TYR 717 -34.027 -14.670 -17.892 1.00 98.88 O +ATOM 10842 CB TYR 717 -32.426 -14.201 -20.618 1.00 98.88 C +ATOM 10843 CG TYR 717 -32.883 -12.773 -20.354 1.00 98.88 C +ATOM 10844 CD1 TYR 717 -33.666 -12.093 -21.310 1.00 98.88 C +ATOM 10845 CD2 TYR 717 -32.490 -12.105 -19.176 1.00 98.88 C +ATOM 10846 CE1 TYR 717 -34.028 -10.749 -21.100 1.00 98.88 C +ATOM 10847 CE2 TYR 717 -32.848 -10.760 -18.967 1.00 98.88 C +ATOM 10848 OH TYR 717 -33.921 -8.761 -19.753 1.00 98.88 O +ATOM 10849 CZ TYR 717 -33.604 -10.075 -19.938 1.00 98.88 C +ATOM 10859 N THR 718 -32.447 -16.311 -18.035 1.00 98.93 N +ATOM 10860 CA THR 718 -32.053 -16.369 -16.634 1.00 98.93 C +ATOM 10861 C THR 718 -30.587 -15.925 -16.551 1.00 98.93 C +ATOM 10862 O THR 718 -29.732 -16.501 -17.227 1.00 98.93 O +ATOM 10863 CB THR 718 -32.148 -17.804 -16.048 1.00 98.93 C +ATOM 10864 CG2 THR 718 -31.656 -17.949 -14.593 1.00 98.93 C +ATOM 10865 OG1 THR 718 -33.494 -18.229 -16.082 1.00 98.93 O +ATOM 10873 N LEU 719 -30.338 -14.921 -15.704 1.00 98.91 N +ATOM 10874 CA LEU 719 -29.006 -14.458 -15.329 1.00 98.91 C +ATOM 10875 C LEU 719 -28.745 -14.877 -13.881 1.00 98.91 C +ATOM 10876 O LEU 719 -29.693 -14.985 -13.105 1.00 98.91 O +ATOM 10877 CB LEU 719 -28.953 -12.920 -15.444 1.00 98.91 C +ATOM 10878 CG LEU 719 -29.158 -12.375 -16.874 1.00 98.91 C +ATOM 10879 CD1 LEU 719 -29.356 -10.853 -16.858 1.00 98.91 C +ATOM 10880 CD2 LEU 719 -28.059 -12.810 -17.860 1.00 98.91 C +ATOM 10892 N VAL 720 -27.464 -15.076 -13.545 1.00 98.93 N +ATOM 10893 CA VAL 720 -27.011 -15.372 -12.189 1.00 98.93 C +ATOM 10894 C VAL 720 -26.011 -14.287 -11.774 1.00 98.93 C +ATOM 10895 O VAL 720 -25.060 -14.034 -12.507 1.00 98.93 O +ATOM 10896 CB VAL 720 -26.326 -16.767 -12.101 1.00 98.93 C +ATOM 10897 CG1 VAL 720 -25.602 -17.050 -10.766 1.00 98.93 C +ATOM 10898 CG2 VAL 720 -27.345 -17.889 -12.369 1.00 98.93 C +ATOM 10908 N ASP 721 -26.237 -13.695 -10.597 1.00 98.91 N +ATOM 10909 CA ASP 721 -25.331 -12.750 -9.941 1.00 98.91 C +ATOM 10910 C ASP 721 -24.696 -13.439 -8.721 1.00 98.91 C +ATOM 10911 O ASP 721 -25.253 -14.408 -8.202 1.00 98.91 O +ATOM 10912 CB ASP 721 -26.038 -11.437 -9.527 1.00 98.91 C +ATOM 10913 CG ASP 721 -26.831 -10.734 -10.638 1.00 98.91 C +ATOM 10914 OD1 ASP 721 -26.467 -10.875 -11.828 1.00 98.91 O +ATOM 10915 OD2 ASP 721 -27.768 -9.992 -10.271 1.00 98.91 O +ATOM 10920 N ALA 722 -23.534 -12.931 -8.288 1.00 98.91 N +ATOM 10921 CA ALA 722 -22.747 -13.503 -7.196 1.00 98.91 C +ATOM 10922 C ALA 722 -21.974 -12.418 -6.444 1.00 98.91 C +ATOM 10923 O ALA 722 -21.657 -11.377 -7.023 1.00 98.91 O +ATOM 10924 CB ALA 722 -21.799 -14.572 -7.764 1.00 98.91 C +ATOM 10930 N ARG 723 -21.650 -12.713 -5.175 1.00 98.84 N +ATOM 10931 CA ARG 723 -20.753 -11.910 -4.350 1.00 98.84 C +ATOM 10932 C ARG 723 -19.971 -12.797 -3.373 1.00 98.84 C +ATOM 10933 O ARG 723 -20.429 -13.878 -2.998 1.00 98.84 O +ATOM 10934 CB ARG 723 -21.519 -10.777 -3.621 1.00 98.84 C +ATOM 10935 CG ARG 723 -22.318 -11.189 -2.364 1.00 98.84 C +ATOM 10936 CD ARG 723 -22.936 -10.009 -1.608 1.00 98.84 C +ATOM 10937 NE ARG 723 -21.939 -9.147 -0.966 1.00 98.84 N +ATOM 10938 NH1 ARG 723 -21.652 -10.443 0.961 1.00 98.84 N +ATOM 10939 NH2 ARG 723 -20.461 -8.487 0.682 1.00 98.84 N +ATOM 10940 CZ ARG 723 -21.356 -9.367 0.222 1.00 98.84 C +ATOM 10954 N ILE 724 -18.838 -12.254 -2.915 1.00 98.82 N +ATOM 10955 CA ILE 724 -18.086 -12.741 -1.770 1.00 98.82 C +ATOM 10956 C ILE 724 -17.387 -11.541 -1.111 1.00 98.82 C +ATOM 10957 O ILE 724 -16.622 -10.847 -1.776 1.00 98.82 O +ATOM 10958 CB ILE 724 -17.082 -13.877 -2.133 1.00 98.82 C +ATOM 10959 CG1 ILE 724 -16.388 -14.456 -0.880 1.00 98.82 C +ATOM 10960 CG2 ILE 724 -16.045 -13.502 -3.214 1.00 98.82 C +ATOM 10961 CD1 ILE 724 -15.696 -15.806 -1.117 1.00 98.82 C +ATOM 10973 N GLY 725 -17.700 -11.302 0.170 1.00 98.63 N +ATOM 10974 CA GLY 725 -17.157 -10.218 0.983 1.00 98.63 C +ATOM 10975 C GLY 725 -16.319 -10.799 2.124 1.00 98.63 C +ATOM 10976 O GLY 725 -16.488 -11.958 2.500 1.00 98.63 O +ATOM 10980 N TYR 726 -15.443 -9.965 2.706 1.00 98.53 N +ATOM 10981 CA TYR 726 -14.666 -10.295 3.897 1.00 98.53 C +ATOM 10982 C TYR 726 -14.320 -9.017 4.676 1.00 98.53 C +ATOM 10983 O TYR 726 -13.800 -8.069 4.088 1.00 98.53 O +ATOM 10984 CB TYR 726 -13.412 -11.122 3.531 1.00 98.53 C +ATOM 10985 CG TYR 726 -12.659 -11.648 4.743 1.00 98.53 C +ATOM 10986 CD1 TYR 726 -11.564 -10.936 5.271 1.00 98.53 C +ATOM 10987 CD2 TYR 726 -13.094 -12.826 5.382 1.00 98.53 C +ATOM 10988 CE1 TYR 726 -10.939 -11.380 6.452 1.00 98.53 C +ATOM 10989 CE2 TYR 726 -12.473 -13.270 6.564 1.00 98.53 C +ATOM 10990 OH TYR 726 -10.815 -12.945 8.271 1.00 98.53 O +ATOM 10991 CZ TYR 726 -11.400 -12.539 7.107 1.00 98.53 C +ATOM 11001 N ASP 727 -14.582 -9.048 5.992 1.00 97.69 N +ATOM 11002 CA ASP 727 -14.209 -8.027 6.969 1.00 97.69 C +ATOM 11003 C ASP 727 -12.781 -8.315 7.471 1.00 97.69 C +ATOM 11004 O ASP 727 -12.587 -9.298 8.188 1.00 97.69 O +ATOM 11005 CB ASP 727 -15.237 -8.004 8.134 1.00 97.69 C +ATOM 11006 CG ASP 727 -14.925 -7.039 9.287 1.00 97.69 C +ATOM 11007 OD1 ASP 727 -14.298 -5.990 9.022 1.00 97.69 O +ATOM 11008 OD2 ASP 727 -15.374 -7.345 10.413 1.00 97.69 O +ATOM 11013 N LEU 728 -11.825 -7.433 7.127 1.00 97.07 N +ATOM 11014 CA LEU 728 -10.452 -7.471 7.646 1.00 97.07 C +ATOM 11015 C LEU 728 -10.327 -6.908 9.077 1.00 97.07 C +ATOM 11016 O LEU 728 -9.238 -6.986 9.641 1.00 97.07 O +ATOM 11017 CB LEU 728 -9.460 -6.775 6.684 1.00 97.07 C +ATOM 11018 CG LEU 728 -9.303 -7.473 5.315 1.00 97.07 C +ATOM 11019 CD1 LEU 728 -10.373 -7.016 4.309 1.00 97.07 C +ATOM 11020 CD2 LEU 728 -7.887 -7.264 4.748 1.00 97.07 C +ATOM 11032 N GLY 729 -11.430 -6.420 9.675 1.00 95.40 N +ATOM 11033 CA GLY 729 -11.523 -6.060 11.092 1.00 95.40 C +ATOM 11034 C GLY 729 -11.373 -7.275 12.021 1.00 95.40 C +ATOM 11035 O GLY 729 -10.975 -7.104 13.173 1.00 95.40 O +ATOM 11039 N LYS 730 -11.626 -8.492 11.508 1.00 93.45 N +ATOM 11040 CA LYS 730 -11.354 -9.767 12.175 1.00 93.45 C +ATOM 11041 C LYS 730 -9.867 -10.177 12.102 1.00 93.45 C +ATOM 11042 O LYS 730 -9.454 -11.033 12.882 1.00 93.45 O +ATOM 11043 CB LYS 730 -12.269 -10.852 11.569 1.00 93.45 C +ATOM 11044 CG LYS 730 -13.776 -10.527 11.631 1.00 93.45 C +ATOM 11045 CD LYS 730 -14.332 -10.284 13.046 1.00 93.45 C +ATOM 11046 CE LYS 730 -15.853 -10.058 13.073 1.00 93.45 C +ATOM 11047 NZ LYS 730 -16.604 -11.267 12.688 1.00 93.45 N +ATOM 11061 N LEU 731 -9.088 -9.535 11.210 1.00 94.44 N +ATOM 11062 CA LEU 731 -7.626 -9.628 11.125 1.00 94.44 C +ATOM 11063 C LEU 731 -6.927 -8.443 11.831 1.00 94.44 C +ATOM 11064 O LEU 731 -5.702 -8.344 11.750 1.00 94.44 O +ATOM 11065 CB LEU 731 -7.191 -9.718 9.640 1.00 94.44 C +ATOM 11066 CG LEU 731 -7.772 -10.911 8.848 1.00 94.44 C +ATOM 11067 CD1 LEU 731 -7.306 -10.859 7.383 1.00 94.44 C +ATOM 11068 CD2 LEU 731 -7.452 -12.278 9.483 1.00 94.44 C +ATOM 11080 N GLY 732 -7.696 -7.580 12.520 1.00 94.61 N +ATOM 11081 CA GLY 732 -7.191 -6.457 13.312 1.00 94.61 C +ATOM 11082 C GLY 732 -7.149 -5.133 12.531 1.00 94.61 C +ATOM 11083 O GLY 732 -6.774 -4.118 13.117 1.00 94.61 O +ATOM 11087 N LEU 733 -7.542 -5.118 11.245 1.00 95.37 N +ATOM 11088 CA LEU 733 -7.610 -3.925 10.398 1.00 95.37 C +ATOM 11089 C LEU 733 -9.046 -3.374 10.433 1.00 95.37 C +ATOM 11090 O LEU 733 -9.787 -3.526 9.463 1.00 95.37 O +ATOM 11091 CB LEU 733 -7.159 -4.288 8.960 1.00 95.37 C +ATOM 11092 CG LEU 733 -5.714 -4.822 8.837 1.00 95.37 C +ATOM 11093 CD1 LEU 733 -5.444 -5.365 7.417 1.00 95.37 C +ATOM 11094 CD2 LEU 733 -4.663 -3.782 9.276 1.00 95.37 C +ATOM 11106 N LYS 734 -9.439 -2.800 11.584 1.00 94.66 N +ATOM 11107 CA LYS 734 -10.796 -2.312 11.848 1.00 94.66 C +ATOM 11108 C LYS 734 -11.243 -1.192 10.894 1.00 94.66 C +ATOM 11109 O LYS 734 -10.491 -0.249 10.649 1.00 94.66 O +ATOM 11110 CB LYS 734 -10.925 -1.896 13.329 1.00 94.66 C +ATOM 11111 CG LYS 734 -11.126 -3.076 14.302 1.00 94.66 C +ATOM 11112 CD LYS 734 -12.524 -3.721 14.207 1.00 94.66 C +ATOM 11113 CE LYS 734 -12.770 -4.798 15.274 1.00 94.66 C +ATOM 11114 NZ LYS 734 -14.117 -5.385 15.144 1.00 94.66 N +ATOM 11128 N GLY 735 -12.470 -1.352 10.374 1.00 95.02 N +ATOM 11129 CA GLY 735 -13.094 -0.460 9.401 1.00 95.02 C +ATOM 11130 C GLY 735 -12.755 -0.844 7.950 1.00 95.02 C +ATOM 11131 O GLY 735 -13.421 -0.343 7.046 1.00 95.02 O +ATOM 11135 N LEU 736 -11.762 -1.725 7.715 1.00 98.14 N +ATOM 11136 CA LEU 736 -11.395 -2.211 6.386 1.00 98.14 C +ATOM 11137 C LEU 736 -12.190 -3.480 6.047 1.00 98.14 C +ATOM 11138 O LEU 736 -12.178 -4.432 6.827 1.00 98.14 O +ATOM 11139 CB LEU 736 -9.867 -2.460 6.321 1.00 98.14 C +ATOM 11140 CG LEU 736 -9.307 -2.784 4.915 1.00 98.14 C +ATOM 11141 CD1 LEU 736 -9.577 -1.663 3.896 1.00 98.14 C +ATOM 11142 CD2 LEU 736 -7.809 -3.137 4.981 1.00 98.14 C +ATOM 11154 N ASP 737 -12.811 -3.477 4.860 1.00 98.29 N +ATOM 11155 CA ASP 737 -13.437 -4.646 4.246 1.00 98.29 C +ATOM 11156 C ASP 737 -13.089 -4.651 2.749 1.00 98.29 C +ATOM 11157 O ASP 737 -12.742 -3.613 2.181 1.00 98.29 O +ATOM 11158 CB ASP 737 -14.969 -4.731 4.463 1.00 98.29 C +ATOM 11159 CG ASP 737 -15.775 -3.517 3.990 1.00 98.29 C +ATOM 11160 OD1 ASP 737 -15.914 -2.567 4.789 1.00 98.29 O +ATOM 11161 OD2 ASP 737 -16.255 -3.573 2.835 1.00 98.29 O +ATOM 11166 N VAL 738 -13.226 -5.832 2.136 1.00 98.76 N +ATOM 11167 CA VAL 738 -13.152 -6.032 0.692 1.00 98.76 C +ATOM 11168 C VAL 738 -14.333 -6.899 0.235 1.00 98.76 C +ATOM 11169 O VAL 738 -14.912 -7.627 1.042 1.00 98.76 O +ATOM 11170 CB VAL 738 -11.831 -6.732 0.259 1.00 98.76 C +ATOM 11171 CG1 VAL 738 -10.608 -5.822 0.464 1.00 98.76 C +ATOM 11172 CG2 VAL 738 -11.610 -8.134 0.866 1.00 98.76 C +ATOM 11182 N SER 739 -14.646 -6.821 -1.065 1.00 98.76 N +ATOM 11183 CA SER 739 -15.618 -7.686 -1.723 1.00 98.76 C +ATOM 11184 C SER 739 -15.297 -7.840 -3.212 1.00 98.76 C +ATOM 11185 O SER 739 -14.701 -6.949 -3.809 1.00 98.76 O +ATOM 11186 CB SER 739 -17.064 -7.202 -1.449 1.00 98.76 C +ATOM 11187 OG SER 739 -17.373 -5.996 -2.121 1.00 98.76 O +ATOM 11193 N LEU 740 -15.720 -8.979 -3.775 1.00 98.93 N +ATOM 11194 CA LEU 740 -15.650 -9.299 -5.193 1.00 98.93 C +ATOM 11195 C LEU 740 -17.060 -9.696 -5.633 1.00 98.93 C +ATOM 11196 O LEU 740 -17.622 -10.640 -5.082 1.00 98.93 O +ATOM 11197 CB LEU 740 -14.610 -10.422 -5.418 1.00 98.93 C +ATOM 11198 CG LEU 740 -14.493 -10.937 -6.873 1.00 98.93 C +ATOM 11199 CD1 LEU 740 -14.119 -9.814 -7.862 1.00 98.93 C +ATOM 11200 CD2 LEU 740 -13.524 -12.135 -6.957 1.00 98.93 C +ATOM 11212 N ASN 741 -17.591 -8.953 -6.611 1.00 98.91 N +ATOM 11213 CA ASN 741 -18.939 -9.109 -7.157 1.00 98.91 C +ATOM 11214 C ASN 741 -18.835 -9.510 -8.633 1.00 98.91 C +ATOM 11215 O ASN 741 -17.860 -9.146 -9.290 1.00 98.91 O +ATOM 11216 CB ASN 741 -19.701 -7.774 -6.999 1.00 98.91 C +ATOM 11217 CG ASN 741 -19.899 -7.375 -5.531 1.00 98.91 C +ATOM 11218 ND2 ASN 741 -19.057 -6.474 -5.019 1.00 98.91 N +ATOM 11219 OD1 ASN 741 -20.807 -7.870 -4.870 1.00 98.91 O +ATOM 11226 N ALA 742 -19.843 -10.249 -9.123 1.00 98.87 N +ATOM 11227 CA ALA 742 -19.892 -10.767 -10.489 1.00 98.87 C +ATOM 11228 C ALA 742 -21.347 -10.893 -10.957 1.00 98.87 C +ATOM 11229 O ALA 742 -21.953 -11.951 -10.789 1.00 98.87 O +ATOM 11230 CB ALA 742 -19.119 -12.095 -10.574 1.00 98.87 C +ATOM 11236 N ASN 743 -21.871 -9.803 -11.542 1.00 98.83 N +ATOM 11237 CA ASN 743 -23.191 -9.749 -12.181 1.00 98.83 C +ATOM 11238 C ASN 743 -23.108 -10.389 -13.575 1.00 98.83 C +ATOM 11239 O ASN 743 -22.188 -10.063 -14.325 1.00 98.83 O +ATOM 11240 CB ASN 743 -23.673 -8.282 -12.279 1.00 98.83 C +ATOM 11241 CG ASN 743 -23.884 -7.600 -10.922 1.00 98.83 C +ATOM 11242 ND2 ASN 743 -23.731 -6.274 -10.879 1.00 98.83 N +ATOM 11243 OD1 ASN 743 -24.196 -8.250 -9.927 1.00 98.83 O +ATOM 11250 N ASN 744 -24.047 -11.305 -13.875 1.00 98.75 N +ATOM 11251 CA ASN 744 -24.028 -12.217 -15.031 1.00 98.75 C +ATOM 11252 C ASN 744 -22.768 -13.117 -14.994 1.00 98.75 C +ATOM 11253 O ASN 744 -21.949 -13.085 -15.909 1.00 98.75 O +ATOM 11254 CB ASN 744 -24.226 -11.447 -16.369 1.00 98.75 C +ATOM 11255 CG ASN 744 -24.514 -12.334 -17.592 1.00 98.75 C +ATOM 11256 ND2 ASN 744 -24.590 -11.720 -18.773 1.00 98.75 N +ATOM 11257 OD1 ASN 744 -24.669 -13.550 -17.487 1.00 98.75 O +ATOM 11264 N LEU 745 -22.645 -13.893 -13.906 1.00 98.75 N +ATOM 11265 CA LEU 745 -21.560 -14.823 -13.584 1.00 98.75 C +ATOM 11266 C LEU 745 -21.292 -15.888 -14.669 1.00 98.75 C +ATOM 11267 O LEU 745 -20.134 -16.253 -14.875 1.00 98.75 O +ATOM 11268 CB LEU 745 -21.895 -15.463 -12.212 1.00 98.75 C +ATOM 11269 CG LEU 745 -20.896 -16.509 -11.661 1.00 98.75 C +ATOM 11270 CD1 LEU 745 -19.481 -15.924 -11.458 1.00 98.75 C +ATOM 11271 CD2 LEU 745 -21.448 -17.177 -10.384 1.00 98.75 C +ATOM 11283 N LEU 746 -22.356 -16.347 -15.350 1.00 98.82 N +ATOM 11284 CA LEU 746 -22.287 -17.334 -16.431 1.00 98.82 C +ATOM 11285 C LEU 746 -21.825 -16.739 -17.777 1.00 98.82 C +ATOM 11286 O LEU 746 -21.458 -17.509 -18.664 1.00 98.82 O +ATOM 11287 CB LEU 746 -23.664 -18.019 -16.588 1.00 98.82 C +ATOM 11288 CG LEU 746 -24.196 -18.727 -15.319 1.00 98.82 C +ATOM 11289 CD1 LEU 746 -25.589 -19.338 -15.579 1.00 98.82 C +ATOM 11290 CD2 LEU 746 -23.206 -19.764 -14.749 1.00 98.82 C +ATOM 11302 N ASP 747 -21.848 -15.399 -17.902 1.00 98.73 N +ATOM 11303 CA ASP 747 -21.480 -14.611 -19.083 1.00 98.73 C +ATOM 11304 C ASP 747 -22.403 -14.916 -20.283 1.00 98.73 C +ATOM 11305 O ASP 747 -21.926 -15.143 -21.396 1.00 98.73 O +ATOM 11306 CB ASP 747 -19.966 -14.720 -19.424 1.00 98.73 C +ATOM 11307 CG ASP 747 -19.431 -13.608 -20.338 1.00 98.73 C +ATOM 11308 OD1 ASP 747 -20.103 -12.559 -20.452 1.00 98.73 O +ATOM 11309 OD2 ASP 747 -18.322 -13.797 -20.880 1.00 98.73 O +ATOM 11314 N LYS 748 -23.721 -14.918 -20.024 1.00 98.81 N +ATOM 11315 CA LYS 748 -24.753 -15.130 -21.033 1.00 98.81 C +ATOM 11316 C LYS 748 -24.786 -13.972 -22.045 1.00 98.81 C +ATOM 11317 O LYS 748 -24.792 -12.809 -21.638 1.00 98.81 O +ATOM 11318 CB LYS 748 -26.112 -15.343 -20.328 1.00 98.81 C +ATOM 11319 CG LYS 748 -27.284 -15.630 -21.288 1.00 98.81 C +ATOM 11320 CD LYS 748 -28.554 -16.103 -20.561 1.00 98.81 C +ATOM 11321 CE LYS 748 -29.748 -16.342 -21.499 1.00 98.81 C +ATOM 11322 NZ LYS 748 -29.476 -17.389 -22.500 1.00 98.81 N +ATOM 11336 N ASP 749 -24.826 -14.332 -23.336 1.00 98.73 N +ATOM 11337 CA ASP 749 -25.068 -13.421 -24.452 1.00 98.73 C +ATOM 11338 C ASP 749 -26.573 -13.506 -24.761 1.00 98.73 C +ATOM 11339 O ASP 749 -27.100 -14.607 -24.936 1.00 98.73 O +ATOM 11340 CB ASP 749 -24.188 -13.797 -25.670 1.00 98.73 C +ATOM 11341 CG ASP 749 -24.155 -12.765 -26.808 1.00 98.73 C +ATOM 11342 OD1 ASP 749 -24.890 -11.756 -26.729 1.00 98.73 O +ATOM 11343 OD2 ASP 749 -23.358 -12.997 -27.742 1.00 98.73 O +ATOM 11348 N TYR 750 -27.234 -12.340 -24.785 1.00 98.78 N +ATOM 11349 CA TYR 750 -28.681 -12.216 -24.932 1.00 98.78 C +ATOM 11350 C TYR 750 -29.044 -10.781 -25.336 1.00 98.78 C +ATOM 11351 O TYR 750 -28.354 -9.832 -24.958 1.00 98.78 O +ATOM 11352 CB TYR 750 -29.403 -12.635 -23.619 1.00 98.78 C +ATOM 11353 CG TYR 750 -29.241 -11.693 -22.432 1.00 98.78 C +ATOM 11354 CD1 TYR 750 -28.015 -11.634 -21.738 1.00 98.78 C +ATOM 11355 CD2 TYR 750 -30.299 -10.847 -22.038 1.00 98.78 C +ATOM 11356 CE1 TYR 750 -27.829 -10.712 -20.692 1.00 98.78 C +ATOM 11357 CE2 TYR 750 -30.120 -9.934 -20.982 1.00 98.78 C +ATOM 11358 OH TYR 750 -28.692 -8.934 -19.330 1.00 98.78 O +ATOM 11359 CZ TYR 750 -28.882 -9.859 -20.314 1.00 98.78 C +ATOM 11369 N VAL 751 -30.184 -10.665 -26.031 1.00 98.89 N +ATOM 11370 CA VAL 751 -30.907 -9.414 -26.225 1.00 98.89 C +ATOM 11371 C VAL 751 -31.884 -9.248 -25.047 1.00 98.89 C +ATOM 11372 O VAL 751 -32.699 -10.140 -24.806 1.00 98.89 O +ATOM 11373 CB VAL 751 -31.683 -9.428 -27.573 1.00 98.89 C +ATOM 11374 CG1 VAL 751 -32.744 -8.323 -27.738 1.00 98.89 C +ATOM 11375 CG2 VAL 751 -30.703 -9.365 -28.758 1.00 98.89 C +ATOM 11385 N ALA 752 -31.762 -8.120 -24.329 1.00 98.83 N +ATOM 11386 CA ALA 752 -32.595 -7.782 -23.174 1.00 98.83 C +ATOM 11387 C ALA 752 -34.042 -7.445 -23.568 1.00 98.83 C +ATOM 11388 O ALA 752 -34.970 -7.925 -22.919 1.00 98.83 O +ATOM 11389 CB ALA 752 -31.946 -6.620 -22.412 1.00 98.83 C +ATOM 11395 N SER 753 -34.194 -6.663 -24.649 1.00 98.82 N +ATOM 11396 CA SER 753 -35.459 -6.325 -25.301 1.00 98.82 C +ATOM 11397 C SER 753 -35.192 -5.610 -26.634 1.00 98.82 C +ATOM 11398 O SER 753 -34.044 -5.287 -26.947 1.00 98.82 O +ATOM 11399 CB SER 753 -36.392 -5.516 -24.370 1.00 98.82 C +ATOM 11400 OG SER 753 -35.907 -4.213 -24.114 1.00 98.82 O +ATOM 11406 N CYS 754 -36.277 -5.367 -27.385 1.00 98.87 N +ATOM 11407 CA CYS 754 -36.277 -4.523 -28.575 1.00 98.87 C +ATOM 11408 C CYS 754 -37.524 -3.635 -28.530 1.00 98.87 C +ATOM 11409 O CYS 754 -38.590 -4.114 -28.136 1.00 98.87 O +ATOM 11410 CB CYS 754 -36.299 -5.372 -29.867 1.00 98.87 C +ATOM 11411 SG CYS 754 -35.288 -6.876 -29.933 1.00 98.87 S +ATOM 11416 N TYR 755 -37.386 -2.378 -28.980 1.00 98.19 N +ATOM 11417 CA TYR 755 -38.523 -1.476 -29.179 1.00 98.19 C +ATOM 11418 C TYR 755 -39.241 -1.782 -30.507 1.00 98.19 C +ATOM 11419 O TYR 755 -40.470 -1.777 -30.547 1.00 98.19 O +ATOM 11420 CB TYR 755 -38.052 -0.011 -29.100 1.00 98.19 C +ATOM 11421 CG TYR 755 -39.148 1.050 -29.075 1.00 98.19 C +ATOM 11422 CD1 TYR 755 -39.861 1.378 -30.247 1.00 98.19 C +ATOM 11423 CD2 TYR 755 -39.413 1.769 -27.890 1.00 98.19 C +ATOM 11424 CE1 TYR 755 -40.794 2.430 -30.251 1.00 98.19 C +ATOM 11425 CE2 TYR 755 -40.353 2.818 -27.887 1.00 98.19 C +ATOM 11426 OH TYR 755 -41.945 4.175 -29.076 1.00 98.19 O +ATOM 11427 CZ TYR 755 -41.039 3.155 -29.071 1.00 98.19 C +ATOM 11437 N SER 756 -38.449 -2.043 -31.557 1.00 98.36 N +ATOM 11438 CA SER 756 -38.902 -2.422 -32.892 1.00 98.36 C +ATOM 11439 C SER 756 -37.920 -3.433 -33.504 1.00 98.36 C +ATOM 11440 O SER 756 -36.874 -3.722 -32.918 1.00 98.36 O +ATOM 11441 CB SER 756 -39.101 -1.155 -33.757 1.00 98.36 C +ATOM 11442 OG SER 756 -37.878 -0.596 -34.196 1.00 98.36 O +ATOM 11448 N LEU 757 -38.270 -3.934 -34.699 1.00 98.58 N +ATOM 11449 CA LEU 757 -37.459 -4.868 -35.487 1.00 98.58 C +ATOM 11450 C LEU 757 -36.131 -4.277 -36.013 1.00 98.58 C +ATOM 11451 O LEU 757 -35.298 -5.043 -36.490 1.00 98.58 O +ATOM 11452 CB LEU 757 -38.309 -5.420 -36.655 1.00 98.58 C +ATOM 11453 CG LEU 757 -39.635 -6.104 -36.245 1.00 98.58 C +ATOM 11454 CD1 LEU 757 -40.425 -6.562 -37.488 1.00 98.58 C +ATOM 11455 CD2 LEU 757 -39.434 -7.250 -35.232 1.00 98.58 C +ATOM 11467 N ASP 758 -35.953 -2.949 -35.905 1.00 98.29 N +ATOM 11468 CA ASP 758 -34.743 -2.210 -36.278 1.00 98.29 C +ATOM 11469 C ASP 758 -33.862 -1.849 -35.066 1.00 98.29 C +ATOM 11470 O ASP 758 -32.747 -1.377 -35.289 1.00 98.29 O +ATOM 11471 CB ASP 758 -35.069 -0.927 -37.077 1.00 98.29 C +ATOM 11472 CG ASP 758 -35.990 -1.148 -38.279 1.00 98.29 C +ATOM 11473 OD1 ASP 758 -35.650 -2.025 -39.103 1.00 98.29 O +ATOM 11474 OD2 ASP 758 -36.978 -0.390 -38.388 1.00 98.29 O +ATOM 11479 N PHE 759 -34.349 -2.058 -33.826 1.00 98.65 N +ATOM 11480 CA PHE 759 -33.684 -1.604 -32.600 1.00 98.65 C +ATOM 11481 C PHE 759 -33.849 -2.605 -31.451 1.00 98.65 C +ATOM 11482 O PHE 759 -34.715 -2.426 -30.595 1.00 98.65 O +ATOM 11483 CB PHE 759 -34.195 -0.208 -32.197 1.00 98.65 C +ATOM 11484 CG PHE 759 -33.850 0.893 -33.174 1.00 98.65 C +ATOM 11485 CD1 PHE 759 -32.541 1.405 -33.224 1.00 98.65 C +ATOM 11486 CD2 PHE 759 -34.792 1.308 -34.134 1.00 98.65 C +ATOM 11487 CE1 PHE 759 -32.212 2.352 -34.180 1.00 98.65 C +ATOM 11488 CE2 PHE 759 -34.445 2.256 -35.080 1.00 98.65 C +ATOM 11489 CZ PHE 759 -33.156 2.768 -35.108 1.00 98.65 C +ATOM 11499 N CYS 760 -32.967 -3.611 -31.447 1.00 98.86 N +ATOM 11500 CA CYS 760 -32.719 -4.537 -30.347 1.00 98.86 C +ATOM 11501 C CYS 760 -31.450 -4.123 -29.596 1.00 98.86 C +ATOM 11502 O CYS 760 -30.521 -3.579 -30.197 1.00 98.86 O +ATOM 11503 CB CYS 760 -32.565 -5.958 -30.907 1.00 98.86 C +ATOM 11504 SG CYS 760 -34.094 -6.661 -31.563 1.00 98.86 S +ATOM 11509 N TYR 761 -31.453 -4.399 -28.284 1.00 98.90 N +ATOM 11510 CA TYR 761 -30.412 -3.976 -27.353 1.00 98.90 C +ATOM 11511 C TYR 761 -29.839 -5.210 -26.665 1.00 98.90 C +ATOM 11512 O TYR 761 -30.589 -5.951 -26.027 1.00 98.90 O +ATOM 11513 CB TYR 761 -31.007 -3.011 -26.305 1.00 98.90 C +ATOM 11514 CG TYR 761 -31.912 -1.949 -26.897 1.00 98.90 C +ATOM 11515 CD1 TYR 761 -31.369 -0.907 -27.674 1.00 98.90 C +ATOM 11516 CD2 TYR 761 -33.308 -2.046 -26.725 1.00 98.90 C +ATOM 11517 CE1 TYR 761 -32.223 0.024 -28.293 1.00 98.90 C +ATOM 11518 CE2 TYR 761 -34.161 -1.116 -27.340 1.00 98.90 C +ATOM 11519 OH TYR 761 -34.451 0.794 -28.746 1.00 98.90 O +ATOM 11520 CZ TYR 761 -33.618 -0.087 -28.131 1.00 98.90 C +ATOM 11530 N PHE 762 -28.512 -5.378 -26.767 1.00 98.90 N +ATOM 11531 CA PHE 762 -27.769 -6.385 -26.017 1.00 98.90 C +ATOM 11532 C PHE 762 -27.769 -6.045 -24.525 1.00 98.90 C +ATOM 11533 O PHE 762 -27.446 -4.913 -24.163 1.00 98.90 O +ATOM 11534 CB PHE 762 -26.321 -6.473 -26.524 1.00 98.90 C +ATOM 11535 CG PHE 762 -26.186 -6.978 -27.943 1.00 98.90 C +ATOM 11536 CD1 PHE 762 -26.321 -8.355 -28.222 1.00 98.90 C +ATOM 11537 CD2 PHE 762 -26.030 -6.067 -29.009 1.00 98.90 C +ATOM 11538 CE1 PHE 762 -26.211 -8.806 -29.530 1.00 98.90 C +ATOM 11539 CE2 PHE 762 -25.918 -6.540 -30.308 1.00 98.90 C +ATOM 11540 CZ PHE 762 -25.996 -7.902 -30.562 1.00 98.90 C +ATOM 11550 N GLY 763 -28.096 -7.046 -23.698 1.00 98.76 N +ATOM 11551 CA GLY 763 -28.004 -6.943 -22.249 1.00 98.76 C +ATOM 11552 C GLY 763 -26.537 -7.017 -21.806 1.00 98.76 C +ATOM 11553 O GLY 763 -25.653 -7.390 -22.583 1.00 98.76 O +ATOM 11557 N GLU 764 -26.290 -6.634 -20.544 1.00 98.75 N +ATOM 11558 CA GLU 764 -24.954 -6.562 -19.955 1.00 98.75 C +ATOM 11559 C GLU 764 -24.316 -7.959 -19.849 1.00 98.75 C +ATOM 11560 O GLU 764 -24.926 -8.856 -19.266 1.00 98.75 O +ATOM 11561 CB GLU 764 -25.044 -5.845 -18.589 1.00 98.75 C +ATOM 11562 CG GLU 764 -23.673 -5.488 -17.974 1.00 98.75 C +ATOM 11563 CD GLU 764 -23.782 -4.821 -16.603 1.00 98.75 C +ATOM 11564 OE1 GLU 764 -23.117 -3.777 -16.427 1.00 98.75 O +ATOM 11565 OE2 GLU 764 -24.496 -5.377 -15.739 1.00 98.75 O +ATOM 11572 N LYS 765 -23.092 -8.099 -20.389 1.00 98.73 N +ATOM 11573 CA LYS 765 -22.228 -9.275 -20.232 1.00 98.73 C +ATOM 11574 C LYS 765 -21.731 -9.419 -18.776 1.00 98.73 C +ATOM 11575 O LYS 765 -22.169 -8.680 -17.894 1.00 98.73 O +ATOM 11576 CB LYS 765 -21.075 -9.201 -21.266 1.00 98.73 C +ATOM 11577 CG LYS 765 -20.021 -8.111 -21.009 1.00 98.73 C +ATOM 11578 CD LYS 765 -18.859 -8.094 -22.018 1.00 98.73 C +ATOM 11579 CE LYS 765 -17.830 -9.211 -21.792 1.00 98.73 C +ATOM 11580 NZ LYS 765 -16.656 -9.040 -22.666 1.00 98.73 N +ATOM 11594 N ARG 766 -20.815 -10.368 -18.530 1.00 98.83 N +ATOM 11595 CA ARG 766 -20.201 -10.555 -17.216 1.00 98.83 C +ATOM 11596 C ARG 766 -19.421 -9.312 -16.750 1.00 98.83 C +ATOM 11597 O ARG 766 -18.392 -8.983 -17.337 1.00 98.83 O +ATOM 11598 CB ARG 766 -19.358 -11.835 -17.234 1.00 98.83 C +ATOM 11599 CG ARG 766 -18.696 -12.181 -15.890 1.00 98.83 C +ATOM 11600 CD ARG 766 -18.273 -13.650 -15.812 1.00 98.83 C +ATOM 11601 NE ARG 766 -17.222 -13.962 -16.790 1.00 98.83 N +ATOM 11602 NH1 ARG 766 -17.688 -16.253 -16.962 1.00 98.83 N +ATOM 11603 NH2 ARG 766 -16.026 -15.293 -18.254 1.00 98.83 N +ATOM 11604 CZ ARG 766 -16.984 -15.171 -17.327 1.00 98.83 C +ATOM 11618 N ASN 767 -19.963 -8.655 -15.714 1.00 98.79 N +ATOM 11619 CA ASN 767 -19.419 -7.466 -15.071 1.00 98.79 C +ATOM 11620 C ASN 767 -18.861 -7.916 -13.715 1.00 98.79 C +ATOM 11621 O ASN 767 -19.636 -8.130 -12.783 1.00 98.79 O +ATOM 11622 CB ASN 767 -20.549 -6.406 -14.953 1.00 98.79 C +ATOM 11623 CG ASN 767 -20.107 -5.042 -14.395 1.00 98.79 C +ATOM 11624 ND2 ASN 767 -20.655 -3.949 -14.927 1.00 98.79 N +ATOM 11625 OD1 ASN 767 -19.301 -4.958 -13.472 1.00 98.79 O +ATOM 11632 N VAL 768 -17.527 -8.038 -13.645 1.00 98.89 N +ATOM 11633 CA VAL 768 -16.791 -8.373 -12.430 1.00 98.89 C +ATOM 11634 C VAL 768 -16.134 -7.093 -11.893 1.00 98.89 C +ATOM 11635 O VAL 768 -15.456 -6.404 -12.656 1.00 98.89 O +ATOM 11636 CB VAL 768 -15.669 -9.417 -12.699 1.00 98.89 C +ATOM 11637 CG1 VAL 768 -14.838 -9.775 -11.449 1.00 98.89 C +ATOM 11638 CG2 VAL 768 -16.244 -10.704 -13.309 1.00 98.89 C +ATOM 11648 N THR 769 -16.326 -6.820 -10.593 1.00 98.79 N +ATOM 11649 CA THR 769 -15.688 -5.710 -9.887 1.00 98.79 C +ATOM 11650 C THR 769 -15.248 -6.171 -8.489 1.00 98.79 C +ATOM 11651 O THR 769 -16.068 -6.635 -7.694 1.00 98.79 O +ATOM 11652 CB THR 769 -16.618 -4.472 -9.727 1.00 98.79 C +ATOM 11653 CG2 THR 769 -16.964 -3.798 -11.058 1.00 98.79 C +ATOM 11654 OG1 THR 769 -17.830 -4.777 -9.054 1.00 98.79 O +ATOM 11662 N ALA 770 -13.950 -5.971 -8.220 1.00 98.90 N +ATOM 11663 CA ALA 770 -13.349 -6.007 -6.894 1.00 98.90 C +ATOM 11664 C ALA 770 -13.455 -4.610 -6.271 1.00 98.90 C +ATOM 11665 O ALA 770 -13.207 -3.620 -6.956 1.00 98.90 O +ATOM 11666 CB ALA 770 -11.879 -6.433 -7.022 1.00 98.90 C +ATOM 11672 N THR 771 -13.823 -4.567 -4.987 1.00 98.86 N +ATOM 11673 CA THR 771 -14.036 -3.352 -4.209 1.00 98.86 C +ATOM 11674 C THR 771 -13.279 -3.463 -2.878 1.00 98.86 C +ATOM 11675 O THR 771 -13.205 -4.549 -2.304 1.00 98.86 O +ATOM 11676 CB THR 771 -15.547 -3.160 -3.893 1.00 98.86 C +ATOM 11677 CG2 THR 771 -15.907 -1.954 -3.002 1.00 98.86 C +ATOM 11678 OG1 THR 771 -16.269 -3.034 -5.104 1.00 98.86 O +ATOM 11686 N VAL 772 -12.768 -2.320 -2.405 1.00 98.77 N +ATOM 11687 CA VAL 772 -12.233 -2.120 -1.064 1.00 98.77 C +ATOM 11688 C VAL 772 -12.917 -0.884 -0.457 1.00 98.77 C +ATOM 11689 O VAL 772 -13.094 0.119 -1.147 1.00 98.77 O +ATOM 11690 CB VAL 772 -10.684 -1.944 -1.080 1.00 98.77 C +ATOM 11691 CG1 VAL 772 -10.170 -0.751 -1.913 1.00 98.77 C +ATOM 11692 CG2 VAL 772 -10.081 -1.885 0.336 1.00 98.77 C +ATOM 11702 N ASN 773 -13.303 -0.990 0.821 1.00 98.44 N +ATOM 11703 CA ASN 773 -13.893 0.099 1.599 1.00 98.44 C +ATOM 11704 C ASN 773 -13.084 0.235 2.889 1.00 98.44 C +ATOM 11705 O ASN 773 -12.790 -0.780 3.518 1.00 98.44 O +ATOM 11706 CB ASN 773 -15.370 -0.191 1.952 1.00 98.44 C +ATOM 11707 CG ASN 773 -16.266 -0.467 0.743 1.00 98.44 C +ATOM 11708 ND2 ASN 773 -16.915 -1.633 0.720 1.00 98.44 N +ATOM 11709 OD1 ASN 773 -16.378 0.365 -0.153 1.00 98.44 O +ATOM 11716 N TYR 774 -12.763 1.479 3.267 1.00 98.46 N +ATOM 11717 CA TYR 774 -12.034 1.796 4.487 1.00 98.46 C +ATOM 11718 C TYR 774 -12.771 2.899 5.250 1.00 98.46 C +ATOM 11719 O TYR 774 -12.751 4.053 4.822 1.00 98.46 O +ATOM 11720 CB TYR 774 -10.578 2.187 4.151 1.00 98.46 C +ATOM 11721 CG TYR 774 -9.719 2.529 5.361 1.00 98.46 C +ATOM 11722 CD1 TYR 774 -9.023 3.755 5.414 1.00 98.46 C +ATOM 11723 CD2 TYR 774 -9.630 1.632 6.449 1.00 98.46 C +ATOM 11724 CE1 TYR 774 -8.258 4.086 6.549 1.00 98.46 C +ATOM 11725 CE2 TYR 774 -8.873 1.966 7.586 1.00 98.46 C +ATOM 11726 OH TYR 774 -7.459 3.526 8.743 1.00 98.46 O +ATOM 11727 CZ TYR 774 -8.187 3.195 7.638 1.00 98.46 C +ATOM 11737 N GLN 775 -13.379 2.506 6.379 1.00 97.78 N +ATOM 11738 CA GLN 775 -13.953 3.402 7.376 1.00 97.78 C +ATOM 11739 C GLN 775 -12.884 3.752 8.428 1.00 97.78 C +ATOM 11740 O GLN 775 -12.023 2.923 8.726 1.00 97.78 O +ATOM 11741 CB GLN 775 -15.203 2.728 7.982 1.00 97.78 C +ATOM 11742 CG GLN 775 -15.987 3.602 8.987 1.00 97.78 C +ATOM 11743 CD GLN 775 -17.290 2.954 9.464 1.00 97.78 C +ATOM 11744 NE2 GLN 775 -17.768 3.355 10.643 1.00 97.78 N +ATOM 11745 OE1 GLN 775 -17.880 2.127 8.773 1.00 97.78 O +ATOM 11754 N PHE 776 -12.960 4.978 8.971 1.00 94.95 N +ATOM 11755 CA PHE 776 -12.001 5.522 9.948 1.00 94.95 C +ATOM 11756 C PHE 776 -12.567 6.790 10.677 1.00 94.95 C +ATOM 11757 O PHE 776 -13.704 7.184 10.328 1.00 94.95 O +ATOM 11758 CB PHE 776 -10.625 5.852 9.287 1.00 94.95 C +ATOM 11759 CG PHE 776 -10.620 6.823 8.110 1.00 94.95 C +ATOM 11760 CD1 PHE 776 -10.973 6.382 6.816 1.00 94.95 C +ATOM 11761 CD2 PHE 776 -10.399 8.200 8.323 1.00 94.95 C +ATOM 11762 CE1 PHE 776 -11.041 7.284 5.765 1.00 94.95 C +ATOM 11763 CE2 PHE 776 -10.461 9.087 7.256 1.00 94.95 C +ATOM 11764 CZ PHE 776 -10.776 8.630 5.982 1.00 94.95 C +ATOM 11765 OXT PHE 776 -11.812 7.237 11.571 1.00 94.95 O +TER +END \ No newline at end of file diff --git a/modules/mol/alg/tests/testfiles/T1118v1LG035_1_1_1.sdf b/modules/mol/alg/tests/testfiles/T1118v1LG035_1_1_1.sdf new file mode 100644 index 0000000000000000000000000000000000000000..cf89833133af885774afe8d95f9f64181d635853 --- /dev/null +++ b/modules/mol/alg/tests/testfiles/T1118v1LG035_1_1_1.sdf @@ -0,0 +1,7 @@ +FE + RDKit 3D + + 1 0 0 0 0 0 0 0 0 0999 V2000 + -35.5550 8.2920 -29.2570 Fe 0 0 0 0 0 15 0 0 0 0 0 0 +M CHG 1 1 3 +M END \ No newline at end of file diff --git a/modules/mol/alg/tests/testfiles/T1118v1_001.sdf b/modules/mol/alg/tests/testfiles/T1118v1_001.sdf new file mode 100644 index 0000000000000000000000000000000000000000..b1d8225d9d7f948e403bffbd33e2b82d426e46bc --- /dev/null +++ b/modules/mol/alg/tests/testfiles/T1118v1_001.sdf @@ -0,0 +1,7 @@ +C + + + 1 0 0 0 0 0 999 V2000 + 9.6360 -32.3740 0.8850 Fe 0 0 0 0 0 0 +M END +$$$$ diff --git a/modules/mol/base/doc/editors.rst b/modules/mol/base/doc/editors.rst index 24162f9faf5980fcbab03d0b145fce1d0bd5fa6e..01214c4b3a3798d3fedf10a345b04aee56d42c19 100644 --- a/modules/mol/base/doc/editors.rst +++ b/modules/mol/base/doc/editors.rst @@ -439,39 +439,6 @@ Euclidian space. Set the transformed position of atoms. This method will also update the original position of atoms by applying the inverse of the entity transform. - - Setting all positions at once is by far faster than call the function for - each atom, but it is only available if OpenStructure was compiled with an - enabled ``USE_NUMPY`` flag (see :ref:`here <cmake-flags>` for details). The - fastest option to work with all atom positions externally is to extract the - list of :attr:`~ost.mol.EntityHandle.atoms` with - :meth:`ost.mol.EntityHandle.GetPositions` (with *sort_by_index = False*). - Then extract a buffered editor and use the same list of atoms with a - modified numpy array as input to this function. Example: - - .. code-block:: python - - # get atom list and positions - atom_list = ent.atoms - positions = ent.GetPositions(False) - # modify positions but keep ent and atom_list unchanged - # ... - # apply changes to entity all at once - edi = ent.EditXCS(mol.BUFFERED_EDIT) - edi.SetAtomPos(atom_list, positions) - edi.UpdateICS() - - :param atom: A valid atom handle - :type atom: :class:`ost.mol.AtomHandle` - :param atom_list: A valid atom handle list or a list of atom :attr:`indices - <ost.mol.AtomHandle.index>`. - :type atom_list: :class:`ost.mol.AtomHandleList` or :class:`list` of - :class:`int` - :param pos: The new position - :type pos: :class:`~ost.geom.Vec3` - :param pos_list: An array of positions (shape [*len(atom_list)*, 3], - preferably contiguous array in memory (C order)). - :type pos_list: :class:`numpy.array` .. method:: SetAtomOriginalPos(atom, pos) SetAtomOriginalPos(atom_list, pos_list) diff --git a/modules/mol/base/doc/entity.rst b/modules/mol/base/doc/entity.rst index 4238bfbce5e930c14ac18a1374eb75aeddaba71a..6d8f4ea104e66dc0996b1e23cda9188b54bedb31 100644 --- a/modules/mol/base/doc/entity.rst +++ b/modules/mol/base/doc/entity.rst @@ -131,14 +131,6 @@ Entity Handle :type: Vec3 - .. attribute:: positions - - Equivalent to calling :meth:`GetPositions` with *sort_by_index = True*. This - property is read-only and only available if OpenStructure was compiled with - an enabled ``USE_NUMPY`` flag (see :ref:`here <cmake-flags>` for details). - - :type: :class:`numpy.array` - .. attribute:: valid Validity of handle. @@ -321,17 +313,6 @@ Entity Handle .. method:: GetGeometricCenter() See :attr:`geometric_center` - - .. method:: GetPositions(sort_by_index=True) - - :return: Array of atom positions for this entity. - :rtype: :class:`numpy.array` (shape [:attr:`atom_count`, 3]) - :param sort_by_index: If True, the atoms are sorted by their - :attr:`~AtomHandle.index`. Otherwise, they are sorted - as they appear in the :attr:`atoms` list. - - This method is only available if OpenStructure was compiled with an enabled - ``USE_NUMPY`` flag (see :ref:`here <cmake-flags>` for details). .. method:: FindWithin(pos, radius) diff --git a/modules/mol/base/doc/mol.rst b/modules/mol/base/doc/mol.rst index a416911491999891f73e81cfa6de2c9ef085b944..37f7a811fde4187ac26853de7f4e884a375b3c50 100644 --- a/modules/mol/base/doc/mol.rst +++ b/modules/mol/base/doc/mol.rst @@ -8,9 +8,12 @@ The mol module implements data structures to work with molecular datasets. At its heart lie the :class:`EntityHandle` and :class:`EntityView` classes which represent molecular structures such as proteins, DNA, RNA and small molecules. There are also classes to deal with molecular surfaces. .. toctree:: + :maxdepth: 2 entity editors query surface traj + ../alg/molalg + ../mm/molmm \ No newline at end of file diff --git a/modules/mol/base/pymod/export_editors.cc b/modules/mol/base/pymod/export_editors.cc index e20ee4d4e11b5b8e7b658926667cb85005c2c5e2..e2cd89b9b7730a5e7245ed93a2818a57a55e9d06 100644 --- a/modules/mol/base/pymod/export_editors.cc +++ b/modules/mol/base/pymod/export_editors.cc @@ -29,18 +29,6 @@ using namespace boost::python; using namespace ost; using namespace ost::mol; -/* Including NumPy headers produces compiler warnings. The ones about "Using - deprecated NumPy API..." we can not get rid of. The highest NumPy version we - support is 1.6 while the non-deprecated API starts with version 1.7. - Also see the comment in modules/gfx/pymod/export_primlist.cc for further - information. -*/ -#if OST_NUMPY_SUPPORT_ENABLED -#include <numpy/numpyconfig.h> -#define NPY_NO_DEPRECATED_API NPY_1_6_API_VERSION -#include <numpy/arrayobject.h> -#endif - namespace { BondHandle (EditorBase::*connect_a)(const AtomHandle&, @@ -93,74 +81,6 @@ void (ICSEditor::*rotate_torsion_b)(const AtomHandle&, const AtomHandle&, void (EditorBase::*renumber_chain_a)(ChainHandle,const ResNumList&)=&EditorBase::RenumberChain; void (EditorBase::*renumber_chain_b)(const ChainHandle&,int, bool)=&EditorBase::RenumberChain; -#if OST_NUMPY_SUPPORT_ENABLED -template<typename T, bool O> -void set_pos2_nc_t(XCSEditor& e, const AtomHandleList& alist, PyArrayObject* na) -{ - size_t count=0; - for(AtomHandleList::const_iterator ait=alist.begin();ait!=alist.end();++ait,++count) { - if(O) { - e.SetAtomOriginalPos(*ait,geom::Vec3(static_cast<Real>(*reinterpret_cast<T*>(PyArray_GETPTR2(na,count,0))), - static_cast<Real>(*reinterpret_cast<T*>(PyArray_GETPTR2(na,count,1))), - static_cast<Real>(*reinterpret_cast<T*>(PyArray_GETPTR2(na,count,2))))); - } else { - e.SetAtomTransformedPos(*ait,geom::Vec3(static_cast<Real>(*reinterpret_cast<T*>(PyArray_GETPTR2(na,count,0))), - static_cast<Real>(*reinterpret_cast<T*>(PyArray_GETPTR2(na,count,1))), - static_cast<Real>(*reinterpret_cast<T*>(PyArray_GETPTR2(na,count,2))))); - } - } -} - -template<bool O> -void set_pos2_t(XCSEditor& e, const AtomHandleList& alist, object pyobj) -{ - size_t acount = alist.size(); - - if(!PyArray_Check(pyobj.ptr())) { - throw Error("expected a numpy array"); - return; - } - PyArrayObject* na=reinterpret_cast<PyArrayObject*>(pyobj.ptr()); - - if(PyArray_NDIM(na)!=2 || PyArray_DIM(na,0)!=int(acount) || PyArray_DIM(na,1)!=3) { - throw Error("expected a numpy array of shape (NAtoms, 3)"); - return; - } - - if(PyArray_ISCONTIGUOUS(na)) { - if(PyArray_TYPE(na)==NPY_FLOAT) { - if(O) { - e.SetAtomOriginalPos(alist,reinterpret_cast<float*>(PyArray_DATA(na))); - } else { - e.SetAtomTransformedPos(alist,reinterpret_cast<float*>(PyArray_DATA(na))); - } - } else if(PyArray_TYPE(na)==NPY_DOUBLE) { - if(O) { - e.SetAtomOriginalPos(alist,reinterpret_cast<double*>(PyArray_DATA(na))); - } else { - e.SetAtomTransformedPos(alist,reinterpret_cast<double*>(PyArray_DATA(na))); - } - } else { - throw Error("expected a numpy array of type float or double"); - return; - } - } else { - // non-contiguous -#if 0 - throw Error("expected contiguous numpy array"); -#else - if(PyArray_TYPE(na)==NPY_FLOAT) { - set_pos2_nc_t<float,O>(e,alist,na); - } else if(PyArray_TYPE(na)==NPY_DOUBLE) { - set_pos2_nc_t<double,O>(e,alist,na); - } else { - throw Error("expected a numpy array of type float or double"); - return; - } -#endif - } -} -#endif void set_pos(XCSEditor& e, object o1, object o2, bool trans) { @@ -174,50 +94,7 @@ void set_pos(XCSEditor& e, object o1, object o2, bool trans) } return; } - -#if OST_NUMPY_SUPPORT_ENABLED - - extract<AtomHandleList> eal(o1); - if(eal.check()) { - if(trans) { - set_pos2_t<false>(e,eal(),o2); - } else { - set_pos2_t<true>(e,eal(),o2); - } - return; - } - - std::map<unsigned long,AtomHandle> amap; - impl::EntityImplPtr ei=e.GetEntity().Impl(); - for(impl::ChainImplList::iterator cit=ei->GetChainList().begin(); - cit!=ei->GetChainList().end();++cit) { - for (impl::ResidueImplList::iterator rit = (*cit)->GetResidueList().begin(), - ret = (*cit)->GetResidueList().end(); rit != ret; ++rit) { - - for (impl::AtomImplList::iterator ait = (*rit)->GetAtomList().begin(), - aet = (*rit)->GetAtomList().end(); ait != aet; ++ait) { - - amap[(*ait)->GetIndex()]=*ait; - } - } - } - - AtomHandleList alist; - for(int i=0;i<len(o1);++i) { - int gid = extract<int>(o1[i]); - std::map<unsigned long,AtomHandle>::iterator ait=amap.find(static_cast<unsigned long>(gid)); - alist.push_back(ait==amap.end() ? AtomHandle() : ait->second); - } - - if(trans) { - set_pos2_t<false>(e,alist,o2); - } else { - set_pos2_t<true>(e,alist,o2); - } - -#else throw Error("SetAtom*Pos(...,ndarray) not available, because numpy support not compiled in"); -#endif } void set_o_pos(XCSEditor& e, object o1, object o2) @@ -234,14 +111,6 @@ void set_t_pos(XCSEditor& e, object o1, object o2) void export_Editors() { -#if OST_NUMPY_SUPPORT_ENABLED - // The following define enforces no return value when calling import_array - #undef NUMPY_IMPORT_ARRAY_RETVAL - #define NUMPY_IMPORT_ARRAY_RETVAL - import_array(); -#endif - - class_<EditorBase>("EditorBase", no_init) .def("InsertChain", insert_chain_a) .def("InsertChain", insert_chain_b,(arg("chain_name"),arg("chain"), arg("deep")=false)) diff --git a/modules/mol/base/pymod/export_entity.cc b/modules/mol/base/pymod/export_entity.cc index bd2e97248f2ebd6ff6d0e253b1286d7581350637..b12feb7bcb187a9687b74afdc9c46f2c699d7b49 100644 --- a/modules/mol/base/pymod/export_entity.cc +++ b/modules/mol/base/pymod/export_entity.cc @@ -35,18 +35,6 @@ using namespace ost::mol; #include <ost/export_helper/generic_property_def.hh> -/* Including NumPy headers produces compiler warnings. The ones about "Using - deprecated NumPy API..." we can not get rid of. The highest NumPy version we - support is 1.6 while the non-deprecated API starts with version 1.7. - Also see the comment in modules/gfx/pymod/export_primlist.cc for further - information. -*/ -#if OST_NUMPY_SUPPORT_ENABLED -#include <numpy/numpyconfig.h> -#define NPY_NO_DEPRECATED_API NPY_1_6_API_VERSION -#include <numpy/arrayobject.h> -#endif - namespace { EntityHandle create1() { return CreateEntity(); } @@ -76,53 +64,6 @@ ICSEditor depr_request_ics_editor(EntityHandle e, EditMode m) return e.EditICS(m); } - -#if OST_NUMPY_SUPPORT_ENABLED - -bool less_index(const mol::AtomHandle& a1, const mol::AtomHandle& a2) -{ - return a1.GetIndex()<a2.GetIndex(); -} -PyObject* get_pos2(EntityHandle& entity, bool id_sorted) -{ - npy_intp dims[]={entity.GetAtomCount(),3}; - PyObject* na = PyArray_SimpleNew(2,dims,NPY_FLOAT); - npy_float* nad = reinterpret_cast<npy_float*>(PyArray_DATA(na)); - if(id_sorted) { - AtomHandleList alist = entity.GetAtomList(); - std::sort(alist.begin(),alist.end(),less_index); - for(AtomHandleList::const_iterator it=alist.begin();it!=alist.end();++it,nad+=3) { - geom::Vec3 pos=(*it).GetPos(); - nad[0]=static_cast<npy_float>(pos[0]); - nad[1]=static_cast<npy_float>(pos[1]); - nad[2]=static_cast<npy_float>(pos[2]); - } - } else { - impl::EntityImplPtr ei=entity.Impl(); - for(impl::ChainImplList::iterator cit=ei->GetChainList().begin(); - cit!=ei->GetChainList().end();++cit) { - for (impl::ResidueImplList::iterator rit = (*cit)->GetResidueList().begin(), - ret = (*cit)->GetResidueList().end(); rit != ret; ++rit) { - - for (impl::AtomImplList::iterator ait = (*rit)->GetAtomList().begin(), - aet = (*rit)->GetAtomList().end(); ait != aet; ++ait, nad+=3) { - - geom::Vec3 pos=(*ait)->TransformedPos(); - nad[0]=static_cast<npy_float>(pos[0]); - nad[1]=static_cast<npy_float>(pos[1]); - nad[2]=static_cast<npy_float>(pos[2]); - }}} - } - return na; -} - -PyObject* get_pos1(EntityHandle& entity) -{ - return get_pos2(entity,true); -} - -#endif - geom::Mat4 depr_get_transformation_matrix(const EntityHandle& eh) { return eh.GetTransformationMatrix(); @@ -137,13 +78,6 @@ bool depr_is_transformation_identity(const EntityHandle& eh) void export_Entity() { -#if OST_NUMPY_SUPPORT_ENABLED - // The following define enforces no return value when calling import_array - #undef NUMPY_IMPORT_ARRAY_RETVAL - #define NUMPY_IMPORT_ARRAY_RETVAL - import_array(); -#endif - class_<EntityBase> ent_base("EntityBase", no_init); ent_base .def(self_ns::str(self)) @@ -229,11 +163,6 @@ void export_Entity() .def("GetHashCode", &EntityHandle::GetHashCode) .def(self==self) .def(self!=self) -#if OST_NUMPY_SUPPORT_ENABLED - .def("GetPositions",get_pos1) - .def("GetPositions",get_pos2) - .add_property("positions",get_pos1) -#endif ; def("CreateEntity",create1); diff --git a/modules/mol/base/src/impl/atom_impl.hh b/modules/mol/base/src/impl/atom_impl.hh index 658184a4237e1696daf4a6b05d741231b21e3263..006613498400de81e68ec6bc6c644930fd59fec0 100644 --- a/modules/mol/base/src/impl/atom_impl.hh +++ b/modules/mol/base/src/impl/atom_impl.hh @@ -85,6 +85,10 @@ public: return connector_list_; } + ConnectorImplList& GetSecondaryConnectors() { + return connector_list_; + } + void AddSecondaryConnector(const ConnectorImplP& bp); // updates position and then follows secondary connectors @@ -225,6 +229,8 @@ public: unsigned long GetIndex() const {return index_;} void SetIndex(unsigned long index) {index_=index;} + + void SetFragment(FragmentImplP fragment) { fragment_ = fragment; } private: ResidueImplW res_; diff --git a/modules/mol/base/src/impl/entity_impl.cc b/modules/mol/base/src/impl/entity_impl.cc index 4d378dbbe437aad6f1b79d9bcd9b3643ae6554cd..dfcbcd6ac8df969cedc09327697ea3da097e8a8f 100644 --- a/modules/mol/base/src/impl/entity_impl.cc +++ b/modules/mol/base/src/impl/entity_impl.cc @@ -20,6 +20,7 @@ #include <sys/time.h> #endif #include <map> +#include <stack> #include <boost/shared_ptr.hpp> #include <boost/version.hpp> @@ -60,6 +61,109 @@ using boost::logic::tribool; using boost::logic::indeterminate; +namespace{ + +// TraceDirectionality calls were performed recursively on AtomImpl pointers. +// For large polymer chains segfaults were observed which were likely caused +// by filling up the stack memory. The following is basically a one to one +// reimplementation using an actual stack data structure without the recursive. +// calls. Don't blame me for inefficient code. + +// The original behavior can be re-activated by just uncommenting the respective +// line in EntityImpl::TraceDirectionality and comment out the call to Trace +struct TraceParam{ + TraceParam(ost::mol::impl::AtomImplPtr at, + ost::mol::impl::FragmentImplP frag, + ost::mol::impl::ConnectorImplP conn, + int n): at(at), frag(frag), conn(conn), n(n) { } + ost::mol::impl::AtomImplPtr at; + ost::mol::impl::FragmentImplP frag; + ost::mol::impl::ConnectorImplP conn; + int n; +}; + +void Trace(ost::mol::impl::AtomImplPtr at, + ost::mol::impl::FragmentImplP frag, + ost::mol::impl::ConnectorImplP conn, + int n, unsigned int& count) { + + std::stack<TraceParam> param_stack; + param_stack.emplace(at, frag, conn, 0); + + while(!param_stack.empty()) { + + TraceParam param = param_stack.top(); + param_stack.pop(); + + if (param.conn) { +#if !defined(NDEBUG) + if (param.conn->GetFirst()==param.at) { + LOG_TRACE("dir:" << String(param.n,' ') << " atom " << param.at->GetResidue()->GetNumber() + << "." << param.at->Name() << " [" << param.conn->GetSecond()->GetQualifiedName() + << " ]"); + } else { + LOG_TRACE("dir:" << String(param.n,' ') << " atom " << param.at->GetResidue()->GetNumber() + << "." << param.at->Name() << " [" << param.conn->GetFirst()->GetQualifiedName() + << " ]"); + } +#endif + } else { + LOG_TRACE("dir:" << String(param.n,' ') << " atom " << param.at->GetResidue()->GetNumber() + << "." << param.at->Name() << " [ ]"); + } + + // presence of a primary connector indicates ring closure + if (param.at->IsTraced()){ + continue; + } + + // recursive count + count+=1; + param.at->SetTraced(true); + param.at->SetFragment(frag); + + // assumes that AtomImpl::ClearDirectionality was called before. + // This transfers all connectors to secondary connectors and wipes + // primary connector + ost::mol::impl::ConnectorImplList& connector_list = param.at->GetSecondaryConnectors(); + + if (param.conn) { + ost::mol::impl::ConnectorImplList::iterator prim_it=connector_list.end(); + for (ost::mol::impl::ConnectorImplList::iterator it=connector_list.begin(); + it!=connector_list.end(); ++it) { + ost::mol::impl::ConnectorImplP c=*it; + if (c->GetFirst() == param.at) { + param_stack.emplace(c->GetSecond(), frag, c, param.n+1); + } else { + if (c==param.conn) { + prim_it=it; // found primary connector => thats basically the incoming connector + } else { + c->Switch(); // reverse order of connector + param_stack.emplace(c->GetSecond(), frag, c, param.n+1); + } + } + } + if (prim_it!=connector_list.end()) { + param.at->SetPrimaryConnector(*prim_it); + connector_list.erase(prim_it); // directly operate on atoms connector list + } + } else { + for (ost::mol::impl::ConnectorImplList::iterator it=connector_list.begin(); + it!=connector_list.end(); ++it) { + ost::mol::impl::ConnectorImplP c=*it; + if (c->GetFirst() == param.at) { + param_stack.emplace(c->GetSecond(), frag, c, param.n+1); + } else { + c->Switch(); // reverse order of connector + param_stack.emplace(c->GetSecond(), frag, c, param.n+1); + } + } + } + } +} + +} // anon ns + namespace ost { namespace mol { namespace impl { @@ -323,7 +427,7 @@ AtomImplPtr EntityImpl::CreateAtom(const ResidueImplPtr& rp, void EntityImpl::DeleteAtom(const AtomImplPtr& atom) { atom_map_.erase(atom.get()); - atom_organizer_.Remove(atom); + atom_organizer_.Remove(atom, atom->TransformedPos()); } ResidueImplPtr EntityImpl::CreateResidue(const ChainImplPtr& cp, @@ -581,8 +685,15 @@ void EntityImpl::TraceDirectionality() FragmentImplP frag( new FragmentImpl(it->second)); #endif fragment_list_.push_back(frag); - it->second->TraceDirectionality(frag,ConnectorImplP(), 0, - traced_atom_count); + + // Recursive call to TraceDirectionality triggered issues with recursive + // depth and resulted in segfaults for very large polymer chains. + // Trace in anonymous namespace implements the same functionality but + // without recursion. Old behavior with recursion can be enabled + // by just swapping the function calls again. + Trace(it->second, frag, ConnectorImplP(), 0, traced_atom_count); + //it->second->TraceDirectionality(frag,ConnectorImplP(), 0, + // traced_atom_count); } } if(traced_atom_count<atom_map_.size()) { diff --git a/modules/mol/base/src/spatial_organizer.hh b/modules/mol/base/src/spatial_organizer.hh index 413bc6af478e5c50c438e2ff4ac59f223376138d..fce132a258574fa59bf012b185ec46c715a4fdee 100644 --- a/modules/mol/base/src/spatial_organizer.hh +++ b/modules/mol/base/src/spatial_organizer.hh @@ -113,6 +113,23 @@ public: } } + void Remove(const ITEM& item, const VEC& pos) { + // variation of the above, first try in organizer bucket + // for which you give a hint with pos. If this is successful, + // return. Call naive Remove otherwise + Index indx=gen_index(pos); + typename ItemMap::iterator i = map_.find(indx); + if(i != map_.end()) { + for (size_t j=0; j<i->second.size(); ++j) { + if (i->second[j].item==item) { + i->second.erase(i->second.begin()+j); + return; + } + } + } + Remove(item); + } + bool HasWithin(const VEC& pos, Real dist) const { Real dist2=dist*dist; Index imin = Index::Max(min_, gen_index(pos-VEC(dist,dist,dist))); diff --git a/modules/mol/base/tests/CMakeLists.txt b/modules/mol/base/tests/CMakeLists.txt index 591eadd8617e46e8ce233a42dfc9f7b67ffd4df6..8a97c347ee33a3fddaae5ec4c3eeba9b23c08fae 100644 --- a/modules/mol/base/tests/CMakeLists.txt +++ b/modules/mol/base/tests/CMakeLists.txt @@ -17,10 +17,6 @@ set(OST_MOL_BASE_UNIT_TESTS test_invalid.py ) -if (USE_NUMPY) - list(APPEND OST_MOL_BASE_UNIT_TESTS test_numpy.py) -endif (USE_NUMPY) - ost_unittest(MODULE mol SOURCES "${OST_MOL_BASE_UNIT_TESTS}") # for valgrind debugging diff --git a/modules/mol/base/tests/test_numpy.py b/modules/mol/base/tests/test_numpy.py deleted file mode 100644 index fb69b9afe1a5fd8bf0a3e9d02b3a4006c7fd6a12..0000000000000000000000000000000000000000 --- a/modules/mol/base/tests/test_numpy.py +++ /dev/null @@ -1,75 +0,0 @@ -import unittest -if __name__== '__main__': - import sys - sys.path.insert(0,"../../../../stage/lib64/openstructure/") - sys.path.insert(0,"../../../../stage/lib/openstructure/") - -import ost -from ost import geom, mol - -if ost.WITH_NUMPY: - has_numpy=True - try: - import numpy - except ImportError as e: - has_numpy=False -else: - has_numpy=False - -def v2v(v): - return geom.Vec3(float(v[0]),float(v[1]),float(v[2])) - -def dd(v1,v2): - return geom.Distance(v1,v2)<1e-8 - -class TestNumpy(unittest.TestCase): - def setUp(self): - pass - - def test_(self): - if not has_numpy: - return - entity=mol.CreateEntity() - ed=entity.EditXCS() - ch=ed.InsertChain("X") - re=ed.AppendResidue(ch,"ALA") - a0=ed.InsertAtom(re,"A",geom.Vec3(0,0,0)) - self.assertEqual(a0.GetIndex(),0) - a1=ed.InsertAtom(re,"B",geom.Vec3(1,0,0)) - self.assertEqual(a1.GetIndex(),1) - a2=ed.InsertAtom(re,"C",geom.Vec3(2,0,0)) - self.assertEqual(a2.GetIndex(),2) - a3=ed.InsertAtom(re,"D",geom.Vec3(3,0,0)) - self.assertEqual(a3.GetIndex(),3) - - self.assertTrue(dd(a0.pos,geom.Vec3(0,0,0))) - self.assertTrue(dd(a1.pos,geom.Vec3(1,0,0))) - self.assertTrue(dd(a2.pos,geom.Vec3(2,0,0))) - self.assertTrue(dd(a3.pos,geom.Vec3(3,0,0))) - - ed.SetAtomTransformedPos(entity.GetAtomList(), - numpy.array([[0,1,0],[0,2,0],[0,3,0],[0,4,0]], dtype=numpy.float32)) - - self.assertTrue(dd(a0.pos,geom.Vec3(0,1,0))) - self.assertTrue(dd(a1.pos,geom.Vec3(0,2,0))) - self.assertTrue(dd(a2.pos,geom.Vec3(0,3,0))) - self.assertTrue(dd(a3.pos,geom.Vec3(0,4,0))) - - na=entity.positions - - self.assertTrue(dd(v2v(na[0]),geom.Vec3(0,1,0))) - self.assertTrue(dd(v2v(na[1]),geom.Vec3(0,2,0))) - self.assertTrue(dd(v2v(na[2]),geom.Vec3(0,3,0))) - self.assertTrue(dd(v2v(na[3]),geom.Vec3(0,4,0))) - - ed.SetAtomTransformedPos([3,99,2], - numpy.array([[0,0,-3],[-1,-1,-1],[0,0,-2]], dtype=numpy.float32)) - - self.assertTrue(dd(a0.pos,geom.Vec3(0,1,0))) - self.assertTrue(dd(a1.pos,geom.Vec3(0,2,0))) - self.assertTrue(dd(a2.pos,geom.Vec3(0,0,-2))) - self.assertTrue(dd(a3.pos,geom.Vec3(0,0,-3))) - -if __name__== '__main__': - unittest.main() - diff --git a/modules/mol/mm/doc/antechamber.rst b/modules/mol/mm/doc/antechamber.rst new file mode 100644 index 0000000000000000000000000000000000000000..ea975096a99ba16d8e4f8bc775064f3a7cbe4f33 --- /dev/null +++ b/modules/mol/mm/doc/antechamber.rst @@ -0,0 +1,30 @@ +:mod:`~ost.mol.mm.antechamber` -- Generating forcefields with Antechamber +-------------------------------------------------------------------------------- + +The antechamber submodule of mol.mm defines functions to use Antechamber (from +AmberTools) to automatically generate force field parameters and load the +results into :class:`~ost.mol.mm.Forcefield` objects. + +**Example usage**: + +.. code-block:: python + + from ost.mol import mm + + # create parameters for RVP using PDB's component dictionary + mm.antechamber.RunAntechamber('RVP', 'components.cif', base_out_dir='ligands') + + # create force field + ff = mm.Forcefield() + ff = mm.antechamber.AddFromPath(ff, 'ligands/RVP') + # equivalent: ff = mm.antechamber.AddFromFiles(ff, 'ligands/RVP/frcmod', + # 'ligands/RVP/out.mpdb') + # since Antechamber cannot deal with ions, you can do it manually + ff = mm.antechamber.AddIon(ff, 'CL', 'CL', 35.45, -1.0, 0.4401, 0.4184) + # save it + ff.Save('ligands/ff.dat') + +**Functions**: + +.. automodule:: ost.mol.mm.antechamber + :members: \ No newline at end of file diff --git a/modules/mol/mm/doc/forcefield.rst b/modules/mol/mm/doc/forcefield.rst index 5b88a42d19a7e1c3cdd859e04afd555c64c9ce4a..b6a181687f91abf0975822105e71af17d903137c 100644 --- a/modules/mol/mm/doc/forcefield.rst +++ b/modules/mol/mm/doc/forcefield.rst @@ -139,33 +139,9 @@ Reading forcefields Generating forcefields with Antechamber -------------------------------------------------------------------------------- -The antechamber submodule of mol.mm defines functions to use Antechamber (from -AmberTools) to automatically generate force field parameters and load the -results into :class:`~ost.mol.mm.Forcefield` objects. - -**Example usage**: - -.. code-block:: python - - from ost.mol import mm - - # create parameters for RVP using PDB's component dictionary - mm.antechamber.RunAntechamber('RVP', 'components.cif', base_out_dir='ligands') - - # create force field - ff = mm.Forcefield() - ff = mm.antechamber.AddFromPath(ff, 'ligands/RVP') - # equivalent: ff = mm.antechamber.AddFromFiles(ff, 'ligands/RVP/frcmod', - # 'ligands/RVP/out.mpdb') - # since Antechamber cannot deal with ions, you can do it manually - ff = mm.antechamber.AddIon(ff, 'CL', 'CL', 35.45, -1.0, 0.4401, 0.4184) - # save it - ff.Save('ligands/ff.dat') - -**Functions**: - -.. automodule:: ost.mol.mm.antechamber - :members: +The :doc:`antechamber <antechamber>` submodule of mol.mm defines functions to use +Antechamber (from AmberTools) to automatically generate force field parameters +and load the results into :class:`~ost.mol.mm.Forcefield` objects. The Forcefield Class -------------------------------------------------------------------------------- @@ -707,8 +683,3 @@ The Forcefield Class :returns: :class:`BlockModifier` for this name, invalid if it can't be found - - - - - diff --git a/modules/mol/mm/doc/molmm.rst b/modules/mol/mm/doc/molmm.rst index e372ae76bc1209b0b28eebb92c28b59e28b97d9b..91e204529c14f663cb85d03f7a60a31042b197b7 100644 --- a/modules/mol/mm/doc/molmm.rst +++ b/modules/mol/mm/doc/molmm.rst @@ -1,4 +1,4 @@ -The mm Module +:mod:`~ost.mol.mm` - The mm Module ================================================================================ .. module:: ost.mol.mm @@ -79,6 +79,7 @@ Documentation interaction buildingblock forcefield + antechamber settings topology observers diff --git a/modules/mol/mm/doc/simulation.rst b/modules/mol/mm/doc/simulation.rst index 3fd443aea7a1b473c18e5ddfd6714236c67bb29d..c06b20a8edcc040dfc060ddaf9e2b554ada1103f 100644 --- a/modules/mol/mm/doc/simulation.rst +++ b/modules/mol/mm/doc/simulation.rst @@ -32,6 +32,7 @@ mapped back to the attached structure at any time. :class:`Topology` fails .. class:: Simulation(topology,entity,settings) + :noindex: Second constructor that takes a :class:`Topology`, a consistent :class:`ost.mol.EntityHandle` and a :class:`Settings` as input. diff --git a/modules/mol/mm/doc/topology.rst b/modules/mol/mm/doc/topology.rst index 19760508c658cb2f42f2a9d0662b83da390f8c95..0cd857444260d82d76b62e9a2ac76c85ac685d96 100644 --- a/modules/mol/mm/doc/topology.rst +++ b/modules/mol/mm/doc/topology.rst @@ -130,6 +130,7 @@ The Topology Class contains OBC scalings but the **other** not .. method:: Merge(ent, other, other_ent) + :noindex: Merges in another :class:`Topology` and adds all their particles and interactions. Assuming the actual :class:`Topology` contains n particles, @@ -1191,6 +1192,7 @@ The Topology Class .. method:: GetHarmonicBondIndices(index) + :noindex: :param index: Index of particle :type index: :class:`int` @@ -1203,6 +1205,7 @@ The Topology Class .. method:: GetHarmonicAngleIndices(index) + :noindex: :param index: Index of particle :type index: :class:`int` @@ -1215,6 +1218,7 @@ The Topology Class .. method:: GetUreyBradleyAngleIndices(index) + :noindex: :param index: Index of particle :type index: :class:`int` @@ -1228,6 +1232,7 @@ The Topology Class .. method:: GetPeriodicDihedralIndices(index) + :noindex: :param index: Index of particle :type index: :class:`int` @@ -1263,6 +1268,7 @@ The Topology Class .. method:: GetCMapIndices(index) + :noindex: :param index: Index of particle :type index: :class:`int` diff --git a/modules/mol/mm/src/observer.cc b/modules/mol/mm/src/observer.cc index 0abc555daf188c65504a8779824d76a8693e3dc8..90a862083f9199b7bbc4f7041d75e4a935a96f82 100644 --- a/modules/mol/mm/src/observer.cc +++ b/modules/mol/mm/src/observer.cc @@ -55,7 +55,7 @@ void TrajWriter::Init(boost::shared_ptr<OpenMM::Context> c, registered_ = true; context_ = c; - ost::io::IOProfile profile("CHARMM",false,false,false,false,false,false); + ost::io::IOProfile profile("CHARMM",false,false,false,false,false); ost::io::PDBWriter writer(pdb_filename_, profile); writer.Write(ent.GetAtomList()); diff --git a/modules/mol/mm/src/topology_creator.cc b/modules/mol/mm/src/topology_creator.cc index 00ba0738d68f5730d362097d0eee446d4ccef39b..9f0222b9c43edd72db0290fe1670b241315615ec 100644 --- a/modules/mol/mm/src/topology_creator.cc +++ b/modules/mol/mm/src/topology_creator.cc @@ -88,7 +88,8 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, //this should be enough for most needs ost::mol::ResidueHandle next,prev; - bool n_ter,c_ter; + bool n_ter, c_ter; + std::set<unsigned long> n_ter_residues, c_ter_residues; ost::mol::AtomHandle peptide_n,peptide_c,nucleotide_p,nucleotide_o; for(ost::mol::ResidueHandleList::iterator i = res_list.begin(); @@ -133,8 +134,8 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, } } - if(n_ter) i->SetBoolProp("n_ter",true); - if(c_ter) i->SetBoolProp("c_ter",true); + if(n_ter) n_ter_residues.insert(i->GetHashCode()); + if(c_ter) c_ter_residues.insert(i->GetHashCode()); } @@ -181,7 +182,7 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, } } //check for n terminus - if(i->HasProp("n_ter")){ + if(n_ter_residues.find(i->GetHashCode()) != n_ter_residues.end()){ String exception_name = ""; if(settings->termini_exceptions->HasException(*i)){ exception_name = settings->termini_exceptions->GetException(*i); @@ -193,7 +194,7 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, block->RemoveInteractionsToPrev(); } } - if(i->HasProp("c_ter")){ + if(c_ter_residues.find(i->GetHashCode()) != c_ter_residues.end()){ String exception_name = ""; if(settings->termini_exceptions->HasException(*i)){ exception_name = settings->termini_exceptions->GetException(*i); diff --git a/modules/seq/alg/doc/aaindex.rst b/modules/seq/alg/doc/aaindex.rst new file mode 100644 index 0000000000000000000000000000000000000000..940794d3f6fc41d66a2172ba76af6ec1b4cd2daf --- /dev/null +++ b/modules/seq/alg/doc/aaindex.rst @@ -0,0 +1,22 @@ +:mod:`~ost.seq.alg.aaindex` -- AAIndex annotations +-------------------------------------------------------------------------------- + +.. module:: ost.seq.alg.aaindex + :synopsis: AAIndex annotations + +.. autoclass:: ost.seq.alg.aaindex.AAIndex + :members: + :special-members: __getitem__ + +The annotations/scores can either refer to single amino acids or represent +pairwise values. The two types are: + +.. autoclass:: ost.seq.alg.aaindex.AnnoType + :members: + :undoc-members: + +The actual data of an entry in the aaindex database is stored in a +:class:`aaindex.AAIndexData` object: + +.. autoclass:: ost.seq.alg.aaindex.AAIndexData + :members: diff --git a/modules/seq/alg/doc/renumber.rst b/modules/seq/alg/doc/renumber.rst new file mode 100644 index 0000000000000000000000000000000000000000..30688cd96a9e2ba5fad588c85b29e5ed1e67f210 --- /dev/null +++ b/modules/seq/alg/doc/renumber.rst @@ -0,0 +1,7 @@ +:mod:`~ost.seq.alg.renumber` -- Renumber entities +-------------------------------------------------------------------- + +.. module:: ost.seq.alg.renumber + :synopsis: Renumber entities + +.. autofunction:: ost.seq.alg.renumber.Renumber diff --git a/modules/seq/alg/doc/seqalg.rst b/modules/seq/alg/doc/seqalg.rst index a092012d9b019730ec6bbe73fa5282405546394e..117574c5f8d5598e8f315ab1537b0254cf04ea43 100644 --- a/modules/seq/alg/doc/seqalg.rst +++ b/modules/seq/alg/doc/seqalg.rst @@ -1,9 +1,18 @@ -:mod:`seq.alg <ost.seq.alg>` -- Algorithms for Sequences +:mod:`~ost.seq.alg` -- Algorithms for Sequences ================================================================================ .. module:: ost.seq.alg :synopsis: Algorithms for sequences +Submodules +-------------------------------------------------------------------------------- + +.. toctree:: + :maxdepth: 1 + + aaindex + renumber + Algorithms for Alignments -------------------------------------------------------------------------------- @@ -109,6 +118,95 @@ Algorithms for Alignments aligned to only gaps, is considered highly conserved (depending on the number of gap sequences). +.. function:: ShannonEntropy(aln, ignore_gaps=True) + + Returns the per-column Shannon entropies of the alignment. The entropy + describes how conserved a certain column in the alignment is. The higher + the entropy is, the less conserved the column. For a column with no amino + aids, the entropy value is set to NAN. + + :param aln: Multiple sequence alignment + :type aln: :class:`~ost.seq.AlignmentHandle` + :param ignore_gaps: Whether to ignore gaps in the column. + :type ignore_gaps: bool + + :returns: List of column entropies + +.. function:: SequenceIdentity(aln, ref_mode=seq.alg.RefMode.ALIGNMENT, seq_a=0, seq_b=1) + + Calculates the sequence identity between two sequences at index seq_a and seq_b in + a multiple sequence alignment. + + :param aln: multiple sequence alignment + :type aln: :class:`~ost.seq.AlignmentHandle` + :param ref_mode: influences the way the sequence identity is calculated. When + set to `seq.alg.RefMode.LONGER_SEQUENCE`, the sequence identity is + calculated as the number of matches divided by the length of the longer + sequence. If set to `seq.alg.RefMode.ALIGNMENT` (the default), the sequence + identity is calculated as the number of matches divided by the number of + aligned residues (not including the gaps). + :type ref_mode: int + :param seq_a: the index of the first sequence + :type seq_a: int + :param seq_b: the index of the second sequence + :type seq_b: int + :returns: sequence identity in the range 0 to 100. + :rtype: float + +.. function:: SequenceSimilarity(aln, subst_weight, normalize=false, seq_a=0, seq_b=1) + + Calculates the sequence similarity between two sequences at index seq_a and seq_b in + a multiple sequence alignment. + + :param aln: Multiple sequence alignment + :type aln: :class:`~ost.seq.AlignmentHandle` + :param subst_weight: the substitution weight matrix + (see the :ref:`BLOSUM Matrix<blosum>` section below) + :type subst_weight: :class:`~SubstWeightMatrix` + :param normalize: if set to True, normalize to the range of the + substitution weight matrix + :type normalize: bool + :param seq_a: the index of the first sequence + :type seq_a: int + :param seq_b: the index of the second sequence + :type seq_b: int + :returns: sequence similarity + :rtype: float + + +Create pairwise alignments +-------------------------------------------------------------------------------- + +OpenStructure provides naive implementations to create pairwise local, global +and semi-global alignments between two sequences: + +* :func:`LocalAlign` +* :func:`GlobalAlign` +* :func:`SemiGlobalAlign` + +The use of `parasail <https://github.com/jeffdaily/parasail/>`_ as a drop +in replacement is optional and provides significant speedups. +It must be enabled at compile time - see installation instructions. + +Reference: + + Jeff Daily. Parasail: SIMD C library for global, semi-global, + and local pairwise sequence alignments. (2016) BMC Bioinformatics + +Parasail allows to choose from various strategies but for the sake of +simplicity, this Python binding always calls +``parasail_<mode>_trace_scan_sat`` which seems reasonably fast across the +global, semi-global and local modes. See parasail documentation for more +information. + +You can always check if the alignment algorithms use parasail or the naive +implementations by calling: + +.. function:: ParasailAvailable() + + Returns True if OpenStructure has been compiled with parasail support, + False if not. + .. function:: LocalAlign(seq1, seq2, subst_weight, gap_open=-5, gap_ext=-2) Performs a Smith/Waterman local alignment of *seq1* and *seq2* and returns @@ -164,20 +262,6 @@ Algorithms for Alignments :param gap_ext: The gap extension penalty. Must be a negative number :returns: Best-scoring alignment of *seq1* and *seq2*. -.. function:: ShannonEntropy(aln, ignore_gaps=True) - - Returns the per-column Shannon entropies of the alignment. The entropy - describes how conserved a certain column in the alignment is. The higher - the entropy is, the less conserved the column. For a column with no amino - aids, the entropy value is set to NAN. - - :param aln: Multiple sequence alignment - :type aln: :class:`~ost.seq.AlignmentHandle` - :param ignore_gaps: Whether to ignore gaps in the column. - :type ignore_gaps: bool - - :returns: List of column entropies - .. function:: SemiGlobalAlign(seq1, seq2, subst_weight, gap_open=-5, gap_ext=-2) Performs a semi-global alignment of *seq1* and *seq2* and returns the best- @@ -212,73 +296,65 @@ Algorithms for Alignments :param gap_ext: The gap extension penalty. Must be a negative number :returns: best-scoring alignment of *seq1* and *seq2*. -.. autofunction:: ost.seq.alg.renumber.Renumber -.. function:: SequenceIdentity(aln, ref_mode=seq.alg.RefMode.ALIGNMENT, seq_a=0, seq_b=1) +.. _substitution-weight-matrices: - Calculates the sequence identity between two sequences at index seq_a and seq_b in - a multiple sequence alignment. +Substitution Weight Matrices and BLOSUM Matrices +-------------------------------------------------------------------------------- - :param aln: multiple sequence alignment - :type aln: :class:`~ost.seq.AlignmentHandle` - :param ref_mode: influences the way the sequence identity is calculated. When - set to `seq.alg.RefMode.LONGER_SEQUENCE`, the sequence identity is - calculated as the number of matches divided by the length of the longer - sequence. If set to `seq.alg.RefMode.ALIGNMENT` (the default), the sequence - identity is calculated as the number of matches divided by the number of - aligned residues. - :type ref_mode: int - :param seq_a: the index of the first sequence - :type seq_a: int - :param seq_b: the index of the second sequence - :type seq_b: int - :returns: sequence identity in the range 0 to 100. - :rtype: float +.. class:: SubstWeightMatrix -.. function:: SequenceSimilarity(aln, subst_weight, normalize=false, seq_a=0, seq_b=1) + Substitution weights for alignment algorithms - Calculates the sequence similarity between two sequences at index seq_a and seq_b in - a multiple sequence alignment. + .. method:: GetWeight(olc_one, olc_two) - :param aln: Multiple sequence alignment - :type aln: :class:`~ost.seq.AlignmentHandle` - :param subst_weight: the substitution weight matrix - (see the :ref:`BLOSUM Matrix<blosum>` section below) - :type subst_weight: :class:`~SubstWeightMatrix` - :param normalize: if set to True, normalize to the range of the - substitution weight matrix - :type normalize: bool - :param seq_a: the index of the first sequence - :type seq_a: int - :param seq_b: the index of the second sequence - :type seq_b: int - :returns: sequence similarity - :rtype: float + Get :class:`int` weight for pair of characters + :param olc_one: first character + :type olc_one: :class:`string` + :param olc_two: second character + :type olc_two: :class:`string` -.. _substitution-weight-matrices: + .. method:: SetWeight(olc_one, olc_two, weight) -Substitution Weight Matrices and BLOSUM Matrices --------------------------------------------------------------------------------- + Set :class:`int` weight for pair of characters + + :param olc_one: first character + :type olc_one: :class:`string` + :param olc_two: second character + :type olc_two: :class:`string` + :param weight: the weight + :type weight: :class:`int` + + .. method:: GetMinWeight() + + Returns the minimal weight of the matrix + + .. method:: GetMaxWeight() -.. autoclass:: SubstWeightMatrix - :members: + Returns the maximum weight of the matrix + + .. method:: GetName() + + Getter for name (empty string if not set) + + .. method:: SetName(name) + + Setter for name + + :param name: Name to be set + :type name: :class:`str` .. _blosum: -Four preset BLOSUM (BLOcks SUbstitution Matrix) matrices are available at -different levels of sequence identity: +Four already preset BLOSUM (BLOcks SUbstitution Matrix) matrices are available +at different levels of sequence identity: - BLOSUM45 - BLOSUM62 - BLOSUM80 - BLOSUM100 -Two naive substitution matrices: - -- IDENTITY: Matches have score of 1, all other are 0 -- MATCH: Matches have score of 1, all other are -1 - Nucleotide substitution matrices: - NUC44: Nucleotide substitution matrix used in blastn that can deal with IUPAC @@ -286,6 +362,14 @@ Nucleotide substitution matrices: equivalence, i.e. you can just do `m.GetWeight('G', 'U')` instead of first translating 'U' to 'T'. +They can be directly accessed upon importing the sequence module: + +.. code-block:: python + + from ost import seq + mat = seq.alg.BLOSUM62 + print(mat.GetWeight('A', 'A')) + .. _contact-prediction: @@ -941,8 +1025,8 @@ etc.) to be set, which is the case if you load a file in hhm format. :param filename: Filename of db :type filename: :class:`str` - .. method:: AddAAPseudoCounts(profile, db, a=0.9, b=4.0, c=1.0) + :noindex: Adds pseudo counts to the emission probabilities in *profile* by utilizing context profiles as described in @@ -958,23 +1042,3 @@ etc.) to be set, which is the case if you load a file in hhm format. :raises: Exception if profile doesn't have HMM information assigned - -AAIndex annotations -------------------- - -.. autoclass:: ost.seq.alg.aaindex.AAIndex - :members: - :special-members: __getitem__ - -The annotations/scores can either refer to single amino acids or represent -pairwise values. The two types are: - -.. autoclass:: ost.seq.alg.aaindex.AnnoType - :members: - :undoc-members: - -The actual data of an entry in the aaindex database is stored in a -:class:`aaindex.AAIndexData` object: - -.. autoclass:: ost.seq.alg.aaindex.AAIndexData - :members: diff --git a/modules/seq/alg/pymod/mat.py b/modules/seq/alg/pymod/mat.py index f00ec2237076edc72287478f6057309a0dfcbe60..873d2b42ac58aa6ec2ab14b7e0b3fb38fef5facc 100644 --- a/modules/seq/alg/pymod/mat.py +++ b/modules/seq/alg/pymod/mat.py @@ -9,9 +9,6 @@ BLOSUM45 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM45) BLOSUM62 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM62) BLOSUM80 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM80) BLOSUM100 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM100) -IDENTITY = _InitMatrix(SubstWeightMatrix.Preset.IDENTITY) -MATCH = _InitMatrix(SubstWeightMatrix.Preset.MATCH) NUC44 = _InitMatrix(SubstWeightMatrix.Preset.NUC44) -__all__=['BLOSUM45','BLOSUM62','BLOSUM80','BLOSUM100', 'IDENTITY', 'MATCH', - 'NUC44'] +__all__=['BLOSUM45','BLOSUM62','BLOSUM80','BLOSUM100','NUC44'] diff --git a/modules/seq/alg/pymod/wrap_seq_alg.cc b/modules/seq/alg/pymod/wrap_seq_alg.cc index 508a8cc5a72064a8498ce0665286ab9d4ddc11e4..d4ae2bd3c77dc1659bdd6f15211cd64aca9a8e83 100644 --- a/modules/seq/alg/pymod/wrap_seq_alg.cc +++ b/modules/seq/alg/pymod/wrap_seq_alg.cc @@ -37,6 +37,7 @@ #include <ost/seq/alg/variance_map.hh> #include <ost/seq/alg/hmm_pseudo_counts.hh> #include <ost/seq/alg/hmm_score.hh> +#include <ost/seq/alg/wrap_parasail.hh> #include <algorithm> @@ -167,12 +168,26 @@ void export_aln_alg() def("MergePairwiseAlignments", &MergePairwiseAlignments); def("Conservation", &Conservation, (arg("assign")=true, arg("prop_name")="cons", arg("ignore_gap")=false)); + +// bend alignment functions around to parasail if available + def("ParasailAvailable", &ParasailAvailable); +#if OST_PARASAIL_ENABLED + def("LocalAlign", &ParaLocalAlign, (arg("seq1"), arg("seq2"),arg("subst_weight"), + arg("gap_open")=-5, arg("gap_ext")=-2)); + def("GlobalAlign", &ParaGlobalAlign,(arg("seq1"),arg("seq2"),arg("subst_weight"), + arg("gap_open")=-5, arg("gap_ext")=-2)); + def("SemiGlobalAlign", &ParaSemiGlobalAlign,(arg("seq1"),arg("seq2"),arg("subst_weight"), + arg("gap_open")=-5, arg("gap_ext")=-2)); +#else def("LocalAlign", &LocalAlign, (arg("seq1"), arg("seq2"),arg("subst_weight"), arg("gap_open")=-5, arg("gap_ext")=-2)); def("GlobalAlign", &GlobalAlign,(arg("seq1"),arg("seq2"),arg("subst_weight"), arg("gap_open")=-5, arg("gap_ext")=-2)); def("SemiGlobalAlign", &SemiGlobalAlign,(arg("seq1"),arg("seq2"),arg("subst_weight"), arg("gap_open")=-5, arg("gap_ext")=-2)); +#endif + + def("ShannonEntropy", &ShannonEntropy, (arg("aln"), arg("ignore_gaps")=true)); } @@ -215,6 +230,9 @@ void export_contact_prediction() .def("GetMinWeight", &SubstWeightMatrix::GetMinWeight) .def("GetMaxWeight", &SubstWeightMatrix::GetMaxWeight) .def("AssignPreset", &SubstWeightMatrix::AssignPreset) + .def("SetName", &SubstWeightMatrix::SetName) + .def("GetName", &SubstWeightMatrix::GetName, + return_value_policy<copy_const_reference>()) ; enum_<SubstWeightMatrix::Preset>("Preset") @@ -222,8 +240,6 @@ void export_contact_prediction() .value("BLOSUM62", SubstWeightMatrix::BLOSUM62) .value("BLOSUM80", SubstWeightMatrix::BLOSUM80) .value("BLOSUM100", SubstWeightMatrix::BLOSUM100) - .value("IDENTITY", SubstWeightMatrix::IDENTITY) - .value("MATCH", SubstWeightMatrix::MATCH) .value("NUC44", SubstWeightMatrix::NUC44) ; } diff --git a/modules/seq/alg/src/CMakeLists.txt b/modules/seq/alg/src/CMakeLists.txt index f97ba489ec77b6d002c5550c29d489b83b68c5e0..7f7441970cbef610f38ec75264c852cd4227e563 100644 --- a/modules/seq/alg/src/CMakeLists.txt +++ b/modules/seq/alg/src/CMakeLists.txt @@ -21,6 +21,7 @@ data/default_contact_weight_matrix.hh data/default_pair_subst_weight_matrix.hh hmm_pseudo_counts.hh hmm_score.hh +wrap_parasail.hh ) set(OST_SEQ_ALG_SOURCES @@ -42,7 +43,8 @@ subst_weight_matrix.cc variance_map.cc hmm_pseudo_counts.cc hmm_score.cc +wrap_parasail.cc ) module(NAME seq_alg HEADER_OUTPUT_DIR ost/seq/alg SOURCES ${OST_SEQ_ALG_SOURCES} - HEADERS ${OST_SEQ_ALG_HEADERS} DEPENDS_ON ost_seq) + HEADERS ${OST_SEQ_ALG_HEADERS} DEPENDS_ON ost_seq LINK ${PARASAIL_LIBRARY}) diff --git a/modules/seq/alg/src/subst_weight_matrix.cc b/modules/seq/alg/src/subst_weight_matrix.cc index 6d22a0b9cbd65b8fd104055fefa6a81567511936..3c7ee7225b33c99d54925ce94fa3685ed082c89d 100644 --- a/modules/seq/alg/src/subst_weight_matrix.cc +++ b/modules/seq/alg/src/subst_weight_matrix.cc @@ -170,28 +170,6 @@ void FillNucData(ost::seq::alg::SubstWeightMatrix* subst, } } -void FillIdentity(ost::seq::alg::SubstWeightMatrix* subst) { - char chars[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', - 'P','Q','R','S','T','U','V','W','X','Y','Z'}; - for(uint i = 0; i < 26; ++i) { - subst->SetWeight(chars[i], chars[i], 1.0); - } -} - -void FillMatch(ost::seq::alg::SubstWeightMatrix* subst) { - char chars[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', - 'P','Q','R','S','T','U','V','W','X','Y','Z'}; - for(uint i = 0; i < 26; ++i) { - for(uint j = 0; j < 26; ++j) { - if(i == j){ - subst->SetWeight(chars[i], chars[j], 1.0); - } else { - subst->SetWeight(chars[i], chars[j], -1.0); - } - } - } -} - } namespace ost { namespace seq { namespace alg { @@ -205,34 +183,30 @@ void SubstWeightMatrix::AssignPreset(SubstWeightMatrix::Preset p) switch(p){ case BLOSUM45:{ FillData(this,RAW_BLOSUM45_DATA); + this->SetName("blosum45"); break; } case BLOSUM62:{ FillData(this,RAW_BLOSUM62_DATA); + this->SetName("blosum62"); break; } case BLOSUM80:{ FillData(this,RAW_BLOSUM80_DATA); + this->SetName("blosum80"); break; } case BLOSUM100:{ FillData(this,RAW_BLOSUM100_DATA); - break; - } - case IDENTITY:{ - FillIdentity(this); - break; - } - case MATCH:{ - FillMatch(this); + this->SetName("blosum100"); break; } case NUC44:{ FillNucData(this,RAW_NUC44_DATA); + this->SetName("nuc44"); break; } } } - }}} diff --git a/modules/seq/alg/src/subst_weight_matrix.hh b/modules/seq/alg/src/subst_weight_matrix.hh index 50636399e659fd037971f2a48d89f8c09453652f..a0e1e5862f4bd5cb748e935e647a5468424aa098 100644 --- a/modules/seq/alg/src/subst_weight_matrix.hh +++ b/modules/seq/alg/src/subst_weight_matrix.hh @@ -22,6 +22,7 @@ #include <ctype.h> #include <string.h> #include <boost/shared_ptr.hpp> +#include <ost/base.hh> #include <ost/config.hh> #include <ost/seq/alg/module_config.hh> @@ -44,9 +45,7 @@ public: BLOSUM62 = 1, BLOSUM80 = 2, BLOSUM100 = 3, - IDENTITY = 4, - MATCH = 5, - NUC44 = 6}; + NUC44 = 4}; /// \brief Initialize substitution matrix with zero. /// /// In order to get a useful substitution weight matrix, use SetWeight(). @@ -92,6 +91,10 @@ public: } } + void SetName(const String& name) { name_ = name; } + + const String& GetName() { return name_; } + private: int Index(char aa_one, char aa_two) const { return (toupper(aa_one)-'A')*ALPHABET_SIZE+(toupper(aa_two)-'A'); @@ -104,6 +107,7 @@ private: WeightType weights_[ALPHABET_SIZE*ALPHABET_SIZE]; WeightType max_weight_; WeightType min_weight_; + String name_; }; }}} diff --git a/modules/seq/alg/src/wrap_parasail.cc b/modules/seq/alg/src/wrap_parasail.cc new file mode 100644 index 0000000000000000000000000000000000000000..bede42a34698d6c8bd72281700e6e5afd265aa04 --- /dev/null +++ b/modules/seq/alg/src/wrap_parasail.cc @@ -0,0 +1,202 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2024 by the OpenStructure authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ + +#include <ost/seq/alg/wrap_parasail.hh> + +#if OST_PARASAIL_ENABLED + +#include <parasail.h> // include for external parasail + +typedef parasail_result_t* (*parasail_aln_fn)(const char*, int, const char*, + int, int, int, + const parasail_matrix_t *); + +namespace{ + +ost::seq::AlignmentList Align(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + int gap_open_penalty, int gap_extension_penalty, + ost::seq::alg::SubstWeightMatrixPtr& subst_matrix, + parasail_aln_fn aln_fn, + bool set_offset) { + + // original ost provides penalties as negative numbers... + gap_open_penalty = std::abs(gap_open_penalty); + gap_extension_penalty = std::abs(gap_extension_penalty); + + const parasail_matrix_t* matrix = + parasail_matrix_lookup(subst_matrix->GetName().c_str()); + + parasail_result_t *r = NULL; + parasail_traceback_t *traceback_r = NULL; + + String s1_str = s1.GetGaplessString(); + String s2_str = s2.GetGaplessString(); + + const char* s1_c_str = s1_str.c_str(); + int s1_len = s1_str.size(); + const char* s2_c_str = s2_str.c_str(); + int s2_len = s2_str.size(); + + r = aln_fn(s1_c_str, s1_len, s2_c_str, s2_len, 11, 1, matrix); + traceback_r = parasail_result_get_traceback(r, s1_c_str, s1_len, + s2_c_str, s2_len, matrix, + '|', ':', '.'); + + ost::seq::AlignmentHandle aln = ost::seq::CreateAlignment(); + ost::seq::SequenceHandle aln_s1 = + ost::seq::CreateSequence(s1.GetName(), String(traceback_r->query)); + + ost::seq::SequenceHandle aln_s2 = + ost::seq::CreateSequence(s2.GetName(), String(traceback_r->ref)); + + if(set_offset) { + + /* + Tried the code below to set offsets but observed wrongly reported + offset which can be triggered from Python: + + from ost import io + from ost import seq + from ost import bindings + + test_seq = seq.CreateSequence("s", "MMDKHKYRVEIQQMMFVSGEINDPPVETTSLIEDIVRGQVIEILLQSNKTAHLRGSRSIL" + "PEDVIFLIRHDKAKVNRLRTYLSWKDLRKNAKDQDASAGVASGTGNPGAGGEDDLKKAGG" + "GEKDEKDGGNMMKVKKSQIKLPWELQFMFNEHPLENNDDNDDMDEDEREANIVTLKRLKM" + "ADDRTRNMTKEEYVHWSDCRQASFTFRKNKRFKDWSGISQLTEGKPHDDVIDILGFLTFE" + "IVCSLTETALKIKQREQVLQTQKDKSQQSSQDNTNFEFASSTLHRKKRLFDGPENVINPL" + "KPRHIEEAWRVLQTIDMRHRALTNFKGGRLSSKPIIM") + + + s = seq.CreateSequence("asdf", "MTKSIYIIIGYMLHDEEFFYFFFISFYTLWIVFFLLHLSFFSTLSFGIFHDFDTDVYIKVGNYIL" + "HFLELSKNSNLLKNSSEMLKHFRLASLMYMYVYTQMICPSLLGIRN") + + + aln = bindings.ParaLocalAlign(test_seq, s) + + print(aln.ToString()) + print(aln.GetSequence(0).offset) + print(aln.GetSequence(1).offset) + + + + + // Not sure if this is the most efficient way to set offsets, + // i.e. the index of start characters which are actually + // present in returned alignments + parasail_cigar_t* cigar = parasail_result_get_cigar(r, s1_c_str, s1_len, + s2_c_str, s2_len, + matrix); + + aln_s1.SetOffset(cigar->beg_query); + aln_s2.SetOffset(cigar->beg_ref); + parasail_cigar_free(cigar); + */ + + // this is far from optimal but doesn't have the issue described above + aln_s1.SetOffset(s1.GetString().find(aln_s1.GetGaplessString())); + aln_s2.SetOffset(s2.GetString().find(aln_s2.GetGaplessString())); + } + aln.AddSequence(aln_s1); + aln.AddSequence(aln_s2); + + if(s1.HasAttachedView()) { + aln.AttachView(0, s1.GetAttachedView()); + } + + if(s2.HasAttachedView()) { + aln.AttachView(1, s2.GetAttachedView()); + } + + parasail_result_free(r); + parasail_traceback_free(traceback_r); + + ost::seq::AlignmentList aln_list = {aln}; + return aln_list; +} + +} + +namespace ost{ namespace seq{ namespace alg{ + +ost::seq::AlignmentList ParaLocalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open, int gap_ext) { + return Align(s1, s2, gap_open, gap_ext, subst, + parasail_sw_trace_scan_sat, true); +} + +ost::seq::AlignmentList ParaGlobalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open, int gap_ext) { + return Align(s1, s2, gap_open, gap_ext, subst, + parasail_nw_trace_scan_sat, false); +} + +ost::seq::AlignmentList ParaSemiGlobalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open, int gap_ext) { + return Align(s1, s2, gap_open, gap_ext, subst, + parasail_sg_trace_scan_sat, false); +} + +bool ParasailAvailable() { + return true; +} + +}}} // ns + +#else + +namespace ost{ namespace seq{ namespace alg{ + +ost::seq::AlignmentList ParaLocalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open, int gap_ext) { + throw ost::Error("Must enable Parasail when compiling OpenStructure to use " + "ParaLocalAlign"); +} + +ost::seq::AlignmentList ParaGlobalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open, int gap_ext) { + throw ost::Error("Must enable Parasail when compiling OpenStructure to use " + "ParaGlobalAlign"); +} + +ost::seq::AlignmentList ParaSemiGlobalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open, int gap_ext) { + throw ost::Error("Must enable Parasail when compiling OpenStructure to use " + "ParaSemiGlobalAlign"); +} + +bool ParasailAvailable() { + return false; +} + +}}} // ns + +#endif diff --git a/modules/seq/alg/src/wrap_parasail.hh b/modules/seq/alg/src/wrap_parasail.hh new file mode 100644 index 0000000000000000000000000000000000000000..1a366ad9274b7636e9841f8569ff9614676ebf32 --- /dev/null +++ b/modules/seq/alg/src/wrap_parasail.hh @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2024 by the OpenStructure authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ +#ifndef OST_BINDINGS_PARASAIL_H +#define OST_BINDINGS_PARASAIL_H + +#include <ost/seq/sequence_handle.hh> +#include <ost/seq/alignment_handle.hh> +#include <ost/seq/alg/subst_weight_matrix.hh> + +namespace ost { namespace seq { namespace alg { + +// The following function declarations are intended to mimic the already +// existing function for LocalAligm/GlobalAlign/SemiGlobalAlign +// One example of weirdness is passing the ost::seq::SubstWeightMatrix which +// won't be used in the end. Parasail comes with its own set of matrices +// and the requested one is identified using subst.GetName(). So there is +// plenty of room for optimizations... +ost::seq::AlignmentList ParaLocalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open = -5, int gap_ext = -2); + +ost::seq::AlignmentList ParaGlobalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open = -5, int gap_ext = -2); + +ost::seq::AlignmentList ParaSemiGlobalAlign(const ost::seq::ConstSequenceHandle& s1, + const ost::seq::ConstSequenceHandle& s2, + ost::seq::alg::SubstWeightMatrixPtr& subst, + int gap_open = -5, int gap_ext = -2); + +bool ParasailAvailable(); + +}}} //ns + +#endif diff --git a/modules/seq/alg/tests/testfiles/align_to_seqres.mmcif b/modules/seq/alg/tests/testfiles/align_to_seqres.mmcif index 177b53a64ae4319b48350ac7e132badbbf20e2d4..9fce63c4b5a89e116b015b0da8ff8dbda6c157c1 100644 --- a/modules/seq/alg/tests/testfiles/align_to_seqres.mmcif +++ b/modules/seq/alg/tests/testfiles/align_to_seqres.mmcif @@ -20,7 +20,87 @@ _entity_poly.nstd_monomer no _entity_poly.pdbx_seq_one_letter_code MYTNSDFVVIKALEDGVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEGKK _entity_poly.pdbx_seq_one_letter_code_can MYTNSDFVVIKALEDGVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEGKK _entity_poly.pdbx_strand_id A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V -# +# +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 MET n +1 2 TYR n +1 3 THR n +1 4 ASN n +1 5 SER n +1 6 ASP n +1 7 PHE n +1 8 VAL n +1 9 VAL n +1 10 ILE n +1 11 LYS n +1 12 ALA n +1 13 LEU n +1 14 GLU n +1 15 ASP n +1 16 GLY n +1 17 VAL n +1 18 ASN n +1 19 VAL n +1 20 ILE n +1 21 GLY n +1 22 LEU n +1 23 THR n +1 24 ARG n +1 25 GLY n +1 26 ALA n +1 27 ASP n +1 28 THR n +1 29 ARG n +1 30 PHE n +1 31 HIS n +1 32 HIS n +1 33 SER n +1 34 GLU n +1 35 LYS n +1 36 LEU n +1 37 ASP n +1 38 LYS n +1 39 GLY n +1 40 GLU n +1 41 VAL n +1 42 LEU n +1 43 ILE n +1 44 ALA n +1 45 GLN n +1 46 PHE n +1 47 THR n +1 48 GLU n +1 49 HIS n +1 50 THR n +1 51 SER n +1 52 ALA n +1 53 ILE n +1 54 LYS n +1 55 VAL n +1 56 ARG n +1 57 GLY n +1 58 LYS n +1 59 ALA n +1 60 TYR n +1 61 ILE n +1 62 GLN n +1 63 THR n +1 64 ARG n +1 65 HIS n +1 66 GLY n +1 67 VAL n +1 68 ILE n +1 69 GLU n +1 70 SER n +1 71 GLU n +1 72 GLY n +1 73 LYS n +1 74 LYS n +# loop_ _atom_site.group_PDB _atom_site.id diff --git a/modules/seq/alg/tests/testfiles/align_to_seqres_valueerror.mmcif b/modules/seq/alg/tests/testfiles/align_to_seqres_valueerror.mmcif index fd150386f4a9ee2b5b37be54323e96830d2ccd14..5e998624748bfb09381e8d96cd945135b4ef266d 100644 --- a/modules/seq/alg/tests/testfiles/align_to_seqres_valueerror.mmcif +++ b/modules/seq/alg/tests/testfiles/align_to_seqres_valueerror.mmcif @@ -20,6 +20,86 @@ _entity_poly.nstd_monomer no _entity_poly.pdbx_seq_one_letter_code MYTNSDFVVIKALEDWVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEGKK _entity_poly.pdbx_seq_one_letter_code_can MYTNSDFVVIKALEDWVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEGKK _entity_poly.pdbx_strand_id A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V +# +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 MET n +1 2 TYR n +1 3 THR n +1 4 ASN n +1 5 SER n +1 6 ASP n +1 7 PHE n +1 8 VAL n +1 9 VAL n +1 10 ILE n +1 11 LYS n +1 12 ALA n +1 13 LEU n +1 14 GLU n +1 15 ASP n +1 16 TRP n +1 17 VAL n +1 18 ASN n +1 19 VAL n +1 20 ILE n +1 21 GLY n +1 22 LEU n +1 23 THR n +1 24 ARG n +1 25 GLY n +1 26 ALA n +1 27 ASP n +1 28 THR n +1 29 ARG n +1 30 PHE n +1 31 HIS n +1 32 HIS n +1 33 SER n +1 34 GLU n +1 35 LYS n +1 36 LEU n +1 37 ASP n +1 38 LYS n +1 39 GLY n +1 40 GLU n +1 41 VAL n +1 42 LEU n +1 43 ILE n +1 44 ALA n +1 45 GLN n +1 46 PHE n +1 47 THR n +1 48 GLU n +1 49 HIS n +1 50 THR n +1 51 SER n +1 52 ALA n +1 53 ILE n +1 54 LYS n +1 55 VAL n +1 56 ARG n +1 57 GLY n +1 58 LYS n +1 59 ALA n +1 60 TYR n +1 61 ILE n +1 62 GLN n +1 63 THR n +1 64 ARG n +1 65 HIS n +1 66 GLY n +1 67 VAL n +1 68 ILE n +1 69 GLU n +1 70 SER n +1 71 GLU n +1 72 GLY n +1 73 LYS n +1 74 LYS n # loop_ _atom_site.group_PDB diff --git a/modules/seq/alg/tests/testfiles/validate_segres_aln_breakage.mmcif b/modules/seq/alg/tests/testfiles/validate_segres_aln_breakage.mmcif index 0d66b8fa227e343ff23e6c413a9de746b19c68af..57d45b9df6d3bbdcca9b95e3ed3f2f0d5f4cb03a 100644 --- a/modules/seq/alg/tests/testfiles/validate_segres_aln_breakage.mmcif +++ b/modules/seq/alg/tests/testfiles/validate_segres_aln_breakage.mmcif @@ -19,7 +19,86 @@ _entity_poly.nstd_linkage no _entity_poly.nstd_monomer no _entity_poly.pdbx_seq_one_letter_code MYTNSDFVVIKALEDGVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEKK _entity_poly.pdbx_seq_one_letter_code_can MYTNSDFVVIKALEDGVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEKK -_entity_poly.pdbx_strand_id A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V +_entity_poly.pdbx_strand_id A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V +# +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 MET n +1 2 TYR n +1 3 THR n +1 4 ASN n +1 5 SER n +1 6 ASP n +1 7 PHE n +1 8 VAL n +1 9 VAL n +1 10 ILE n +1 11 LYS n +1 12 ALA n +1 13 LEU n +1 14 GLU n +1 15 ASP n +1 16 GLY n +1 17 VAL n +1 18 ASN n +1 19 VAL n +1 20 ILE n +1 21 GLY n +1 22 LEU n +1 23 THR n +1 24 ARG n +1 25 GLY n +1 26 ALA n +1 27 ASP n +1 28 THR n +1 29 ARG n +1 30 PHE n +1 31 HIS n +1 32 HIS n +1 33 SER n +1 34 GLU n +1 35 LYS n +1 36 LEU n +1 37 ASP n +1 38 LYS n +1 39 GLY n +1 40 GLU n +1 41 VAL n +1 42 LEU n +1 43 ILE n +1 44 ALA n +1 45 GLN n +1 46 PHE n +1 47 THR n +1 48 GLU n +1 49 HIS n +1 50 THR n +1 51 SER n +1 52 ALA n +1 53 ILE n +1 54 LYS n +1 55 VAL n +1 56 ARG n +1 57 GLY n +1 58 LYS n +1 59 ALA n +1 60 TYR n +1 61 ILE n +1 62 GLN n +1 63 THR n +1 64 ARG n +1 65 HIS n +1 66 GLY n +1 67 VAL n +1 68 ILE n +1 69 GLU n +1 70 SER n +1 71 GLU n +1 72 LYS n +1 73 LYS n # loop_ _atom_site.group_PDB diff --git a/modules/seq/alg/tests/testfiles/validate_seqres_aln_connected.mmcif b/modules/seq/alg/tests/testfiles/validate_seqres_aln_connected.mmcif index 2e76cf323b55cd273db4cfd97b9b9d53a6aac9f3..fb3a0807f2df699e81fde7161859488772998498 100644 --- a/modules/seq/alg/tests/testfiles/validate_seqres_aln_connected.mmcif +++ b/modules/seq/alg/tests/testfiles/validate_seqres_aln_connected.mmcif @@ -19,7 +19,88 @@ _entity_poly.nstd_linkage no _entity_poly.nstd_monomer no _entity_poly.pdbx_seq_one_letter_code MYTNSDFVVIKALEDGVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEGGKK _entity_poly.pdbx_seq_one_letter_code_can MYTNSDFVVIKALEDGVNVIGLTRGADTRFHHSEKLDKGEVLIAQFTEHTSAIKVRGKAYIQTRHGVIESEGGKK -_entity_poly.pdbx_strand_id A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V +_entity_poly.pdbx_strand_id A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V +# +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 MET n +1 2 TYR n +1 3 THR n +1 4 ASN n +1 5 SER n +1 6 ASP n +1 7 PHE n +1 8 VAL n +1 9 VAL n +1 10 ILE n +1 11 LYS n +1 12 ALA n +1 13 LEU n +1 14 GLU n +1 15 ASP n +1 16 GLY n +1 17 VAL n +1 18 ASN n +1 19 VAL n +1 20 ILE n +1 21 GLY n +1 22 LEU n +1 23 THR n +1 24 ARG n +1 25 GLY n +1 26 ALA n +1 27 ASP n +1 28 THR n +1 29 ARG n +1 30 PHE n +1 31 HIS n +1 32 HIS n +1 33 SER n +1 34 GLU n +1 35 LYS n +1 36 LEU n +1 37 ASP n +1 38 LYS n +1 39 GLY n +1 40 GLU n +1 41 VAL n +1 42 LEU n +1 43 ILE n +1 44 ALA n +1 45 GLN n +1 46 PHE n +1 47 THR n +1 48 GLU n +1 49 HIS n +1 50 THR n +1 51 SER n +1 52 ALA n +1 53 ILE n +1 54 LYS n +1 55 VAL n +1 56 ARG n +1 57 GLY n +1 58 LYS n +1 59 ALA n +1 60 TYR n +1 61 ILE n +1 62 GLN n +1 63 THR n +1 64 ARG n +1 65 HIS n +1 66 GLY n +1 67 VAL n +1 68 ILE n +1 69 GLU n +1 70 SER n +1 71 GLU n +1 72 GLY n +1 73 GLY n +1 74 LYS n +1 75 LYS n # loop_ _atom_site.group_PDB diff --git a/modules/seq/base/doc/seq.rst b/modules/seq/base/doc/seq.rst index a5ea7ec66f042aad740809ad1c52a318ac5e4ca6..de8b0de191495ab70c54d11df0d6abdcd903a2be 100644 --- a/modules/seq/base/doc/seq.rst +++ b/modules/seq/base/doc/seq.rst @@ -526,6 +526,7 @@ an alignment: :rtype: :class:`AlignedColumn` .. method:: __getitem__(slice) + :noindex: :return: Columns defined by by pythonic slicing. :rtype: :class:`AlignedRegion` @@ -862,3 +863,9 @@ probabilities between Match, Insertion or Deletion states or neff values :returns: A nonsorted list of the names of all :class:`ProfileHandle` objects in the database + +.. toctree:: + :maxdepth: 2 + :hidden: + + ../alg/seqalg \ No newline at end of file diff --git a/scripts/ost-nightly-build.sh b/scripts/ost-nightly-build.sh index 653b9142af8b80edae303a44c7f3de7d9147d808..4b6fbab302afe204436f3280d79a7ae4d130d3bd 100644 --- a/scripts/ost-nightly-build.sh +++ b/scripts/ost-nightly-build.sh @@ -134,7 +134,6 @@ dependencies = [ ('FFTW', '3.3.3', '-dynamic', ('gompi', '1.4.10')), ] -configopts = " -DOPTIMIZE=1 -DCOMPILE_TMTOOLS=1 -DENABLE_GFX=OFF -DENABLE_GUI=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE='-O3 -DNDEBUG -Wno-unused-local-typedefs' -DUSE_NUMPY=1 -DUSE_RPATH=1" configopts += " -DCOMPOUND_LIB=/scicore/home/schwede/GROUP/OpenStructure/ChemLib/1.6/compounds.chemlib" diff --git a/scripts/ost_startup.py.in b/scripts/ost_startup.py.in index c451bec380f5d81da50c8b3be92c225a6e5290e0..e1bc4a31ae4f6a69a794a9bec3127e888668bc63 100644 --- a/scripts/ost_startup.py.in +++ b/scripts/ost_startup.py.in @@ -1,79 +1,120 @@ -import sys, os, platform, glob +import sys, os, glob import optparse + def show_help(option, opt, value, parser): - parser.print_help() - sys.exit(-1) + parser.print_help() + sys.exit(-1) + + +def show_version(option, opt, value, parser): + print("OpenStructure " + ost.__version__) + sys.exit(0) + def interactive_flag(option, opt, value, parser): - pass + pass + def stop(): - sys.exit(0) + sys.exit(0) + + +def get_options_parser(usage): + parser = OstOptionParser(usage=usage, conflict_handler="resolve", prog="ost") + parser.add_option( + "-i", + "--interactive", + action="callback", + callback=interactive_flag, + help="start interpreter interactively (must be first parameter, ignored otherwise)", + ) + parser.add_option( + "-h", + "--help", + action="callback", + callback=show_help, + help="show this help message and exit", + ) + parser.add_option( + "-V", + "--version", + action="callback", + callback=show_version, + help="show OST version and exit", + ) + parser.add_option( + "-v", + "--verbosity_level", + action="store", + type="int", + dest="vlevel", + default=2, + help="sets the verbosity level [default: %default]", + ) + parser.disable_interspersed_args() + return parser -usage = """ +usage = """ ost [ost options] [script to execute] [script parameters] - -or ost [action name] [action options] - + +The following actions are available: """ action_path = os.path.abspath(os.environ.get("OST_EXEC_DIR", "")) +for action in sorted(glob.glob(os.path.join(action_path, "ost-*"))): + usage += " %s\n" % action[len(action_path) + 5 :] + +usage += '\nEach action should respond to "--help".' -usage += 'Following actions are available:\n' -for action in sorted(glob.glob(os.path.join(action_path, 'ost-*'))): - usage += " %s\n" % action[len(action_path)+5:] -usage += '\nEach action should respond to "--help".\n' class OstOptionParser(optparse.OptionParser): - def __init__(self, **kwargs): - optparse.OptionParser.__init__(self, **kwargs) - def exit(self, status_code, error_message): - print(error_message, end=' ') - sys.exit(-1) + def __init__(self, **kwargs): + optparse.OptionParser.__init__(self, **kwargs) + + def exit(self, status_code, error_message): + print(error_message, end=" ") + sys.exit(-1) -parser=OstOptionParser(usage=usage,conflict_handler="resolve", prog='ost''') -parser.add_option("-i", "--interactive", action="callback", callback=interactive_flag, help="start interpreter interactively (must be first parameter, ignored otherwise)") -parser.add_option("-h", "--help", action="callback", callback=show_help, help="show this help message and exit") -parser.add_option("-v", "--verbosity_level", action="store", type="int", dest="vlevel", default=2, help="sets the verbosity level [default: %default]") -parser.disable_interspersed_args() -(options, args) = parser.parse_args() -_site_packs='python%d.%d/site-packages' % sys.version_info[0:2] -_base_dir=os.getenv('DNG_ROOT') -sys.path.insert(0, os.path.join(_base_dir, '@LIBDIR@', _site_packs)) +_site_packs = "python%d.%d/site-packages" % sys.version_info[0:2] +_base_dir = os.getenv("DNG_ROOT") +sys.path.insert(0, os.path.join(_base_dir, "@LIBDIR@", _site_packs)) from ost import * import ost -HistoryFile=os.path.expanduser('~/.ost_history') +parser = get_options_parser(usage) +(options, args) = parser.parse_args() + +HistoryFile = os.path.expanduser("~/.ost_history") -# we are not in GUI mode. -gui_mode=False +# we are not in GUI mode. +gui_mode = False -sys.ps1='ost> ' -sys.ps2='..... ' -sys.argv=sys.argv[1:] -home = os.getenv('HOME') or os.getenv('USERPROFILE') -_ostrc=os.path.join(home, '.ostrc') +sys.ps1 = "ost> " +sys.ps2 = "..... " +sys.argv = sys.argv[1:] +home = os.getenv("HOME") or os.getenv("USERPROFILE") +_ostrc = os.path.join(home, ".ostrc") if os.path.exists(_ostrc): - try: - exec(compile(open(_ostrc).read(), _ostrc, 'exec')) - except Exception as e: - print(e) + try: + exec(compile(open(_ostrc).read(), _ostrc, "exec")) + except Exception as e: + print(e) + PushVerbosityLevel(options.vlevel) # this should probably only be added when running an interactive shell sys.path.append(".") -if len(parser.rargs)>0 : - script=parser.rargs[0] - sys_argv_backup=sys.argv - sys.argv=parser.rargs - try: - exec(compile(open(script,'rb').read(), script, 'exec')) - finally: - sys.argv=sys_argv_backup - +if len(parser.rargs) > 0: + script = parser.rargs[0] + sys_argv_backup = sys.argv + sys.argv = parser.rargs + try: + exec(compile(open(script, "rb").read(), script, "exec")) + finally: + sys.argv = sys_argv_backup diff --git a/singularity/Singularity b/singularity/Singularity index 57dee2eb53faad64c77557d7ddc53e03bb3c90ba..395c512ca3289341613932f39e24ae9aed0fc264 100644 --- a/singularity/Singularity +++ b/singularity/Singularity @@ -1,5 +1,5 @@ BootStrap: docker -From: registry.scicore.unibas.ch/schwede/openstructure:2.7.0-jammy +From: registry.scicore.unibas.ch/schwede/openstructure:2.8.0 %post ############################################################################## # POST @@ -12,7 +12,7 @@ ln -sf /bin/bash /bin/sh # INSTALL SYSTEM DEPS ##################### apt-get update -y && apt-get install -y ipython3 jupyter python3-pip -pip3 install ipywidgets==7.6.0 +pip3 install ipywidgets==8.1.1 pip3 install nglview \ six @@ -44,7 +44,6 @@ cat > $JUPYTER_PATH/kernels/ost-kernel/kernel.json <<EOF } EOF -jupyter nbextension enable nglview --py --sys-prefix %environment ##############################################################################