diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index 820f2b9c4e..fe0f909900 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -1537,7 +1537,7 @@ numlist} e.g. \begin_inset space ~ \end_inset -op> Selection by distance, see below. +operator> Selection by distance, see below. \end_layout \begin_layout Standard @@ -1667,14 +1667,72 @@ More examples: Distance-based Masks \end_layout +\begin_layout Description + +\end_layout + +\begin_deeper +\begin_layout Description + Atoms to consider. +\end_layout + +\begin_layout Description + Distance operator. + +\family typewriter +{<|>}{@|:|;|^} +\end_layout + +\begin_deeper +\begin_layout Description +< Distances less than will be selected. +\end_layout + +\begin_layout Description +> Distances greater than or equal to will be selected. +\end_layout + +\begin_layout Description +@ Any atom. +\end_layout + +\begin_layout Description +: Any atom within a residue. +\end_layout + +\begin_layout Description +; Residue geometric center. +\end_layout + +\begin_layout Description +^ Any atom within a molecule. +\end_layout + +\end_deeper +\begin_layout Description + The distance criteria in Angstroms. +\end_layout + +\end_deeper \begin_layout Standard There are two very important things to keep in mind when using distance based masks: \end_layout \begin_layout Enumerate -Distance-based masks that update each frame are currently only supported - by the +Distance-based masks that +\bar under +update each frame +\bar default + are currently only supported by the \series bold \shape italic mask @@ -1744,7 +1802,7 @@ The syntax for selection by distance is a \series bold : \series default -' (residues), or ' +' (residues), ';' (residue centers), or ' \series bold @ \series default @@ -1762,9 +1820,11 @@ residues within 3.0 Angstroms \end_inset etc. - For residue- and molecule-based distance selection, if any atom in that - residue/molecule matches the given distance criterion, the entire residue/molec -ule is selected. + For ':' residue- and '^' molecule-based distance selection, if any atom + in that residue/molecule meets the given distance criterion, the entire + residue/molecule is selected. + For ';' residue center, the geometric center of the residue must meet the + given distance criterion in order to be selected. \end_layout \begin_layout Standard @@ -27367,8 +27427,9 @@ Determine hydrogen bonds in each coordinate frame using simple geometric criteria. A hydrogen bond is defined as being between an acceptor heavy atom A, a donor hydrogen atom H, and a donor heavy atom D. - If the A to D distance is less than the distance cutoff and the A-H-D angle - is greater than the angle cutoff a hydrogen bond is considered formed. + If the A to D distance is less than or equal to the distance cutoff and + the A-H-D angle is greater than or equal to the angle cutoff a hydrogen + bond is considered formed. Imaging of distances/angles is not performed by default, but can be turned on using the \series bold diff --git a/src/Exec_Help.cpp b/src/Exec_Help.cpp index 3c8befead8..635b557b26 100644 --- a/src/Exec_Help.cpp +++ b/src/Exec_Help.cpp @@ -112,9 +112,11 @@ int Exec_Help::Masks(ArgList& argIn) const { " >@ means 'atoms outside of'\n" " <: means 'residues within'\n" " >: means 'residues outside of'\n" + " <; means 'residue centers within'\n" + " >; means 'residue centers outside of'\n" " <^ means 'molecules within'\n" " >^ means 'molecules outside of'\n" - " : Cutoff for distance operator.\n" + " : Cutoff for distance operator (in Ang.).\n" " E.g. ':11-17<@2.4' means 'select atoms within 2.4 Ang. distance of atoms\n" " selected by ':11-17' (residues numbered 11 through 17).\n" " *** Operators ***\n" diff --git a/src/MaskToken.cpp b/src/MaskToken.cpp index ead669536b..a1e4c87f2c 100644 --- a/src/MaskToken.cpp +++ b/src/MaskToken.cpp @@ -132,7 +132,7 @@ int MaskToken::SetToken( MaskTokenType typeIn, std::string const& tokenString ) return 0; } -/** Distance by distance. [<|>][@|:|^] */ +/** Distance by distance. [<|>][@|:|;|^] */ int MaskToken::SetDistance(std::string const& distop) { if (distop.empty()) return 1; type_ = OP_DIST; @@ -151,11 +151,13 @@ int MaskToken::SetDistance(std::string const& distop) { mprinterr("Error: Malformed distance operator: expected '<' or '>' (%c)\n",distop[0]); return 1; } - // 2nd char indidcates atoms (@), residues (:), or molecules (^) + // 2nd char indidcates atoms (@), residues (:), molecules (^), residue centers (;) if (distop[1]=='@') distOp_ = BY_ATOM; else if (distop[1]==':') distOp_ = BY_RES; + else if (distop[1]==';') + distOp_ = BY_RESCENTER; else if (distop[1]=='^') distOp_ = BY_MOL; else { @@ -278,14 +280,14 @@ int MaskTokenArray::Tokenize() { } infix += *p; - + // Distance-based masks if ( *p == '>' || *p == '<' ) { buffer.assign("(["); buffer += *p; ++p; buffer += *p; flag = 3; - if ( *p != ':' && *p != '@' && *p != '^' ) { + if ( *p != ':' && *p != '@' && *p != '^' && *p != ';' ) { --p; mprinterr("Error: Tokenize: Wrong syntax for distance mask [%c]\n",*p); return 1; @@ -837,6 +839,52 @@ int MaskTokenArray::SelectDistance(const double* REF, char *mask, } // END loop over all residues # ifdef _OPENMP } // END pragma omp parallel +# endif + } else if (token.DistOp() == MaskToken::BY_RESCENTER) { + // Select by residue center + int n_of_res = (int)residues.size(); + int resi; + // Loop over all residues +# ifdef _OPENMP +# pragma omp parallel private(resi) + { +# pragma omp for +# endif + for (resi = 0; resi < n_of_res; resi++) { + // Initial state + char schar = char0; + int atomi = residues[resi].FirstAtom(); + const double* i_crd = REF + (atomi * 3); + double resxyz[3]; + resxyz[0] = 0; + resxyz[1] = 0; + resxyz[2] = 0; + // Loop over residue atoms + for (; atomi != residues[resi].LastAtom(); atomi++, i_crd += 3) { + resxyz[0] += i_crd[0]; + resxyz[1] += i_crd[1]; + resxyz[2] += i_crd[2]; + } + double nresatoms = (double)residues[resi].NumAtoms(); + resxyz[0] /= nresatoms; + resxyz[1] /= nresatoms; + resxyz[2] /= nresatoms; + // Loop over initially selected atoms + for (Uarray::const_iterator idx = Idx.begin(); idx != Idx.end(); ++idx) { + double d2 = DIST2_NoImage(resxyz, REF + *idx); + if (d2 < dcut2) { + // State changes + schar = char1; + break; + } + } // END loop over initially selected atoms + // Set residue selection status + for (atomi = residues[resi].FirstAtom(); + atomi != residues[resi].LastAtom(); atomi++) + mask[atomi] = schar; + } // END loop over all residues +# ifdef _OPENMP + } // END pragma omp parallel # endif } else { // Select by molecule diff --git a/src/MaskToken.h b/src/MaskToken.h index 7b941cd2fa..e7d9972b3f 100644 --- a/src/MaskToken.h +++ b/src/MaskToken.h @@ -15,7 +15,7 @@ class MaskToken { MolNum, SelectAll, OP_AND, OP_OR, OP_NEG, OP_DIST }; - enum DistOpType { BY_ATOM = 0, BY_RES, BY_MOL }; + enum DistOpType { BY_ATOM = 0, BY_RES, BY_MOL, BY_RESCENTER }; MaskToken(); const char *TypeName() const; void Print() const; diff --git a/src/Version.h b/src/Version.h index 1c3a03c74d..c0e5a2ef17 100644 --- a/src/Version.h +++ b/src/Version.h @@ -12,7 +12,7 @@ * Whenever a number that precedes is incremented, all subsequent * numbers should be reset to 0. */ -#define CPPTRAJ_INTERNAL_VERSION "V6.0.0" +#define CPPTRAJ_INTERNAL_VERSION "V6.0.1" /// PYTRAJ relies on this #define CPPTRAJ_VERSION_STRING CPPTRAJ_INTERNAL_VERSION #endif diff --git a/test/Test_DistBasedMask/Eighth.pdb.1.save b/test/Test_DistBasedMask/Eighth.pdb.1.save new file mode 100644 index 0000000000..782772987d --- /dev/null +++ b/test/Test_DistBasedMask/Eighth.pdb.1.save @@ -0,0 +1,125 @@ +ATOM 1 N GLU 5 -2.795 4.872 -1.106 1.00 0.00 N +ATOM 2 H GLU 5 -2.278 5.708 -1.339 1.00 0.00 H +ATOM 3 CA GLU 5 -2.535 3.723 -1.950 1.00 0.00 C +ATOM 4 HA GLU 5 -3.007 2.948 -1.346 1.00 0.00 H +ATOM 5 CB GLU 5 -3.413 3.524 -3.183 1.00 0.00 C +ATOM 6 HB2 GLU 5 -3.139 4.141 -4.038 1.00 0.00 H +ATOM 7 HB3 GLU 5 -4.386 3.787 -2.767 1.00 0.00 H +ATOM 8 CG GLU 5 -3.470 2.108 -3.748 1.00 0.00 C +ATOM 9 HG2 GLU 5 -2.447 1.793 -3.953 1.00 0.00 H +ATOM 10 HG3 GLU 5 -4.039 2.425 -4.623 1.00 0.00 H +ATOM 11 CD GLU 5 -4.189 1.123 -2.837 1.00 0.00 C +ATOM 12 OE1 GLU 5 -3.803 0.771 -1.702 1.00 0.00 O +ATOM 13 OE2 GLU 5 -5.263 0.601 -3.207 1.00 0.00 O +ATOM 14 C GLU 5 -1.058 3.518 -2.255 1.00 0.00 C +ATOM 15 O GLU 5 -0.301 4.414 -2.619 1.00 0.00 O +ATOM 16 N ASN 6 -0.668 2.265 -2.009 1.00 0.00 N +ATOM 17 H ASN 6 -1.323 1.656 -1.539 1.00 0.00 H +ATOM 18 CA ASN 6 0.639 1.696 -2.267 1.00 0.00 C +ATOM 19 HA ASN 6 1.239 2.453 -2.772 1.00 0.00 H +ATOM 20 CB ASN 6 1.412 1.366 -0.993 1.00 0.00 C +ATOM 21 HB2 ASN 6 2.224 0.703 -1.291 1.00 0.00 H +ATOM 22 HB3 ASN 6 0.712 0.882 -0.311 1.00 0.00 H +ATOM 23 CG ASN 6 2.154 2.550 -0.391 1.00 0.00 C +ATOM 24 OD1 ASN 6 2.809 3.347 -1.058 1.00 0.00 O +ATOM 25 ND2 ASN 6 2.359 2.519 0.928 1.00 0.00 N +ATOM 26 HD21 ASN 6 1.869 1.897 1.556 1.00 0.00 H +ATOM 27 HD22 ASN 6 3.024 3.196 1.272 1.00 0.00 H +ATOM 28 C ASN 6 0.509 0.488 -3.185 1.00 0.00 C +ATOM 29 O ASN 6 -0.457 -0.250 -3.004 1.00 0.00 O +ATOM 30 N GLY 7 1.463 0.247 -4.087 1.00 0.00 N +ATOM 31 H GLY 7 2.372 0.658 -3.932 1.00 0.00 H +ATOM 32 CA GLY 7 1.399 -0.902 -4.967 1.00 0.00 C +ATOM 33 HA2 GLY 7 2.180 -0.882 -5.728 1.00 0.00 H +ATOM 34 HA3 GLY 7 0.501 -0.799 -5.576 1.00 0.00 H +ATOM 35 C GLY 7 1.448 -2.275 -4.313 1.00 0.00 C +ATOM 36 O GLY 7 0.727 -2.576 -3.364 1.00 0.00 O +ATOM 37 N LYS 8 2.361 -3.118 -4.801 1.00 0.00 N +ATOM 38 H LYS 8 3.080 -2.784 -5.426 1.00 0.00 H +ATOM 39 CA LYS 8 2.541 -4.514 -4.458 1.00 0.00 C +ATOM 40 HA LYS 8 1.627 -5.015 -4.138 1.00 0.00 H +ATOM 41 CB LYS 8 3.123 -5.283 -5.641 1.00 0.00 C +ATOM 42 HB2 LYS 8 2.435 -5.243 -6.486 1.00 0.00 H +ATOM 43 HB3 LYS 8 3.335 -6.318 -5.372 1.00 0.00 H +ATOM 44 CG LYS 8 4.416 -4.746 -6.248 1.00 0.00 C +ATOM 45 HG2 LYS 8 5.308 -4.960 -5.660 1.00 0.00 H +ATOM 46 HG3 LYS 8 4.393 -3.674 -6.439 1.00 0.00 H +ATOM 47 CD LYS 8 4.726 -5.503 -7.536 1.00 0.00 C +ATOM 48 HD2 LYS 8 3.992 -5.272 -8.308 1.00 0.00 H +ATOM 49 HD3 LYS 8 4.584 -6.543 -7.241 1.00 0.00 H +ATOM 50 CE LYS 8 6.148 -5.338 -8.066 1.00 0.00 C +ATOM 51 HE2 LYS 8 6.521 -6.290 -8.444 1.00 0.00 H +ATOM 52 HE3 LYS 8 6.848 -5.025 -7.290 1.00 0.00 H +ATOM 53 NZ LYS 8 6.177 -4.420 -9.214 1.00 0.00 N +ATOM 54 HZ1 LYS 8 6.046 -3.547 -8.722 1.00 0.00 H +ATOM 55 HZ2 LYS 8 7.131 -4.392 -9.546 1.00 0.00 H +ATOM 56 HZ3 LYS 8 5.471 -4.550 -9.925 1.00 0.00 H +ATOM 57 C LYS 8 3.512 -4.519 -3.286 1.00 0.00 C +ATOM 58 O LYS 8 4.624 -5.042 -3.286 1.00 0.00 O +ATOM 59 N TRP 9 2.925 -4.256 -2.116 1.00 0.00 N +ATOM 60 H TRP 9 2.010 -3.879 -2.316 1.00 0.00 H +ATOM 61 CA TRP 9 3.341 -4.262 -0.728 1.00 0.00 C +ATOM 62 HA TRP 9 4.410 -4.045 -0.724 1.00 0.00 H +ATOM 63 CB TRP 9 2.625 -3.068 -0.104 1.00 0.00 C +ATOM 64 HB2 TRP 9 1.589 -3.294 0.148 1.00 0.00 H +ATOM 65 HB3 TRP 9 2.835 -2.194 -0.721 1.00 0.00 H +ATOM 66 CG TRP 9 3.288 -2.462 1.091 1.00 0.00 C +ATOM 67 CD1 TRP 9 2.925 -2.436 2.393 1.00 0.00 C +ATOM 68 HD1 TRP 9 1.949 -2.799 2.678 1.00 0.00 H +ATOM 69 NE1 TRP 9 3.855 -1.845 3.224 1.00 0.00 N +ATOM 70 HE1 TRP 9 3.885 -1.848 4.234 1.00 0.00 H +ATOM 71 CE2 TRP 9 4.827 -1.303 2.408 1.00 0.00 C +ATOM 72 CZ2 TRP 9 5.911 -0.471 2.714 1.00 0.00 C +ATOM 73 HZ2 TRP 9 6.139 -0.156 3.721 1.00 0.00 H +ATOM 74 CH2 TRP 9 6.841 -0.141 1.722 1.00 0.00 C +ATOM 75 HH2 TRP 9 7.725 0.405 2.018 1.00 0.00 H +ATOM 76 CZ3 TRP 9 6.584 -0.590 0.421 1.00 0.00 C +ATOM 77 HZ3 TRP 9 7.231 -0.235 -0.368 1.00 0.00 H +ATOM 78 CE3 TRP 9 5.424 -1.297 0.082 1.00 0.00 C +ATOM 79 HE3 TRP 9 5.139 -1.465 -0.946 1.00 0.00 H +ATOM 80 CD2 TRP 9 4.479 -1.620 1.069 1.00 0.00 C +ATOM 81 C TRP 9 2.945 -5.593 -0.105 1.00 0.00 C +ATOM 82 O TRP 9 3.022 -6.675 -0.682 1.00 0.00 O +ATOM 83 N THR 10 2.531 -5.609 1.164 1.00 0.00 N +ATOM 84 H THR 10 2.711 -4.794 1.731 1.00 0.00 H +ATOM 85 CA THR 10 2.254 -6.874 1.815 1.00 0.00 C +ATOM 86 HA THR 10 2.982 -7.667 1.644 1.00 0.00 H +ATOM 87 CB THR 10 2.207 -6.622 3.320 1.00 0.00 C +ATOM 88 HB THR 10 1.722 -5.667 3.526 1.00 0.00 H +ATOM 89 CG2 THR 10 1.456 -7.659 4.149 1.00 0.00 C +ATOM 90 HG21 THR 10 1.581 -7.464 5.214 1.00 0.00 H +ATOM 91 HG22 THR 10 0.402 -7.468 3.946 1.00 0.00 H +ATOM 92 HG23 THR 10 1.725 -8.640 3.755 1.00 0.00 H +ATOM 93 OG1 THR 10 3.460 -6.501 3.954 1.00 0.00 O +ATOM 94 HG1 THR 10 3.385 -6.097 4.822 1.00 0.00 H +ATOM 95 C THR 10 0.889 -7.354 1.344 1.00 0.00 C +ATOM 96 O THR 10 -0.172 -6.760 1.524 1.00 0.00 O +ATOM 97 N LYS 12 -2.344 -9.326 0.949 1.00 0.00 N +ATOM 98 H LYS 12 -2.456 -8.339 0.770 1.00 0.00 H +ATOM 99 CA LYS 12 -3.470 -9.926 1.636 1.00 0.00 C +ATOM 100 HA LYS 12 -3.097 -10.439 2.522 1.00 0.00 H +ATOM 101 CB LYS 12 -4.384 -8.814 2.142 1.00 0.00 C +ATOM 102 HB2 LYS 12 -5.389 -9.112 2.440 1.00 0.00 H +ATOM 103 HB3 LYS 12 -4.439 -8.009 1.409 1.00 0.00 H +ATOM 104 CG LYS 12 -3.799 -8.092 3.352 1.00 0.00 C +ATOM 105 HG2 LYS 12 -2.889 -7.566 3.064 1.00 0.00 H +ATOM 106 HG3 LYS 12 -3.691 -8.724 4.233 1.00 0.00 H +ATOM 107 CD LYS 12 -4.848 -7.024 3.650 1.00 0.00 C +ATOM 108 HD2 LYS 12 -5.691 -7.411 4.222 1.00 0.00 H +ATOM 109 HD3 LYS 12 -5.130 -6.495 2.740 1.00 0.00 H +ATOM 110 CE LYS 12 -4.108 -6.019 4.529 1.00 0.00 C +ATOM 111 HE2 LYS 12 -3.183 -5.635 4.099 1.00 0.00 H +ATOM 112 HE3 LYS 12 -3.885 -6.553 5.452 1.00 0.00 H +ATOM 113 NZ LYS 12 -4.877 -4.802 4.829 1.00 0.00 N +ATOM 114 HZ1 LYS 12 -5.132 -4.305 3.987 1.00 0.00 H +ATOM 115 HZ2 LYS 12 -5.718 -4.968 5.362 1.00 0.00 H +ATOM 116 HZ3 LYS 12 -4.250 -4.263 5.410 1.00 0.00 H +ATOM 117 C LYS 12 -4.395 -10.778 0.779 1.00 0.00 C +ATOM 118 O LYS 12 -4.483 -11.939 1.172 1.00 0.00 O +ATOM 119 N NME 13 -4.832 -10.202 -0.344 1.00 0.00 N +ATOM 120 H NME 13 -4.647 -9.239 -0.587 1.00 0.00 H +ATOM 121 CH3 NME 13 -5.720 -10.866 -1.277 1.00 0.00 C +ATOM 122 HH31 NME 13 -5.591 -11.946 -1.340 1.00 0.00 H +ATOM 123 HH32 NME 13 -6.757 -10.886 -0.942 1.00 0.00 H +ATOM 124 HH33 NME 13 -5.777 -10.358 -2.240 1.00 0.00 H +END diff --git a/test/Test_DistBasedMask/RunTest.sh b/test/Test_DistBasedMask/RunTest.sh index cfd247d843..370ed24305 100755 --- a/test/Test_DistBasedMask/RunTest.sh +++ b/test/Test_DistBasedMask/RunTest.sh @@ -4,7 +4,7 @@ # Clean CleanFiles mask.in First.pdb.1 Second.pdb.1 Third.pdb.1 Fourth.pdb.1 \ - Fifth.pdb.1 Sixth.pdb.1 + Fifth.pdb.1 Sixth.pdb.1 Seventh.pdb.1 Eighth.pdb.1 # NOTE: This also tests activeref TESTNAME='Distance-based atom mask tests' @@ -60,6 +60,28 @@ RunCpptraj "$TESTNAME (molecule)" DoTest Fifth.pdb.1.save Fifth.pdb.1 DoTest Sixth.pdb.1.save Sixth.pdb.1 +# Test residue center of mass +cat > mask.in <;5.0) +outtraj Eighth.pdb.1 pdb noter chainid ' ' + +run +EOF +RunCpptraj "$TESTNAME (residue center)" +DoTest Seventh.pdb.1.save Seventh.pdb.1 +DoTest Eighth.pdb.1.save Eighth.pdb.1 + EndTest exit 0 diff --git a/test/Test_DistBasedMask/Seventh.pdb.1.save b/test/Test_DistBasedMask/Seventh.pdb.1.save new file mode 100644 index 0000000000..44800f987d --- /dev/null +++ b/test/Test_DistBasedMask/Seventh.pdb.1.save @@ -0,0 +1,100 @@ +ATOM 1 N SER 1 -1.889 9.159 7.569 1.00 0.00 N +ATOM 2 H1 SER 1 -1.037 8.691 7.296 1.00 0.00 H +ATOM 3 H2 SER 1 -1.900 9.298 8.569 1.00 0.00 H +ATOM 4 H3 SER 1 -2.538 8.447 7.265 1.00 0.00 H +ATOM 5 CA SER 1 -2.064 10.501 6.993 1.00 0.00 C +ATOM 6 HA SER 1 -3.100 10.824 7.102 1.00 0.00 H +ATOM 7 CB SER 1 -1.230 11.561 7.707 1.00 0.00 C +ATOM 8 HB2 SER 1 -1.670 11.811 8.673 1.00 0.00 H +ATOM 9 HB3 SER 1 -1.248 12.503 7.159 1.00 0.00 H +ATOM 10 OG SER 1 0.123 11.216 7.904 1.00 0.00 O +ATOM 11 HG SER 1 0.274 11.728 8.701 1.00 0.00 H +ATOM 12 C SER 1 -1.613 10.418 5.542 1.00 0.00 C +ATOM 13 O SER 1 -2.498 10.433 4.689 1.00 0.00 O +ATOM 14 N TRP 2 -0.366 10.572 5.090 1.00 0.00 N +ATOM 15 H TRP 2 0.344 10.612 5.808 1.00 0.00 H +ATOM 16 CA TRP 2 0.195 10.697 3.760 1.00 0.00 C +ATOM 17 HA TRP 2 -0.218 11.569 3.254 1.00 0.00 H +ATOM 18 CB TRP 2 1.710 10.879 3.709 1.00 0.00 C +ATOM 19 HB2 TRP 2 2.208 9.986 4.087 1.00 0.00 H +ATOM 20 HB3 TRP 2 1.927 11.641 4.458 1.00 0.00 H +ATOM 21 CG TRP 2 2.265 11.291 2.384 1.00 0.00 C +ATOM 22 CD1 TRP 2 2.032 12.500 1.827 1.00 0.00 C +ATOM 23 HD1 TRP 2 1.538 13.333 2.305 1.00 0.00 H +ATOM 24 NE1 TRP 2 2.860 12.580 0.724 1.00 0.00 N +ATOM 25 HE1 TRP 2 2.929 13.404 0.143 1.00 0.00 H +ATOM 26 CE2 TRP 2 3.662 11.460 0.646 1.00 0.00 C +ATOM 27 CZ2 TRP 2 4.620 11.160 -0.330 1.00 0.00 C +ATOM 28 HZ2 TRP 2 5.059 11.863 -1.023 1.00 0.00 H +ATOM 29 CH2 TRP 2 5.091 9.843 -0.377 1.00 0.00 C +ATOM 30 HH2 TRP 2 5.854 9.610 -1.105 1.00 0.00 H +ATOM 31 CZ3 TRP 2 4.545 8.850 0.445 1.00 0.00 C +ATOM 32 HZ3 TRP 2 4.823 7.840 0.182 1.00 0.00 H +ATOM 33 CE3 TRP 2 3.549 9.159 1.379 1.00 0.00 C +ATOM 34 HE3 TRP 2 3.135 8.430 2.059 1.00 0.00 H +ATOM 35 CD2 TRP 2 3.075 10.477 1.483 1.00 0.00 C +ATOM 36 C TRP 2 -0.190 9.609 2.768 1.00 0.00 C +ATOM 37 O TRP 2 -0.452 9.963 1.621 1.00 0.00 O +ATOM 38 N THR 3 -0.268 8.402 3.334 1.00 0.00 N +ATOM 39 H THR 3 -0.260 8.275 4.336 1.00 0.00 H +ATOM 40 CA THR 3 -0.606 7.172 2.647 1.00 0.00 C +ATOM 41 HA THR 3 -0.180 7.266 1.648 1.00 0.00 H +ATOM 42 CB THR 3 -0.093 5.992 3.468 1.00 0.00 C +ATOM 43 HB THR 3 -0.586 5.081 3.128 1.00 0.00 H +ATOM 44 CG2 THR 3 1.343 5.648 3.081 1.00 0.00 C +ATOM 45 HG21 THR 3 1.306 5.005 2.202 1.00 0.00 H +ATOM 46 HG22 THR 3 1.955 6.543 2.967 1.00 0.00 H +ATOM 47 HG23 THR 3 1.828 5.068 3.866 1.00 0.00 H +ATOM 48 OG1 THR 3 -0.273 6.246 4.843 1.00 0.00 O +ATOM 49 HG1 THR 3 0.428 5.750 5.271 1.00 0.00 H +ATOM 50 C THR 3 -2.073 6.882 2.363 1.00 0.00 C +ATOM 51 O THR 3 -2.884 6.685 3.265 1.00 0.00 O +ATOM 52 N TRP 4 -2.414 6.796 1.075 1.00 0.00 N +ATOM 53 H TRP 4 -1.631 6.756 0.439 1.00 0.00 H +ATOM 54 CA TRP 4 -3.689 6.286 0.613 1.00 0.00 C +ATOM 55 HA TRP 4 -4.288 6.020 1.485 1.00 0.00 H +ATOM 56 CB TRP 4 -4.465 7.275 -0.253 1.00 0.00 C +ATOM 57 HB2 TRP 4 -5.450 6.821 -0.366 1.00 0.00 H +ATOM 58 HB3 TRP 4 -4.022 7.162 -1.242 1.00 0.00 H +ATOM 59 CG TRP 4 -4.632 8.723 0.077 1.00 0.00 C +ATOM 60 CD1 TRP 4 -3.902 9.713 -0.483 1.00 0.00 C +ATOM 61 HD1 TRP 4 -3.089 9.553 -1.176 1.00 0.00 H +ATOM 62 NE1 TRP 4 -4.473 10.923 -0.141 1.00 0.00 N +ATOM 63 HE1 TRP 4 -4.136 11.861 -0.306 1.00 0.00 H +ATOM 64 CE2 TRP 4 -5.469 10.746 0.798 1.00 0.00 C +ATOM 65 CZ2 TRP 4 -6.330 11.693 1.365 1.00 0.00 C +ATOM 66 HZ2 TRP 4 -6.276 12.746 1.130 1.00 0.00 H +ATOM 67 CH2 TRP 4 -7.374 11.196 2.154 1.00 0.00 C +ATOM 68 HH2 TRP 4 -8.230 11.822 2.362 1.00 0.00 H +ATOM 69 CZ3 TRP 4 -7.630 9.824 2.259 1.00 0.00 C +ATOM 70 HZ3 TRP 4 -8.379 9.482 2.959 1.00 0.00 H +ATOM 71 CE3 TRP 4 -6.776 8.905 1.638 1.00 0.00 C +ATOM 72 HE3 TRP 4 -6.974 7.872 1.884 1.00 0.00 H +ATOM 73 CD2 TRP 4 -5.703 9.347 0.848 1.00 0.00 C +ATOM 74 C TRP 4 -3.632 4.926 -0.068 1.00 0.00 C +ATOM 75 O TRP 4 -4.279 3.952 0.309 1.00 0.00 O +ATOM 76 N TRP 11 0.906 -8.522 0.699 1.00 0.00 N +ATOM 77 H TRP 11 1.723 -9.115 0.734 1.00 0.00 H +ATOM 78 CA TRP 11 -0.188 -9.066 -0.080 1.00 0.00 C +ATOM 79 HA TRP 11 -0.737 -8.220 -0.495 1.00 0.00 H +ATOM 80 CB TRP 11 0.412 -10.010 -1.117 1.00 0.00 C +ATOM 81 HB2 TRP 11 1.113 -10.710 -0.661 1.00 0.00 H +ATOM 82 HB3 TRP 11 0.887 -9.368 -1.859 1.00 0.00 H +ATOM 83 CG TRP 11 -0.539 -10.928 -1.816 1.00 0.00 C +ATOM 84 CD1 TRP 11 -1.313 -10.686 -2.898 1.00 0.00 C +ATOM 85 HD1 TRP 11 -1.337 -9.764 -3.460 1.00 0.00 H +ATOM 86 NE1 TRP 11 -1.971 -11.786 -3.411 1.00 0.00 N +ATOM 87 HE1 TRP 11 -2.384 -11.864 -4.330 1.00 0.00 H +ATOM 88 CE2 TRP 11 -1.957 -12.763 -2.437 1.00 0.00 C +ATOM 89 CZ2 TRP 11 -2.785 -13.865 -2.191 1.00 0.00 C +ATOM 90 HZ2 TRP 11 -3.631 -14.012 -2.846 1.00 0.00 H +ATOM 91 CH2 TRP 11 -2.600 -14.709 -1.089 1.00 0.00 C +ATOM 92 HH2 TRP 11 -3.315 -15.473 -0.823 1.00 0.00 H +ATOM 93 CZ3 TRP 11 -1.518 -14.345 -0.278 1.00 0.00 C +ATOM 94 HZ3 TRP 11 -1.325 -14.936 0.604 1.00 0.00 H +ATOM 95 CE3 TRP 11 -0.809 -13.146 -0.419 1.00 0.00 C +ATOM 96 HE3 TRP 11 -0.038 -12.834 0.270 1.00 0.00 H +ATOM 97 CD2 TRP 11 -1.034 -12.259 -1.484 1.00 0.00 C +ATOM 98 C TRP 11 -1.079 -9.752 0.946 1.00 0.00 C +ATOM 99 O TRP 11 -0.710 -10.673 1.672 1.00 0.00 O +END