From b5d97eb24fe8349cbe9d09e303e6c50e57ab51e8 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 17:35:02 +0900 Subject: [PATCH 01/29] feat(meta): import `overload_cast` from pybind11 --- NOTICE.md | 5 ++++ include/nuri/meta.h | 66 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/NOTICE.md b/NOTICE.md index 2aa99812..6f893ad9 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -265,6 +265,11 @@ Spectra is under the MPLv2 license. ## pybind11 - Project URL: +- Files in this repository subject to the license: + - [include/nuri/meta.h](include/nuri/meta.h). The following functions are + imported from pybind11's implementation: + - `overload_cast` + - `overload_cast_impl` - Full license text: ```txt diff --git a/include/nuri/meta.h b/include/nuri/meta.h index da114d4e..9219dcce 100644 --- a/include/nuri/meta.h +++ b/include/nuri/meta.h @@ -105,7 +105,73 @@ namespace internal { constexpr auto extract_if_enum_v(T val) { return static_cast>(val); } + + /** + * This class and the overload_cast variable template are imported from + * pybind11. The original code is licensed under the following license: + * + * \code{.unparsed} + * Copyright (c) 2016 Wenzel Jakob , All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * Please also refer to the file .github/CONTRIBUTING.md, which clarifies + * licensing of external contributions to this project including patches, pull + * requests, etc. + * \endcode + */ + template + struct overload_cast_impl { + template + constexpr decltype(auto) + operator()(Return (*func)(Args...)) const noexcept { + return func; + } + + template + constexpr decltype(auto) + operator()(Return (Class::*pmf)(Args...), + std::false_type /* dispatch */ = {}) const noexcept { + return pmf; + } + + template + constexpr decltype(auto) + operator()(Return (Class::*pmf)(Args...) const, + std::true_type /* dispatch */) const noexcept { + return pmf; + } + }; } // namespace internal + +template +// NOLINTNEXTLINE(readability-identifier-naming) +constexpr inline static internal::overload_cast_impl overload_cast; } // namespace nuri #endif /* NURI_META_H_ */ From 749d104f3379028648f6048d64b459248d07126f Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 17:35:33 +0900 Subject: [PATCH 02/29] feat(utils): add unsafe version of safe_slice_rstrip --- include/nuri/utils.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/nuri/utils.h b/include/nuri/utils.h index 91980300..c27dc869 100644 --- a/include/nuri/utils.h +++ b/include/nuri/utils.h @@ -852,6 +852,11 @@ inline std::string_view slice_strip(std::string_view str, std::size_t begin, return absl::StripAsciiWhitespace(slice(str, begin, end)); } +inline std::string_view slice_rstrip(std::string_view str, std::size_t begin, + std::size_t end) { + return absl::StripTrailingAsciiWhitespace(slice(str, begin, end)); +} + constexpr std::string_view safe_substr(std::string_view str, size_t begin, size_t count = std::string_view::npos) { if (ABSL_PREDICT_FALSE(begin > str.size())) From 5dfc69c59e5ef6281f6fa4d0074592e1070ceec2 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 17:35:55 +0900 Subject: [PATCH 03/29] feat(fmt/cif): implement CIF 1.1 lexer --- include/nuri/fmt/cif.h | 118 +++++++++++++++++++++++++++ src/fmt/cif.cpp | 177 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 295 insertions(+) create mode 100644 include/nuri/fmt/cif.h create mode 100644 src/fmt/cif.cpp diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h new file mode 100644 index 00000000..cc5e9264 --- /dev/null +++ b/include/nuri/fmt/cif.h @@ -0,0 +1,118 @@ +// +// Project NuriKit - Copyright 2024 SNU Compbio Lab. +// SPDX-License-Identifier: Apache-2.0 +// + +#ifndef NURI_FMT_CIF_H_ +#define NURI_FMT_CIF_H_ + +/// @cond +#include +#include +#include +#include +#include + +#include +#include +#include +#include +/// @endcond + +namespace nuri { +namespace internal { + enum class CifToken { + kEOF, + kError, + + kData, + kLoop, + kGlobal, + kSave, + kStop, + + kTag, + kValue, + }; + + using SIter = std::string::const_iterator; + + class CifLexer { + public: + explicit CifLexer(const std::vector &lines): lines_(&lines) { + static_cast(advance_line()); + } + + std::pair next(); + + // state observers + + size_t row() const { return line_ + 1; } + size_t col() const { return it_ - begin_ + 1; } + + SIter begin() const { return begin_; } + + SIter p() const { return it_; } + + char c() const { + ABSL_DCHECK(it_ < end()); + return *it_; + } + + SIter end() const { return end_; } + + const std::vector &lines() const { return *lines_; } + + std::string_view line() const { + ABSL_DCHECK_LT(line_, lines().size()); + return lines()[line_]; + } + + template + ABSL_MUST_USE_RESULT bool advance_line() { + do { + if (++line_ >= lines().size()) { + // reentrant-safe + begin_ = it_ = end(); + return false; + } + + begin_ = it_ = lines()[line_].begin(); + end_ = lines()[line_].end(); + } while (kSkipEmpty && begin_ == end_); + + return true; + } + + // for implementation, do not use + + std::pair produce(std::string_view data, + CifToken type, SIter after) { + it_ = after; + return { data, type }; + } + + template = 0> + std::pair error(Args &&...args) { + buf_.clear(); + absl::StrAppend(&buf_, std::forward(args)...); + return { buf_, CifToken::kError }; + } + + static std::pair done() { + return { {}, CifToken::kEOF }; + } + + private: + const std::vector *lines_; + std::string buf_; + + SIter it_; + SIter begin_; + SIter end_; + std::int64_t line_ = -1; + }; +} // namespace internal +} // namespace nuri + +#endif /* NURI_FMT_CIF_H_ */ diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp new file mode 100644 index 00000000..a6326f6c --- /dev/null +++ b/src/fmt/cif.cpp @@ -0,0 +1,177 @@ +// +// Project NuriKit - Copyright 2024 SNU Compbio Lab. +// SPDX-License-Identifier: Apache-2.0 +// + +#include "nuri/fmt/cif.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nuri/utils.h" + +namespace nuri { +namespace { +namespace x3 = boost::spirit::x3; + +using internal::CifToken; +using internal::SIter; + +// NOLINTBEGIN(readability-identifier-naming) +namespace parser { +// terminals +constexpr auto non_blank_char = x3::char_ - (' ' | x3::cntrl); +constexpr auto cif_delim = x3::space | x3::eoi; + +constexpr auto single_quote_end = x3::raw['\'' >> cif_delim]; +constexpr auto double_quote_end = x3::raw['"' >> cif_delim]; + +constexpr auto tag = x3::raw['_' >> +non_blank_char] >> x3::omit[cif_delim]; + +const struct simple_keyword_heading_: public x3::symbols { + simple_keyword_heading_() { + add("loop_", CifToken::kLoop) // + ("global_", CifToken::kGlobal) // + ("stop_", CifToken::kStop) // + ; + } +} simple_keyword_heading; + +const auto simple_keyword = x3::no_case[simple_keyword_heading] + >> x3::raw[x3::eps]; + +const struct valued_keyword_heading_: public x3::symbols { + valued_keyword_heading_() { + add("data_", CifToken::kData) // + ("save_", CifToken::kSave) // + ; + } +} valued_keyword_heading; + +const auto valued_keyword = x3::no_case[valued_keyword_heading] + >> x3::raw[*non_blank_char]; + +const auto keyword = (simple_keyword | valued_keyword) >> x3::omit[cif_delim]; +} // namespace parser +// NOLINTEND(readability-identifier-naming) + +// all control characters + space + reserved characters ($_[]) +// ';' will be handled separately +constexpr absl::CharSet kSpecialChars = absl::CharSet::Range(0, 32) + | absl::CharSet::Char(127) + | absl::CharSet("$_[]"); + +std::string_view as_sv(SIter begin, SIter end) { + return { &*begin, static_cast(end - begin) }; +} + +std::string_view as_sv(boost::iterator_range range) { + return { &*range.begin(), range.size() }; +} +} // namespace + +namespace internal { +namespace { +using QuoteEnd = decltype(parser::single_quote_end); +static_assert(std::is_same_v); + +std::pair produce_quoted(CifLexer &lexer, + const QuoteEnd &parser) { + for (auto qit = lexer.p() + 1; qit < lexer.end(); ++qit) { + boost::iterator_range quote_match; + if (!x3::parse(qit, lexer.end(), parser, quote_match)) + continue; + + return lexer.produce(as_sv(lexer.p() + 1, quote_match.begin()), + CifToken::kValue, quote_match.end()); + } + + return lexer.error("Unterminated quote at line ", lexer.row()); +} + +std::pair produce_text_field(CifLexer &lexer, + std::string &buf) { + const size_t begin_row = lexer.row(); + + buf = slice_rstrip(lexer.line(), lexer.p() - lexer.begin() + 1, + lexer.end() - lexer.begin()); + + bool left; + while ((left = lexer.advance_line())) { + if (lexer.p() < lexer.end() && lexer.c() == ';') + break; + + absl::StrAppend(&buf, "\n", + absl::StripTrailingAsciiWhitespace(lexer.line())); + } + if (!left) + return lexer.error("Unterminated text field (started at line ", begin_row, + ")"); + + auto it = lexer.p() + 1; + ABSL_LOG_IF(WARNING, it < lexer.end() && std::isspace(*it) == 0) + << "Missing whitespace after text field at line " // + << lexer.row() << ":" << lexer.col() + 1; + return lexer.produce(buf, CifToken::kValue, it); +} +} // namespace + +std::pair CifLexer::next() { + while (p() < end() || advance_line()) { + ABSL_DCHECK(p() < end()); + + if (p() == begin() && c() == ';') + return produce_text_field(*this, buf_); + + it_ = std::find_if_not(p(), end(), ::isspace); + if (it_ == end()) + continue; + + boost::iterator_range tag_match; + if (x3::parse(p(), end(), parser::tag, tag_match)) + return produce(as_sv(tag_match), CifToken::kTag, tag_match.end()); + + std::pair> kw_match; + if (x3::parse(p(), end(), parser::keyword, kw_match)) + return produce(as_sv(kw_match.second), kw_match.first, + kw_match.second.end()); + + switch (c()) { + case '#': + it_ = end(); + continue; + case '\'': + return produce_quoted(*this, parser::single_quote_end); + case '"': + return produce_quoted(*this, parser::double_quote_end); + default: + break; + } + + if (kSpecialChars.contains(c())) { + // abseil forbids passing characters to absl::StrAppend + const char cbuf[] = { c(), '\0' }; + return error("Unexpected special character at line ", row(), ":", col(), + ": ", cbuf); + } + + auto vit = std::find_if(p(), end(), ::isspace); + return produce(as_sv(p(), vit), CifToken::kValue, vit); + } + + return done(); +} +} // namespace internal +} // namespace nuri From 0e7e707f99f8e0bc16536f68436400959722ea3f Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 17:36:14 +0900 Subject: [PATCH 04/29] test(fmt/cif): add cif lexer tests --- test/fmt/cif_test.cpp | 219 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 test/fmt/cif_test.cpp diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp new file mode 100644 index 00000000..5aeb3492 --- /dev/null +++ b/test/fmt/cif_test.cpp @@ -0,0 +1,219 @@ +// +// Project NuriKit - Copyright 2024 SNU Compbio Lab. +// SPDX-License-Identifier: Apache-2.0 +// + +/** + * Some testcases were taken from the BioPython repository. + * Here follows the full license text from BioPython: + * + * + * Copyright 2017 by Francesco Gastaldello. All rights reserved. + * Revisions copyright 2017 by Peter Cock. All rights reserved. + * + * Converted by Francesco Gastaldello from an older unit test copyright 2002 + * by Thomas Hamelryck. + * + * Copyright (c) 1999-2024, The Biopython Contributors + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "nuri/fmt/cif.h" + +#include + +#include + +#include + +#include "nuri/meta.h" + +namespace nuri { +namespace internal { +namespace { +constexpr auto str_case_contains = + overload_cast( + absl::StrContainsIgnoreCase); + +struct CifLexerTest: ::testing::Test { + void TearDown() override { + CifLexer lexer(lines_); + + for (auto [edata, etype]: expected_) { + auto [data, type] = lexer.next(); + if (type == CifToken::kEOF) { + FAIL() + << "Unexpected EOF, cursor: " << lexer.row() << ":" << lexer.col(); + } + + ASSERT_EQ(type, etype) << "Cursor: " << lexer.row() << ":" << lexer.col(); + + if (etype == CifToken::kError) { + EXPECT_PRED2(str_case_contains, data, edata) + << "Cursor: " << lexer.row() << ":" << lexer.col(); + + static_cast(lexer.advance_line()); + } else { + EXPECT_EQ(data, edata) + << "Cursor: " << lexer.row() << ":" << lexer.col(); + } + } + + auto [_, type] = lexer.next(); + EXPECT_EQ(type, CifToken::kEOF) + << "Cursor: " << lexer.row() << ":" << lexer.col(); + } + + void add_expected_values(const std::vector &expected) { + for (std::string_view token: expected) + expected_.push_back({ token, CifToken::kValue }); + } + + std::vector lines_; + std::vector> expected_; +}; + +TEST_F(CifLexerTest, SplitSimpleLines) { + lines_ = { + "foo bar", "foo bar ", "'foo' bar", "foo \"bar\"", + "foo 'bar a' b", "foo 'bar'a' b", "foo \"bar' a\" b", "foo '' b", + "foo bar' b", "foo bar b'", "foo b'ar'", "foo 'b'ar'", + "foo#bar", "foo #bar", "foo# bar", "#foo bar", + }; + + add_expected_values({ + "foo", "bar", // + "foo", "bar", // + "foo", "bar", // + "foo", "bar", // + "foo", "bar a", "b", // + "foo", "bar'a", "b", // + "foo", "bar' a", "b", // + "foo", "", "b", // + "foo", "bar'", "b", // + "foo", "bar", "b'", // + "foo", "b'ar'", // + "foo", "b'ar", // + "foo#bar", // + "foo", // + "foo#", "bar", // + }); +} + +TEST_F(CifLexerTest, UnmatchedQuotes) { + lines_ = { "foo 'bar", "foo 'ba'r ", "foo \"bar'" }; + + expected_ = { + { "foo", CifToken::kValue }, // + { "unterminated quote", CifToken::kError }, // + { "foo", CifToken::kValue }, // + { "unterminated quote", CifToken::kError }, // + { "foo", CifToken::kValue }, // + { "unterminated quote", CifToken::kError }, // + }; +} + +TEST_F(CifLexerTest, TextField) { + lines_ = { + "data_verbatim_test", "_test_value", ";First line", + " Second line", "Third line ", ";", + "data_test", "_key1", ";foo bar", + "; _key2 'value 2'", + }; + + expected_ = { + { "verbatim_test",CifToken::kData }, + { "_test_value", CifToken::kTag }, + { R"text(First line + Second line +Third line)text", + CifToken::kValue }, + { "test", CifToken::kData }, + { "_key1", CifToken::kTag }, + { "foo bar", CifToken::kValue }, + { "_key2", CifToken::kTag }, + { "value 2", CifToken::kValue }, + }; +} + +TEST_F(CifLexerTest, TextFieldTruncated) { + lines_ = { + "data_test _key1", // + ";foo bar", // + ";# missing space here", + "_key2 val2", + "data_test", + "_key1", + ";foo bar", + }; + + expected_ = { + { "test", CifToken::kData }, + { "_key1", CifToken::kTag }, + { "foo bar", CifToken::kValue }, + { "_key2", CifToken::kTag }, + { "val2", CifToken::kValue }, + { "test", CifToken::kData }, + { "_key1", CifToken::kTag }, + { "unterminated text field", CifToken::kError }, + }; +} + +TEST_F(CifLexerTest, InlineComment) { + lines_ = { + "data_verbatim_test", + "_test_key_value_1 foo # Ignore this comment", + "_test_key_value_2 foo#NotIgnored", + "loop_", + "_test_loop", + "a b c d # Ignore this comment", + "e f g", + "", + }; + + expected_ = { + { "verbatim_test", CifToken::kData }, + { "_test_key_value_1", CifToken::kTag }, + { "foo", CifToken::kValue }, + { "_test_key_value_2", CifToken::kTag }, + { "foo#NotIgnored", CifToken::kValue }, + { "", CifToken::kLoop }, + { "_test_loop", CifToken::kTag }, + { "a", CifToken::kValue }, + { "b", CifToken::kValue }, + { "c", CifToken::kValue }, + { "d", CifToken::kValue }, + { "e", CifToken::kValue }, + { "f", CifToken::kValue }, + { "g", CifToken::kValue }, + }; +} +} // namespace +} // namespace internal +} // namespace nuri From bdc9d449f096ec9e520ac7c1d0ee369e2e5a6bf0 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 17:38:10 +0900 Subject: [PATCH 05/29] docs: add BioPython license notice --- NOTICE.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/NOTICE.md b/NOTICE.md index 6f893ad9..d03d53f2 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -575,3 +575,45 @@ Our implementation is based on the original TM-align software (version 20220412) ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` + +## Misc + +### BioPython + +Some testcases were imported from BioPython. + +- Project URL: +- Full license text: + + ```txt + BSD 3-Clause License + -------------------- + + Copyright (c) 1999-2024, The Biopython Contributors + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ``` From 3c9ad0dbe4f1161c0c7c9fd767a6f5f520fcb899 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 17:53:09 +0900 Subject: [PATCH 06/29] test(fmt/cif): add test for underscored value --- test/fmt/cif_test.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index 5aeb3492..9d250795 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -214,6 +214,31 @@ TEST_F(CifLexerTest, InlineComment) { { "g", CifToken::kValue }, }; } + +TEST_F(CifLexerTest, UnderscoreValues) { + lines_ = { + "data_4Q9R", + "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 5 'Structure model' '_atom_site.B_iso_or_equiv'", + }; + + expected_ = { + { "4Q9R", CifToken::kData }, + { "", CifToken::kLoop }, + { "_pdbx_audit_revision_item.ordinal", CifToken::kTag }, + { "_pdbx_audit_revision_item.revision_ordinal", CifToken::kTag }, + { "_pdbx_audit_revision_item.data_content_type", CifToken::kTag }, + { "_pdbx_audit_revision_item.item", CifToken::kTag }, + { "1", CifToken::kValue }, + { "5", CifToken::kValue }, + { "Structure model", CifToken::kValue }, + { "_atom_site.B_iso_or_equiv", CifToken::kValue }, + }; +} } // namespace } // namespace internal } // namespace nuri From c14af599282947bb850d3a9dc5313c38ee6db249 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 18:10:58 +0900 Subject: [PATCH 07/29] feat(fmt/cif): fetch lines lazily --- include/nuri/fmt/cif.h | 27 +++++----- test/fmt/cif_test.cpp | 115 ++++++++++++++++++++++++++--------------- 2 files changed, 84 insertions(+), 58 deletions(-) diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h index cc5e9264..2e7a14e9 100644 --- a/include/nuri/fmt/cif.h +++ b/include/nuri/fmt/cif.h @@ -8,12 +8,12 @@ /// @cond #include -#include +#include #include #include -#include #include +#include #include #include #include @@ -39,7 +39,7 @@ namespace internal { class CifLexer { public: - explicit CifLexer(const std::vector &lines): lines_(&lines) { + explicit CifLexer(std::istream &is): is_(&is) { static_cast(advance_line()); } @@ -47,7 +47,7 @@ namespace internal { // state observers - size_t row() const { return line_ + 1; } + size_t row() const { return row_; } size_t col() const { return it_ - begin_ + 1; } SIter begin() const { return begin_; } @@ -61,24 +61,20 @@ namespace internal { SIter end() const { return end_; } - const std::vector &lines() const { return *lines_; } - - std::string_view line() const { - ABSL_DCHECK_LT(line_, lines().size()); - return lines()[line_]; - } + std::string_view line() const { return line_; } template ABSL_MUST_USE_RESULT bool advance_line() { do { - if (++line_ >= lines().size()) { + if (!std::getline(*is_, line_)) { // reentrant-safe begin_ = it_ = end(); return false; } - begin_ = it_ = lines()[line_].begin(); - end_ = lines()[line_].end(); + ++row_; + begin_ = it_ = line_.begin(); + end_ = line_.end(); } while (kSkipEmpty && begin_ == end_); return true; @@ -104,13 +100,14 @@ namespace internal { } private: - const std::vector *lines_; + absl::Nonnull is_; + std::string line_; std::string buf_; SIter it_; SIter begin_; SIter end_; - std::int64_t line_ = -1; + std::size_t row_ = 0; }; } // namespace internal } // namespace nuri diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index 9d250795..bbd14c5b 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -46,9 +46,12 @@ #include "nuri/fmt/cif.h" +#include +#include #include #include +#include #include @@ -63,7 +66,7 @@ constexpr auto str_case_contains = struct CifLexerTest: ::testing::Test { void TearDown() override { - CifLexer lexer(lines_); + CifLexer lexer(data_); for (auto [edata, etype]: expected_) { auto [data, type] = lexer.next(); @@ -90,22 +93,38 @@ struct CifLexerTest: ::testing::Test { << "Cursor: " << lexer.row() << ":" << lexer.col(); } + void set_data(std::initializer_list lines) { + data_.str(absl::StrJoin(lines, "\n")); + } + void add_expected_values(const std::vector &expected) { for (std::string_view token: expected) expected_.push_back({ token, CifToken::kValue }); } - std::vector lines_; + std::stringstream data_; std::vector> expected_; }; TEST_F(CifLexerTest, SplitSimpleLines) { - lines_ = { - "foo bar", "foo bar ", "'foo' bar", "foo \"bar\"", - "foo 'bar a' b", "foo 'bar'a' b", "foo \"bar' a\" b", "foo '' b", - "foo bar' b", "foo bar b'", "foo b'ar'", "foo 'b'ar'", - "foo#bar", "foo #bar", "foo# bar", "#foo bar", - }; + set_data({ + "foo bar", + "foo bar ", + "'foo' bar", + "foo \"bar\"", + "foo 'bar a' b", + "foo 'bar'a' b", + "foo \"bar' a\" b", + "foo '' b", + "foo bar' b", + "foo bar b'", + "foo b'ar'", + "foo 'b'ar'", + "foo#bar", + "foo #bar", + "foo# bar", + "#foo bar", + }); add_expected_values({ "foo", "bar", // @@ -127,7 +146,11 @@ TEST_F(CifLexerTest, SplitSimpleLines) { } TEST_F(CifLexerTest, UnmatchedQuotes) { - lines_ = { "foo 'bar", "foo 'ba'r ", "foo \"bar'" }; + set_data({ + "foo 'bar", + "foo 'ba'r ", + "foo \"bar'", + }); expected_ = { { "foo", CifToken::kValue }, // @@ -140,12 +163,18 @@ TEST_F(CifLexerTest, UnmatchedQuotes) { } TEST_F(CifLexerTest, TextField) { - lines_ = { - "data_verbatim_test", "_test_value", ";First line", - " Second line", "Third line ", ";", - "data_test", "_key1", ";foo bar", - "; _key2 'value 2'", - }; + set_data({ + "data_verbatim_test", + "_test_value", + ";First line", + " Second line", + "Third line ", + ";", + "data_test", + "_key1", + ";foo bar", + "; _key2 'value 2'", + }); expected_ = { { "verbatim_test",CifToken::kData }, @@ -163,15 +192,15 @@ Third line)text", } TEST_F(CifLexerTest, TextFieldTruncated) { - lines_ = { - "data_test _key1", // - ";foo bar", // - ";# missing space here", - "_key2 val2", - "data_test", - "_key1", - ";foo bar", - }; + set_data({ + "data_test _key1", + ";foo bar", + ";# missing space here", + "_key2 val2", + "data_test", + "_key1", + ";foo bar", + }); expected_ = { { "test", CifToken::kData }, @@ -186,16 +215,16 @@ TEST_F(CifLexerTest, TextFieldTruncated) { } TEST_F(CifLexerTest, InlineComment) { - lines_ = { - "data_verbatim_test", - "_test_key_value_1 foo # Ignore this comment", - "_test_key_value_2 foo#NotIgnored", - "loop_", - "_test_loop", - "a b c d # Ignore this comment", - "e f g", - "", - }; + set_data({ + "data_verbatim_test", + "_test_key_value_1 foo # Ignore this comment", + "_test_key_value_2 foo#NotIgnored", + "loop_", + "_test_loop", + "a b c d # Ignore this comment", + "e f g", + "", + }); expected_ = { { "verbatim_test", CifToken::kData }, @@ -216,15 +245,15 @@ TEST_F(CifLexerTest, InlineComment) { } TEST_F(CifLexerTest, UnderscoreValues) { - lines_ = { - "data_4Q9R", - "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 5 'Structure model' '_atom_site.B_iso_or_equiv'", - }; + set_data({ + "data_4Q9R", + "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 5 'Structure model' '_atom_site.B_iso_or_equiv'", + }); expected_ = { { "4Q9R", CifToken::kData }, From d9241e16cc12921642a3f5c0815e01460765ed33 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 18:28:53 +0900 Subject: [PATCH 08/29] feat(fmt/cif): support line continuation in text field --- src/fmt/cif.cpp | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index a6326f6c..ee57ddcf 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -15,8 +15,10 @@ #include #include #include +#include #include #include +#include #include #include @@ -101,31 +103,54 @@ std::pair produce_quoted(CifLexer &lexer, return lexer.error("Unterminated quote at line ", lexer.row()); } -std::pair produce_text_field(CifLexer &lexer, - std::string &buf) { +template +std::pair +produce_text_field_impl(CifLexer &lexer, std::string &buf) { const size_t begin_row = lexer.row(); - buf = slice_rstrip(lexer.line(), lexer.p() - lexer.begin() + 1, - lexer.end() - lexer.begin()); + std::string_view line = buf; bool left; while ((left = lexer.advance_line())) { if (lexer.p() < lexer.end() && lexer.c() == ';') break; - absl::StrAppend(&buf, "\n", - absl::StripTrailingAsciiWhitespace(lexer.line())); + std::string_view sep = "\n"; + if constexpr (kContinuation) { + if (absl::EndsWith(line, "\\")) { + buf.pop_back(); + sep = ""; + } + } + + line = absl::StripTrailingAsciiWhitespace(lexer.line()); + absl::StrAppend(&buf, sep, line); } if (!left) return lexer.error("Unterminated text field (started at line ", begin_row, ")"); + if constexpr (kContinuation) { + if (absl::EndsWith(line, "\\")) + buf.pop_back(); + } + auto it = lexer.p() + 1; ABSL_LOG_IF(WARNING, it < lexer.end() && std::isspace(*it) == 0) << "Missing whitespace after text field at line " // << lexer.row() << ":" << lexer.col() + 1; return lexer.produce(buf, CifToken::kValue, it); } + +std::pair produce_text_field(CifLexer &lexer, + std::string &buf) { + buf = slice_rstrip(lexer.line(), lexer.p() - lexer.begin() + 1, + lexer.end() - lexer.begin()); + if (buf == "\\") + return produce_text_field_impl(lexer, buf); + + return produce_text_field_impl(lexer, buf); +} } // namespace std::pair CifLexer::next() { From 92729300e39ee82c59ae0d73454f791377c5a149 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Thu, 19 Dec 2024 21:54:08 +0900 Subject: [PATCH 09/29] test(fmt/cif): test for line continuation --- test/fmt/cif_test.cpp | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index bbd14c5b..ed3cacf1 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -268,6 +268,79 @@ TEST_F(CifLexerTest, UnderscoreValues) { { "_atom_site.B_iso_or_equiv", CifToken::kValue }, }; } + +TEST_F(CifLexerTest, LineContinuation) { + set_data({ + "data_znvodata", + "_chemical_name_systematic ", + ";\\", + " zinc dihydroxide divan\\", + "adate dihydrate", + ";", + "", + "_chemical_formula_moiety", + ";\\", + "H2 O9 V2 Zn3, 2(H2 O)\\", + ";", + "_chemical_formula_sum 'H6 O11 V2 Zn3'", + "_chemical_formula_weight 480.05", + }); + + expected_ = { + { "znvodata", CifToken::kData }, + { "_chemical_name_systematic", CifToken::kTag }, + { " zinc dihydroxide divanadate dihydrate", CifToken::kValue }, + { "_chemical_formula_moiety", CifToken::kTag }, + { "H2 O9 V2 Zn3, 2(H2 O)", CifToken::kValue }, + { "_chemical_formula_sum", CifToken::kTag }, + { "H6 O11 V2 Zn3", CifToken::kValue }, + { "_chemical_formula_weight", CifToken::kTag }, + { "480.05", CifToken::kValue }, + }; +} + +TEST_F(CifLexerTest, LineContinuationMixed) { + set_data({ + ";C:\\foldername\\filename", + ";", + ";\\", + "C:\\foldername\\filename", + ";", + ";\\", + "C:\\foldername\\file\\", + "name", + ";", + ";", + "C:\\foldername\\file\\", + "name", + ";", + ";\\", + "C:\\foldername\\file\\\\", + "", + "name\\", + "", + "", + ";", + }); + + expected_ = { + { "C:\\foldername\\filename", CifToken::kValue }, + { "C:\\foldername\\filename", CifToken::kValue }, + { "C:\\foldername\\filename", CifToken::kValue }, + { + R"( +C:\foldername\file\ +name)", // + CifToken::kValue, + }, + { + R"(C:\foldername\file\ +name +)", // + CifToken::kValue, + }, + }; +} } // namespace } // namespace internal } // namespace nuri From 204f40d466ec36158a6754aa5ec797d60b8a8ba7 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 11:43:56 +0900 Subject: [PATCH 10/29] feat(fmt/cif): discriminate unquoted and quoted values --- include/nuri/fmt/cif.h | 40 ++++++++++++++++++++++++++++------------ src/fmt/cif.cpp | 6 +++--- test/fmt/cif_test.cpp | 8 +++++++- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h index 2e7a14e9..8b44ef21 100644 --- a/include/nuri/fmt/cif.h +++ b/include/nuri/fmt/cif.h @@ -8,6 +8,7 @@ /// @cond #include +#include #include #include #include @@ -19,22 +20,37 @@ #include /// @endcond +#include "nuri/utils.h" + namespace nuri { namespace internal { - enum class CifToken { - kEOF, - kError, - - kData, - kLoop, - kGlobal, - kSave, - kStop, - - kTag, - kValue, + enum class CifToken : std::uint32_t { + kEOF = 0U, + kError = 1U, + + kData = 2U, + kLoop = 3U, + kGlobal = 4U, + kSave = 5U, + kStop = 6U, + + // 7-15 reserved for future use + + kTag = 1U << 4, + kValue = 1U << 5, + + // Flags + kIsQuoted = 1U << 31, + + // Compound tokens + kSimpleValue = kValue, + kQuotedValue = kValue | kIsQuoted, }; + constexpr bool is_value_token(CifToken token) { + return static_cast(token & CifToken::kValue); + } + using SIter = std::string::const_iterator; class CifLexer { diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index ee57ddcf..b6c7e8c9 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -97,7 +97,7 @@ std::pair produce_quoted(CifLexer &lexer, continue; return lexer.produce(as_sv(lexer.p() + 1, quote_match.begin()), - CifToken::kValue, quote_match.end()); + CifToken::kQuotedValue, quote_match.end()); } return lexer.error("Unterminated quote at line ", lexer.row()); @@ -139,7 +139,7 @@ produce_text_field_impl(CifLexer &lexer, std::string &buf) { ABSL_LOG_IF(WARNING, it < lexer.end() && std::isspace(*it) == 0) << "Missing whitespace after text field at line " // << lexer.row() << ":" << lexer.col() + 1; - return lexer.produce(buf, CifToken::kValue, it); + return lexer.produce(buf, CifToken::kQuotedValue, it); } std::pair produce_text_field(CifLexer &lexer, @@ -193,7 +193,7 @@ std::pair CifLexer::next() { } auto vit = std::find_if(p(), end(), ::isspace); - return produce(as_sv(p(), vit), CifToken::kValue, vit); + return produce(as_sv(p(), vit), CifToken::kSimpleValue, vit); } return done(); diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index ed3cacf1..bd404a77 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -75,7 +75,13 @@ struct CifLexerTest: ::testing::Test { << "Unexpected EOF, cursor: " << lexer.row() << ":" << lexer.col(); } - ASSERT_EQ(type, etype) << "Cursor: " << lexer.row() << ":" << lexer.col(); + if (etype == CifToken::kValue) { + ASSERT_TRUE(is_value_token(type)) + << "Cursor: " << lexer.row() << ":" << lexer.col(); + } else { + ASSERT_EQ(type, etype) + << "Cursor: " << lexer.row() << ":" << lexer.col(); + } if (etype == CifToken::kError) { EXPECT_PRED2(str_case_contains, data, edata) From 80052c8988ea911891560880f121783db66a68f7 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 16:44:29 +0900 Subject: [PATCH 11/29] feat(fmt/cif): implement CIF 1.1 parser --- include/nuri/fmt/cif.h | 241 ++++++++++++++++++++++++++++++++++ src/fmt/cif.cpp | 285 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 526 insertions(+) diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h index 8b44ef21..e8c2fa61 100644 --- a/include/nuri/fmt/cif.h +++ b/include/nuri/fmt/cif.h @@ -10,14 +10,20 @@ #include #include #include +#include #include +#include #include +#include +#include #include #include #include +#include #include #include +#include /// @endcond #include "nuri/utils.h" @@ -51,6 +57,8 @@ namespace internal { return static_cast(token & CifToken::kValue); } + extern std::ostream &operator<<(std::ostream &os, CifToken type); + using SIter = std::string::const_iterator; class CifLexer { @@ -125,6 +133,239 @@ namespace internal { SIter end_; std::size_t row_ = 0; }; + + class CifValue { + public: + enum class Type : std::uint32_t { + kGeneric = 1U, // Unquoted literals + kString = 1U << 1, // Quoted literals + + // Reserved for future use + + kUnknown = 1U << 30, // ? + kInapplicable = 1U << 31, // . + + kNull = kUnknown | kInapplicable, // any null value + }; + + CifValue(std::string_view value, internal::CifToken type): value_(value) { + if (type == internal::CifToken::kQuotedValue) { + type_ = Type::kString; + return; + } + + ABSL_DCHECK_EQ(type, internal::CifToken::kSimpleValue); + + if (value == "?") { + value_.clear(); + type_ = Type::kUnknown; + } else if (value == ".") { + value_.clear(); + type_ = Type::kInapplicable; + } + } + + std::string_view operator*() const { return value_; } + std::string_view value() const { return value_; } + + const std::string *operator->() const { return &value_; } + + Type type() const { return type_; } + + constexpr bool is_null() const { + return static_cast(type_ & Type::kNull); + } + + constexpr operator bool() const { return !is_null(); } + + bool operator==(std::string_view other) const; + + private: + std::string value_; + Type type_ = Type::kGeneric; + }; + + extern std::ostream &operator<<(std::ostream &os, const CifValue &value); + + class CifTableColumn; + + class CifTable { + public: + CifTable() = default; + + const std::vector &keys() const { return keys_; } + void add_key(std::string_view key) { keys_.push_back(std::string { key }); } + + const std::vector> &data() const { return rows_; } + void add_data(CifValue &&value); + + const std::vector &operator[](size_t i) const { return rows_[i]; } + size_t size() const { return rows_.size(); } + + auto begin() const { return rows_.begin(); } + auto end() const { return rows_.end(); } + + const std::vector &row(size_t i) const { return rows_[i]; } + size_t rows() const { return rows_.size(); } + + CifTableColumn col(size_t i) const; + size_t cols() const { return keys_.size(); } + + bool empty() const { return keys_.empty() || rows_.empty(); } + + private: + std::vector keys_; + std::vector> rows_; + }; + + class CifTableColumn { + public: + CifTableColumn(absl::Nonnull table, size_t col) + : table_(table), col_(col) { } + + std::string_view key() const { return table_->keys()[col_]; } + size_t idx() const { return col_; } + + const CifValue &operator[](size_t i) const { return table_->row(i)[col_]; } + size_t size() const { return table_->rows(); } + + private: + absl::Nonnull table_; + size_t col_; + }; + + inline CifTableColumn CifTable::col(size_t i) const { + return { this, i }; + } + + class CifFrame { + public: + CifFrame(std::vector &&tables, std::string &&name); + + CifFrame() noexcept = default; + CifFrame(CifFrame &&) noexcept = default; + CifFrame &operator=(CifFrame &&) noexcept = default; + ~CifFrame() = default; + + // Not copyable due to index + CifFrame(const CifFrame &) = delete; + CifFrame &operator=(const CifFrame &) = delete; + + std::string_view name() const { return name_; } + + const std::vector &tables() const { return tables_; } + + const CifTable &operator[](size_t i) const { return tables_[i]; } + size_t size() const { return tables_.size(); } + + auto begin() const { return tables_.begin(); } + auto end() const { return tables_.end(); } + + auto prefix_search(std::string_view prefix) const { + return boost::make_iterator_range(index_.lower_bound(prefix), + index_.end()); + } + + std::pair find(std::string_view key) const { + auto it = index_.find(key); + if (it == index_.end()) + return { -1, -1 }; + return it->second; + } + + CifTableColumn get(size_t tbl, size_t col) const { + return tables_[tbl].col(col); + } + + std::string validate() const; + + private: + std::string name_; + std::vector tables_; + absl::btree_map> index_; + }; + + class CifBlock { + public: + enum class Type : int { + kEOF = static_cast(CifToken::kEOF), // sentinel, end of file + kError = static_cast(CifToken::kError), // sentinel, error state + kGlobal = static_cast(CifToken::kGlobal), // global_ + kData = static_cast(CifToken::kData), // data_[] + }; + + CifBlock(CifFrame &&frame, std::vector &&save, Type type) noexcept + : frame_(std::move(frame)), save_(std::move(save)), type_(type) { + ABSL_DCHECK(*this); + } + + static CifBlock eof() noexcept { return {}; } + + static CifBlock error(std::string_view reason) { return { reason }; } + std::string_view error_msg() const { + ABSL_DCHECK(type_ == Type::kError); + return frame_.name(); + } + + std::string_view name() const { + ABSL_DCHECK(type_ != Type::kError); + return frame_.name(); + } + + const CifFrame &data() const { return frame_; } + + const std::vector &save_frames() const { return save_; } + + Type type() const { return type_; } + + constexpr operator bool() const { + return type_ != Type::kEOF && type_ != Type::kError; + } + + private: + CifBlock() noexcept: type_(Type::kEOF) { } + + CifBlock(std::string_view error_msg) + : frame_({}, std::string { error_msg }), type_(Type::kError) { } + + CifFrame frame_; + std::vector save_; + Type type_; + }; +} // namespace internal + +class CifParser { +public: + explicit CifParser(std::istream &is); + + internal::CifBlock next(); + + // for implementation, do not use + + internal::CifBlock error(std::string_view reason); + +private: + internal::CifLexer lexer_; + + std::string name_; + internal::CifBlock::Type block_ = internal::CifBlock::Type::kEOF; +}; + +// Test helpers + +namespace internal { + enum class CifGlobalCtx { + kBlock, + kSave, + }; + + extern std::pair + parse_data(CifGlobalCtx ctx, std::vector &tables, CifLexer &lexer, + std::string_view name); + + extern CifBlock next_block(CifParser &parser, CifLexer &lexer, + std::string &next_name, + internal::CifBlock::Type &next_block); } // namespace internal } // namespace nuri diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index b6c7e8c9..a48ec633 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -10,7 +10,11 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -25,6 +29,49 @@ #include "nuri/utils.h" namespace nuri { +namespace internal { +std::ostream &operator<<(std::ostream &os, CifToken type) { + // NOLINTNEXTLINE(clang-diagnostic-switch-enum) + switch (type) { + case nuri::internal::CifToken::kEOF: + os << "EOF"; + break; + case nuri::internal::CifToken::kError: + os << "Error"; + break; + case nuri::internal::CifToken::kData: + os << "Data"; + break; + case nuri::internal::CifToken::kLoop: + os << "Loop"; + break; + case nuri::internal::CifToken::kGlobal: + os << "Global"; + break; + case nuri::internal::CifToken::kSave: + os << "Save"; + break; + case nuri::internal::CifToken::kStop: + os << "Stop"; + break; + case nuri::internal::CifToken::kTag: + os << "Tag"; + break; + case nuri::internal::CifToken::kSimpleValue: + os << "Value"; + break; + case nuri::internal::CifToken::kQuotedValue: + os << "QuotedValue"; + break; + default: + os << "Unknown"; + break; + } + + return os; +} +} // namespace internal + namespace { namespace x3 = boost::spirit::x3; @@ -198,5 +245,243 @@ std::pair CifLexer::next() { return done(); } + +bool CifValue::operator==(std::string_view other) const { + return value_ == other && (type_ == Type::kString || type_ == Type::kGeneric); +} + +std::ostream &operator<<(std::ostream &os, const CifValue &value) { + using ValueType = CifValue::Type; + + // NOLINTNEXTLINE(clang-diagnostic-switch-enum) + switch (value.type()) { + case ValueType::kGeneric: + return os << value.value(); + case ValueType::kString: + return os << '"' << value.value() << '"'; + case ValueType::kUnknown: + return os << '?'; + case ValueType::kInapplicable: + return os << '.'; + default: + ABSL_UNREACHABLE(); + } +} + +void CifTable::add_data(CifValue &&value) { + if (rows_.empty() || rows_.back().size() == keys_.size()) + rows_.emplace_back(); + + rows_.back().push_back(std::move(value)); +} + +CifFrame::CifFrame(std::vector &&tables, std::string &&name) + : name_(std::move(name)), tables_(std::move(tables)) { + for (int i = 0; i < tables_.size(); ++i) { + for (int j = 0; j < tables_[i].cols(); ++j) { + auto [_, ok] = index_.insert({ + tables_[i].keys()[j], + { i, j }, + }); + + ABSL_DCHECK(ok) << "Duplicate key: " << tables_[i].keys()[j]; + } + } +} + +std::string CifFrame::validate() const { + if (!absl::c_all_of(tables_, [](const CifTable &table) { + return absl::c_all_of(table, [&](const std::vector &row) { + return row.size() == table.keys().size(); + }); + })) { + return "Inconsistent table size"; + } + + for (int i = 0; i < tables_.size(); ++i) { + for (int j = 0; j < tables_[i].cols(); ++j) { + auto [iref, jref] = find(tables_[i].keys()[j]); + if (iref != i || jref != j) + return absl::StrCat("Duplicate or missing key in index: ", + tables_[i].keys()[j]); + } + } + + return ""; +} + +namespace { +using BlockType = CifBlock::Type; + +enum class CifParseCtx { + kNonLoop, + + kLoopTag, + kLoopValue, +}; + +template +std::pair +parse_data_impl(std::vector &tables, CifLexer &lexer, + const std::string_view name) { + CifParseCtx ctx = CifParseCtx::kNonLoop; + + while (true) { + auto [data, type] = lexer.next(); + + // NOLINTNEXTLINE(clang-diagnostic-switch-enum) + switch (type) { + case CifToken::kEOF: + case CifToken::kError: + case CifToken::kData: + case CifToken::kGlobal: + return { data, type }; + case CifToken::kSave: + if (kGCtx == CifGlobalCtx::kBlock || data.empty()) + return { data, type }; + + return lexer.error("Nested save block ", data, " in ", name); + case CifToken::kStop: + ABSL_LOG(WARNING) << "Stop tag is unimplemented"; + break; + case CifToken::kLoop: + tables.emplace_back(); + ctx = CifParseCtx::kLoopTag; + break; + case CifToken::kTag: + // loop ended with new tag, or block starts with non-loop tag + if (ctx == CifParseCtx::kLoopValue || tables.empty()) { + if (ctx == CifParseCtx::kLoopValue) + ctx = CifParseCtx::kNonLoop; + tables.emplace_back(); + } + tables.back().add_key(data); + break; + default: + ABSL_DCHECK(is_value_token(type)) << "Unexpected token: " << type; + + if (tables.empty() || tables.back().keys().empty()) + return lexer.error("Unexpected value token ", data, " in ", name); + + if (ctx == CifParseCtx::kLoopTag) + ctx = CifParseCtx::kLoopValue; + + tables.back().add_data({ data, type }); + break; + } + } +} +} // namespace + +std::pair parse_data(CifGlobalCtx ctx, + std::vector &tables, + CifLexer &lexer, + std::string_view name) { + if (ctx == CifGlobalCtx::kBlock) + return parse_data_impl(tables, lexer, name); + if (ctx == CifGlobalCtx::kSave) + return parse_data_impl(tables, lexer, name); + + ABSL_UNREACHABLE(); +} + +CifBlock next_block(CifParser &parser, CifLexer &lexer, std::string &next_name, + BlockType &next_block) { + std::string name = std::move(next_name); + BlockType block_type = next_block; + + std::vector tables; + std::vector save_frames; + std::string frame_name; + + CifGlobalCtx global_ctx = CifGlobalCtx::kBlock; + while (true) { + if (global_ctx == CifGlobalCtx::kBlock) { + auto [data, type] = + parse_data_impl(tables, lexer, name); + if (type == CifToken::kError) + return parser.error(data); + if (type == CifToken::kEOF || type == CifToken::kData + || type == CifToken::kGlobal) { + next_name = data; + next_block = static_cast(type); + break; + } + + ABSL_DCHECK_EQ(type, CifToken::kSave); + global_ctx = CifGlobalCtx::kSave; + frame_name = data; + ABSL_LOG_IF(WARNING, frame_name.empty()) << "Empty save block name"; + } else { + std::vector save_tables; + + auto [data, type] = + parse_data_impl(save_tables, lexer, frame_name); + if (type == CifToken::kError) + return parser.error(data); + if (type == CifToken::kEOF || type == CifToken::kData + || type == CifToken::kGlobal) + return parser.error("Save block ended without save_ tag"); + + ABSL_DCHECK_EQ(type, CifToken::kSave); + global_ctx = CifGlobalCtx::kBlock; + save_frames.push_back( + CifFrame(std::move(save_tables), std::move(frame_name))); + } + } + + return CifBlock(CifFrame(std::move(tables), std::move(name)), + std::move(save_frames), block_type); +} } // namespace internal + +using internal::BlockType; +using internal::CifToken; + +CifParser::CifParser(std::istream &is): lexer_(is) { + while (true) { + auto [data, type] = lexer_.next(); + + // NOLINTNEXTLINE(clang-diagnostic-switch-enum) + switch (type) { + case CifToken::kEOF: + case CifToken::kError: + case CifToken::kGlobal: + case CifToken::kData: + name_ = data; + block_ = static_cast(type); + return; + default: + ABSL_LOG(INFO) << "Skipping stray token before data block: " << type; + break; + } + } +} + +internal::CifBlock CifParser::next() { + if (block_ == BlockType::kEOF) + return internal::CifBlock::eof(); + + if (block_ == BlockType::kError) + return error(name_); + + internal::CifBlock block = internal::next_block(*this, lexer_, name_, block_); + + std::string err = block.data().validate(); + for (int i = 0; err.empty() && i < block.save_frames().size(); ++i) { + err = block.save_frames()[i].validate(); + if (!err.empty()) + absl::StrAppend(&err, " in save block ", block.save_frames()[i].name()); + } + if (!err.empty()) + return error(err); + + return block; +} + +internal::CifBlock CifParser::error(std::string_view reason) { + name_ = reason; + block_ = BlockType::kError; + return internal::CifBlock::error(reason); +} } // namespace nuri From a4688bd5a569f84dd5aa70777a942af8c4ca8c5f Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 17:18:19 +0900 Subject: [PATCH 12/29] test(fmt/cif): add simple parser testcases --- test/fmt/cif_test.cpp | 130 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index bd404a77..6b137197 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -347,6 +348,135 @@ name }, }; } + +struct CifParseDataTest: ::testing::Test { + void TearDown() override { + CifLexer lexer(data_); + + auto [value, state] = + parse_data(CifGlobalCtx::kBlock, tables_, lexer, "foo"); + ASSERT_EQ(state, expected_state_) << value; + if (expected_state_ == CifToken::kError) { + EXPECT_PRED2(str_case_contains, value, expected_) + << "Cursor: " << lexer.row() << ":" << lexer.col(); + return; + } + + ASSERT_EQ(tables_.size(), keys_.size()); + + for (int i = 0; i < keys_.size(); ++i) { + ASSERT_EQ(tables_[i].keys().size(), keys_[i].size()) << i; + for (int j = 0; j < keys_[i].size(); ++j) + EXPECT_EQ(tables_[i].keys()[j], keys_[i][j]) << i << ", " << j; + + ASSERT_EQ(tables_[i].data().size(), values_[i].size()) << i; + for (int j = 0; j < values_[i].size(); ++j) { + ASSERT_EQ(tables_[i].data()[j].size(), values_[i][j].size()) + << i << ", " << j; + for (int k = 0; k < values_[i][j].size(); ++k) + EXPECT_EQ(tables_[i].data()[j][k], values_[i][j][k]) + << i << ", " << j << ", " << k; + } + } + } + + std::stringstream data_; + + std::vector tables_; + + std::string_view expected_; + CifToken expected_state_ = CifToken::kEOF; + + std::vector> keys_; + std::vector>> values_; +}; + +TEST_F(CifParseDataTest, ParseNonLoop) { + data_.str(R"cif(_test_value +;First line + Second line +Third line +; _key1 +;foo bar +; _key2 'value 2' +)cif"); + + keys_ = { + { "_test_value", "_key1", "_key2" }, + }; + values_ = { + { + { + R"text(First line + Second line +Third line)text", + "foo bar", + "value 2", + }, // + }, + }; +} + +TEST_F(CifParseDataTest, ParseSimpleLoop) { + data_.str(R"cif(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 5 'Structure model' '_atom_site.B_iso_or_equiv' +2 5 'Structure model' '_atom_site.Cartn_x' +3 5 'Structure model' '_atom_site.Cartn_y' +4 5 'Structure model' '_atom_site.Cartn_z' +)cif"); + + keys_ = { + { + "_pdbx_audit_revision_item.ordinal", // + "_pdbx_audit_revision_item.revision_ordinal", // + "_pdbx_audit_revision_item.data_content_type", // + "_pdbx_audit_revision_item.item", // + }, + }; + values_ = { + { + { "1", "5", "Structure model", "_atom_site.B_iso_or_equiv" }, + { "2", "5", "Structure model", "_atom_site.Cartn_x" }, + { "3", "5", "Structure model", "_atom_site.Cartn_y" }, + { "4", "5", "Structure model", "_atom_site.Cartn_z" }, + }, + }; +} + +TEST_F(CifParseDataTest, ParseMixedData) { + data_.str(R"cif( +_test_key_value_1 foo # Ignore this comment +_test_key_value_2 foo#NotIgnored +loop_ +_test_loop +a b c d # Ignore this comment +e f g + +loop_ +_test_loop2 +h i j k + +_test_key_value_3 foo +_test_key_value_4 bar +)cif"); + + keys_ = { + { "_test_key_value_1", "_test_key_value_2" }, + { "_test_loop" }, + { "_test_loop2" }, + { "_test_key_value_3", "_test_key_value_4" }, + }; + values_ = { + { { "foo", "foo#NotIgnored" } }, + { { "a" }, { "b" }, { "c" }, { "d" }, { "e" }, { "f" }, { "g" } }, + { { "h" }, { "i" }, { "j" }, { "k" } }, + { { "foo", "bar" } }, + }; +} } // namespace } // namespace internal } // namespace nuri From 47609512618223dc3f59d6c94fa1c5d7e9dcde28 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 17:32:28 +0900 Subject: [PATCH 13/29] feat(fmt/cif): allow querying total column count --- include/nuri/fmt/cif.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h index e8c2fa61..da1d4bce 100644 --- a/include/nuri/fmt/cif.h +++ b/include/nuri/fmt/cif.h @@ -261,6 +261,8 @@ namespace internal { auto begin() const { return tables_.begin(); } auto end() const { return tables_.end(); } + size_t total_cols() const { return index_.size(); } + auto prefix_search(std::string_view prefix) const { return boost::make_iterator_range(index_.lower_bound(prefix), index_.end()); From de650f29e11e15f521338a854a104d5aca6035d8 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 17:32:55 +0900 Subject: [PATCH 14/29] test(fmt/cif): add full cif parser tests --- test/fmt/cif_test.cpp | 199 ++ test/test_data/1a8o.cif | 1655 ++++++++++++++++ test/test_data/components_stdres.cif | 2586 ++++++++++++++++++++++++++ 3 files changed, 4440 insertions(+) create mode 100644 test/test_data/1a8o.cif create mode 100644 test/test_data/components_stdres.cif diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index 6b137197..2618be9e 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -46,6 +46,7 @@ #include "nuri/fmt/cif.h" +#include #include #include #include @@ -56,6 +57,7 @@ #include +#include "fmt_test_common.h" #include "nuri/meta.h" namespace nuri { @@ -477,6 +479,203 @@ _test_key_value_4 bar { { "foo", "bar" } }, }; } + +TEST(CifParseTest, PDB1A8O) { + std::ifstream ifs(test_data("1a8o.cif")); + ASSERT_TRUE(ifs) << "Failed to open file: 1a8o.cif"; + + CifParser parser(ifs); + CifBlock block = parser.next(); + ASSERT_TRUE(block) << "Failed to parse"; + + const CifFrame &frame = block.data(); + EXPECT_EQ(frame.name(), "1A8O"); + EXPECT_EQ(frame.total_cols(), 574); + + { + auto [i, j] = frame.find("_entry.id"); + ASSERT_GE(i, 0); + ASSERT_GE(j, 0); + + EXPECT_EQ(frame.tables()[i][j][0], "1A8O"); + } + + std::vector mon_ids = { + "MSE", "ASP", "ILE", "ARG", "GLN", "GLY", "PRO", "LYS", "GLU", "PRO", + "PHE", "ARG", "ASP", "TYR", "VAL", "ASP", "ARG", "PHE", "TYR", "LYS", + "THR", "LEU", "ARG", "ALA", "GLU", "GLN", "ALA", "SER", "GLN", "GLU", + "VAL", "LYS", "ASN", "TRP", "MSE", "THR", "GLU", "THR", "LEU", "LEU", + "VAL", "GLN", "ASN", "ALA", "ASN", "PRO", "ASP", "CYS", "LYS", "THR", + "ILE", "LEU", "LYS", "ALA", "LEU", "GLY", "PRO", "GLY", "ALA", "THR", + "LEU", "GLU", "GLU", "MSE", "MSE", "THR", "ALA", "CYS", "GLN", "GLY", + }; + std::vector cartn_x = { + "19.594", "20.255", "20.351", "19.362", "19.457", "20.022", "21.718", + "21.424", "21.554", "21.835", "21.947", "21.678", "23.126", "23.098", + "23.433", "22.749", "22.322", "22.498", "21.220", "20.214", "23.062", + "24.282", "23.423", "25.429", "21.280", "20.173", "20.766", "21.804", + "19.444", "18.724", "18.011", "17.416", "16.221", "15.459", "15.824", + "20.116", "20.613", "20.546", "19.488", "19.837", "20.385", "19.526", + "18.365", "20.090", "21.675", "21.698", "20.859", "20.729", "20.260", + "19.435", "20.158", "19.512", "18.993", "20.056", "20.300", "21.486", + "22.285", "23.286", "24.155", "23.025", "22.117", "21.236", "20.159", + "19.231", "23.152", "24.037", "23.563", "22.398", "24.086", "25.003", + "24.858", "23.861", "25.748", "24.459", "24.089", "23.580", "24.111", + "25.415", "26.116", "25.852", "22.544", "21.960", "22.965", "22.928", + "20.793", "19.999", "19.234", "20.019", "18.495", "19.286", "18.523", + "23.861", "24.870", "25.788", "26.158", "25.684", "26.777", "26.215", + "27.235", "28.136", "28.155", "29.030", "26.137", "26.994", "26.279", + "26.880", "27.408", "28.345", "28.814", "28.620", "24.992", "24.151", + "24.025", "24.139", "22.787", "21.629", "21.657", "20.489", "20.571", + "19.408", "19.450", "18.365", "23.839", "23.720", "24.962", "24.853", + "23.502", "23.661", "22.120", "26.137", "27.387", "27.511", "27.925", + "28.595", "28.723", "28.016", "29.545", "27.136", "27.202", "26.238", + "26.585", "26.850", "27.835", "27.667", "26.352", "25.494", "25.797", + "24.325", "25.037", "23.984", "24.456", "24.305", "22.761", "21.538", + "21.301", "20.586", "20.130", "19.415", "19.186", "25.033", "25.526", + "26.755", "27.015", "25.771", "24.608", "23.508", "24.583", "22.406", + "23.490", "22.406", "21.326", "27.508", "28.691", "28.183", "28.705", + "29.455", "30.787", "31.428", "32.618", "33.153", "27.116", "26.508", + "25.826", "25.827", "25.475", "26.150", "24.741", "25.264", "24.587", + "25.587", "25.302", "23.789", "22.707", "21.787", "21.910", "26.767", + "27.806", "28.299", "28.656", "29.006", "28.944", "30.295", "30.744", + "30.326", "29.441", "30.787", "28.332", "28.789", "27.943", "28.374", + "28.803", "26.740", "25.833", "25.775", "24.998", "24.425", "24.354", + "24.816", "24.535", "25.454", "26.601", "26.645", "25.240", "24.885", + "27.391", "28.884", "29.200", "28.729", "29.998", "24.438", "23.066", + "23.001", "23.824", "22.370", "22.035", "21.831", "21.174", "20.852", + "20.917", "19.638", "20.949", "20.315", "18.908", "18.539", "20.262", + "19.688", "20.414", "21.592", "19.714", "18.136", "16.775", "16.738", + "15.875", "16.101", "15.478", "14.341", "13.247", "14.542", "17.668", + "17.730", "18.064", "17.491", "18.754", "18.932", "18.279", "18.971", + "19.343", "18.126", "17.905", "20.444", "21.777", "22.756", "24.069", + "24.913", "17.344", "16.136", "15.146", "14.599", "15.468", "16.242", + "17.164", "15.865", "14.932", "14.017", "14.495", "13.700", "13.904", + "13.254", "12.332", "13.484", "11.975", "12.666", "14.303", "12.641", + "14.280", "13.452", "15.793", "16.368", "16.285", "16.053", "17.815", + "17.939", "17.221", "18.427", "16.438", "16.375", "14.950", "14.778", + "16.869", "18.228", "16.791", "13.947", "12.529", "12.045", "11.151", + "11.625", "11.950", "11.054", "11.086", "10.326", "12.589", "12.177", + "13.076", "12.888", "11.978", "13.202", "10.883", "14.054", "14.963", + "15.702", "15.846", "15.935", "15.286", "16.327", "14.580", "16.162", + "16.876", "15.961", "16.391", "17.402", "18.238", "19.553", "18.506", + "14.695", "13.703", "13.270", "13.262", "12.460", "11.372", "12.854", + "12.954", "12.503", "13.541", "13.184", "12.008", "10.830", "10.505", + "10.626", "10.093", "14.820", "15.887", "16.443", "17.416", "17.014", + "16.627", "15.451", "17.619", "15.830", "16.248", "15.758", "14.809", + "15.689", "16.404", "16.005", "14.639", "14.122", "17.109", "17.396", + "16.559", "18.588", "14.018", "12.706", "12.516", "11.536", "12.617", + "13.288", "14.522", "13.454", "13.383", "13.351", "12.406", "14.564", + "14.482", "13.353", "15.552", "14.378", "14.488", "13.443", "12.968", + "15.902", "16.144", "13.061", "12.087", "10.746", "10.157", "11.879", + "11.014", "11.003", "10.171", "10.269", "10.273", "9.002", "9.101", + "8.227", "8.612", "8.611", "7.224", "10.191", "10.458", "10.518", + "9.916", "11.791", "11.677", "12.184", "12.967", "11.222", "11.377", + "10.082", "9.885", "12.416", "13.824", "14.764", "14.287", "9.214", + "7.937", "7.048", "6.294", "7.230", "7.828", "7.618", "8.090", + "7.916", "7.189", "6.419", "6.871", "6.391", "6.449", "7.815", + "8.305", "7.481", "7.371", "9.788", "10.832", "12.217", "10.789", + "6.886", "6.080", "6.922", "8.149", "6.294", "7.024", "7.912", + "7.680", "5.901", "4.734", "4.839", "8.952", "9.861", "10.886", + "11.642", "10.910", "11.884", "13.285", "13.524", "11.599", "14.199", + "15.563", "16.391", "16.022", "16.290", "16.498", "15.473", "17.509", + "18.426", "18.875", "19.012", "19.645", "20.773", "20.264", "21.920", + "19.082", "19.510", "18.471", "18.816", "19.784", "21.035", "20.954", + "19.902", "21.955", "17.199", "16.109", "16.001", "15.690", "14.787", + "14.776", "13.539", "13.220", "12.888", "16.301", "16.274", "17.413", + "17.209", "16.429", "15.284", "15.332", "13.844", "18.606", "19.764", + "19.548", "19.922", "21.047", "21.507", "23.105", "22.645", "18.915", + "18.636", "17.640", "17.807", "18.050", "18.998", "17.730", "16.631", + "15.593", "16.104", "15.685", "14.486", "17.033", "17.572", "18.985", + "19.634", "17.525", "15.855", "19.451", "20.802", "21.001", "20.066", + "21.152", "20.421", "20.725", "21.768", "19.817", "22.226", "22.536", + "23.683", "24.328", "23.949", "15.165", "19.774", "22.152", "12.938", + "23.499", "17.568", "13.544", "15.524", "31.249", "11.999", "14.511", + "7.439", "19.303", "17.114", "21.867", "17.573", "26.151", "20.974", + "20.796", "28.370", "29.565", "21.248", "25.744", "8.691", "30.789", + "30.905", "28.623", "24.935", "23.462", "9.924", "28.729", "13.579", + "23.652", "25.631", "17.799", "23.547", "16.363", "24.125", "33.063", + "29.209", "10.391", "12.221", "18.997", "16.360", "27.915", "28.158", + "21.975", "27.069", "30.148", "21.196", "8.864", "13.228", "18.577", + "20.526", "25.758", "7.838", "20.569", "13.009", "19.229", "17.655", + "30.445", "9.014", "3.398", "31.603", "16.543", "12.037", "7.261", + "5.607", "23.532", "30.701", "32.300", "34.351", "9.450", "29.476", + "13.681", "26.728", "10.004", "30.553", "23.569", "10.927", "17.983", + "8.191", "32.095", "11.520", "13.249", "15.919", "11.187", "16.743", + }; + std::vector seqres = { + R"fasta(GARASVLSGGELDKWEKIRLRPGGKKQYKLKHIVWASRELERFAVNPGLLETSEGCRQILGQLQPSLQTGSEELRSLYNT +IAVLYCVHQRIDVKDTKEALDKIEEEQNKSKKKAQQAAADTGNNSQVSQNYPIVQNLQGQMVHQAISPRTLNAWVKVVEE +KAFSPEVIPMFSALSEGATPQDLNTMLNTVGGHQAAMQMLKETINEEAAEWDRLHPVHAGPIAPGQMREPRGSDIAGTTS +TLQEQIGWMTHNPPIPVGEIYKRWIILGLNKIVRMYSPTSILDIRQGPKEPFRDYVDRFYKTLRAEQASQEVKNWMTETL +LVQNANPDCKTILKALGPGATLEEMMTACQGVGGPGHKARVLAEAMSQVTNPATIMIQKGNFRNQRKTVKCFNCGKEGHI +AKNCRAPRKKGCWKCGKEGHQMKDCTERQANFLGKIWPSHKGRPGNFLQSRPEPTAPPEESFRFGEETTTPSQKQEPIDK +ELYPLASLRSLFGSDPSSQ)fasta" + }; + + { + auto [i, j] = frame.find("_entity_poly_seq.mon_id"); + ASSERT_GE(i, 0); + ASSERT_GE(j, 0); + + auto col = frame[i].col(j); + ASSERT_EQ(col.size(), mon_ids.size()); + for (int k = 0; k < col.size(); ++k) + EXPECT_EQ(col[k], mon_ids[k]); + } + + { + auto [i, j] = frame.find("_atom_site.Cartn_x"); + ASSERT_GE(i, 0); + ASSERT_GE(j, 0); + + auto col = frame[i].col(j); + ASSERT_EQ(col.size(), cartn_x.size()); + for (int k = 0; k < col.size(); ++k) + EXPECT_EQ(col[k], cartn_x[k]); + } + + { + auto [i, j] = frame.find("_struct_ref.pdbx_seq_one_letter_code"); + ASSERT_GE(i, 0); + ASSERT_GE(j, 0); + + auto col = frame[i].col(j); + ASSERT_EQ(col.size(), seqres.size()); + for (int k = 0; k < col.size(); ++k) + EXPECT_EQ(col[k], seqres[k]); + } +} + +TEST(CifParseTest, CCD) { + std::ifstream ifs(test_data("components_stdres.cif")); + ASSERT_TRUE(ifs) << "Failed to open file: 1a8o.cif"; + + std::vector ids { + "GLY", "ALA", "VAL", "LEU", "ILE", "THR", "SER", "MET", "CYS", "PRO", + "PHE", "TYR", "TRP", "HIS", "LYS", "ARG", "ASP", "GLU", "ASN", "GLN", + }; + + CifParser parser(ifs); + for (auto id: ids) { + CifBlock block = parser.next(); + if (!block) + FAIL() << "Failed to parse block: " << id; + + const CifFrame &frame = block.data(); + EXPECT_EQ(frame.name(), id); + + { + auto [i, j] = frame.find("_chem_comp.id"); + ASSERT_GE(i, 0); + ASSERT_GE(j, 0); + EXPECT_EQ(frame.tables()[i][j][0], frame.name()); + } + } + + CifBlock block = parser.next(); + EXPECT_TRUE(block.type() == CifBlock::Type::kEOF); +} } // namespace } // namespace internal } // namespace nuri diff --git a/test/test_data/1a8o.cif b/test/test_data/1a8o.cif new file mode 100644 index 00000000..375333cb --- /dev/null +++ b/test/test_data/1a8o.cif @@ -0,0 +1,1655 @@ +data_1A8O +# +_entry.id 1A8O +# +_audit_conform.dict_name mmcif_pdbx.dic +_audit_conform.dict_version 4.007 +_audit_conform.dict_location http://mmcif.pdb.org/dictionaries/ascii/mmcif_pdbx.dic +# +_database_2.database_id PDB +_database_2.database_code 1A8O +# +loop_ +_database_PDB_rev.num +_database_PDB_rev.date +_database_PDB_rev.date_original +_database_PDB_rev.status +_database_PDB_rev.replaces +_database_PDB_rev.mod_type +1 1998-10-14 1998-03-27 ? 1A8O 0 +2 1998-10-28 ? ? 1A8O 1 +3 2003-04-01 ? ? 1A8O 1 +4 2009-02-24 ? ? 1A8O 1 +5 2009-11-03 ? ? 1A8O 1 +# +loop_ +_database_PDB_rev_record.rev_num +_database_PDB_rev_record.type +_database_PDB_rev_record.details +2 REMARK ? +3 JRNL ? +4 VERSN ? +5 SEQADV ? +# +_pdbx_database_PDB_obs_spr.id SPRSDE +_pdbx_database_PDB_obs_spr.date 1998-10-14 +_pdbx_database_PDB_obs_spr.pdb_id 1A8O +_pdbx_database_PDB_obs_spr.replace_pdb_id 1AM3 +# +_pdbx_database_status.status_code REL +_pdbx_database_status.entry_id 1A8O +_pdbx_database_status.deposit_site ? +_pdbx_database_status.process_site ? +_pdbx_database_status.status_code_sf REL +_pdbx_database_status.status_code_mr ? +_pdbx_database_status.SG_entry ? +# +loop_ +_audit_author.name +_audit_author.pdbx_ordinal +'Gamble, T.R.' 1 +'Yoo, S.' 2 +'Vajdos, F.F.' 3 +'Von Schwedler, U.K.' 4 +'Worthylake, D.K.' 5 +'Wang, H.' 6 +'Mccutcheon, J.P.' 7 +'Sundquist, W.I.' 8 +'Hill, C.P.' 9 +# +_citation.id primary +_citation.title 'Structure of the carboxyl-terminal dimerization domain of the HIV-1 capsid protein.' +_citation.journal_abbrev Science +_citation.journal_volume 278 +_citation.page_first 849 +_citation.page_last 853 +_citation.year 1997 +_citation.journal_id_ASTM SCIEAS +_citation.country US +_citation.journal_id_ISSN 0036-8075 +_citation.journal_id_CSD 0038 +_citation.book_publisher ? +_citation.pdbx_database_id_PubMed 9346481 +_citation.pdbx_database_id_DOI 10.1126/science.278.5339.849 +# +loop_ +_citation_author.citation_id +_citation_author.name +_citation_author.ordinal +primary 'Gamble, T.R.' 1 +primary 'Yoo, S.' 2 +primary 'Vajdos, F.F.' 3 +primary 'von Schwedler, U.K.' 4 +primary 'Worthylake, D.K.' 5 +primary 'Wang, H.' 6 +primary 'McCutcheon, J.P.' 7 +primary 'Sundquist, W.I.' 8 +primary 'Hill, C.P.' 9 +# +_cell.entry_id 1A8O +_cell.length_a 41.980 +_cell.length_b 41.980 +_cell.length_c 88.920 +_cell.angle_alpha 90.00 +_cell.angle_beta 90.00 +_cell.angle_gamma 90.00 +_cell.Z_PDB 8 +_cell.pdbx_unique_axis ? +_cell.length_a_esd ? +_cell.length_b_esd ? +_cell.length_c_esd ? +_cell.angle_alpha_esd ? +_cell.angle_beta_esd ? +_cell.angle_gamma_esd ? +# +_symmetry.entry_id 1A8O +_symmetry.space_group_name_H-M 'P 43 21 2' +_symmetry.pdbx_full_space_group_name_H-M ? +_symmetry.cell_setting ? +_symmetry.Int_Tables_number ? +_symmetry.space_group_name_Hall ? +# +loop_ +_entity.id +_entity.type +_entity.src_method +_entity.pdbx_description +_entity.formula_weight +_entity.pdbx_number_of_molecules +_entity.details +_entity.pdbx_mutation +_entity.pdbx_fragment +_entity.pdbx_ec +1 polymer man 'HIV CAPSID' 8175.795 1 ? 'SELENOMETHIONINE SUBSTITUTIONS, L151MSE, M185MSE, M214MSE, M215MSE' +'C-TERMINAL DOMAIN, RESIDUES 151 - 231' ? +2 water nat water 18.015 88 ? ? ? ? +# +loop_ +_entity_keywords.entity_id +_entity_keywords.text +1 ? +2 ? +# +_entity_poly.entity_id 1 +_entity_poly.type 'polypeptide(L)' +_entity_poly.nstd_linkage no +_entity_poly.nstd_monomer yes +_entity_poly.pdbx_seq_one_letter_code +;(MSE)DIRQGPKEPFRDYVDRFYKTLRAEQASQEVKNW(MSE)TETLLVQNANPDCKTILKALGPGATLEE(MSE) +(MSE)TACQG +; +_entity_poly.pdbx_seq_one_letter_code_can MDIRQGPKEPFRDYVDRFYKTLRAEQASQEVKNWMTETLLVQNANPDCKTILKALGPGATLEEMMTACQG +_entity_poly.pdbx_strand_id A +# +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 MSE n +1 2 ASP n +1 3 ILE n +1 4 ARG n +1 5 GLN n +1 6 GLY n +1 7 PRO n +1 8 LYS n +1 9 GLU n +1 10 PRO n +1 11 PHE n +1 12 ARG n +1 13 ASP n +1 14 TYR n +1 15 VAL n +1 16 ASP n +1 17 ARG n +1 18 PHE n +1 19 TYR n +1 20 LYS n +1 21 THR n +1 22 LEU n +1 23 ARG n +1 24 ALA n +1 25 GLU n +1 26 GLN n +1 27 ALA n +1 28 SER n +1 29 GLN n +1 30 GLU n +1 31 VAL n +1 32 LYS n +1 33 ASN n +1 34 TRP n +1 35 MSE n +1 36 THR n +1 37 GLU n +1 38 THR n +1 39 LEU n +1 40 LEU n +1 41 VAL n +1 42 GLN n +1 43 ASN n +1 44 ALA n +1 45 ASN n +1 46 PRO n +1 47 ASP n +1 48 CYS n +1 49 LYS n +1 50 THR n +1 51 ILE n +1 52 LEU n +1 53 LYS n +1 54 ALA n +1 55 LEU n +1 56 GLY n +1 57 PRO n +1 58 GLY n +1 59 ALA n +1 60 THR n +1 61 LEU n +1 62 GLU n +1 63 GLU n +1 64 MSE n +1 65 MSE n +1 66 THR n +1 67 ALA n +1 68 CYS n +1 69 GLN n +1 70 GLY n +# +_entity_src_gen.entity_id 1 +_entity_src_gen.gene_src_common_name ? +_entity_src_gen.gene_src_genus Lentivirus +_entity_src_gen.pdbx_gene_src_gene ? +_entity_src_gen.gene_src_species ? +_entity_src_gen.gene_src_strain ? +_entity_src_gen.gene_src_tissue ? +_entity_src_gen.gene_src_tissue_fraction ? +_entity_src_gen.gene_src_details ? +_entity_src_gen.pdbx_gene_src_fragment ? +_entity_src_gen.pdbx_gene_src_scientific_name 'Human immunodeficiency virus 1' +_entity_src_gen.pdbx_gene_src_ncbi_taxonomy_id 11676 +_entity_src_gen.pdbx_gene_src_variant ? +_entity_src_gen.pdbx_gene_src_cell_line BL21 +_entity_src_gen.pdbx_gene_src_atcc ? +_entity_src_gen.pdbx_gene_src_organ ? +_entity_src_gen.pdbx_gene_src_organelle ? +_entity_src_gen.pdbx_gene_src_cell ? +_entity_src_gen.pdbx_gene_src_cellular_location ? +_entity_src_gen.host_org_common_name ? +_entity_src_gen.pdbx_host_org_scientific_name 'Escherichia coli BL21(DE3)' +_entity_src_gen.pdbx_host_org_ncbi_taxonomy_id 469008 +_entity_src_gen.host_org_genus Escherichia +_entity_src_gen.pdbx_host_org_gene ? +_entity_src_gen.pdbx_host_org_organ ? +_entity_src_gen.host_org_species 'Escherichia coli' +_entity_src_gen.pdbx_host_org_tissue ? +_entity_src_gen.pdbx_host_org_tissue_fraction ? +_entity_src_gen.pdbx_host_org_strain 'BL21 (DE3)' +_entity_src_gen.pdbx_host_org_variant ? +_entity_src_gen.pdbx_host_org_cell_line ? +_entity_src_gen.pdbx_host_org_atcc ? +_entity_src_gen.pdbx_host_org_culture_collection ? +_entity_src_gen.pdbx_host_org_cell ? +_entity_src_gen.pdbx_host_org_organelle ? +_entity_src_gen.pdbx_host_org_cellular_location ? +_entity_src_gen.pdbx_host_org_vector_type ? +_entity_src_gen.pdbx_host_org_vector PET11A +_entity_src_gen.plasmid_name WISP97-7 +_entity_src_gen.plasmid_details ? +_entity_src_gen.pdbx_description ? +# +_struct_ref.id 1 +_struct_ref.db_name UNP +_struct_ref.db_code POL_HV1N5 +_struct_ref.entity_id 1 +_struct_ref.pdbx_db_accession P12497 +_struct_ref.pdbx_align_begin 1 +_struct_ref.pdbx_seq_one_letter_code +;GARASVLSGGELDKWEKIRLRPGGKKQYKLKHIVWASRELERFAVNPGLLETSEGCRQILGQLQPSLQTGSEELRSLYNT +IAVLYCVHQRIDVKDTKEALDKIEEEQNKSKKKAQQAAADTGNNSQVSQNYPIVQNLQGQMVHQAISPRTLNAWVKVVEE +KAFSPEVIPMFSALSEGATPQDLNTMLNTVGGHQAAMQMLKETINEEAAEWDRLHPVHAGPIAPGQMREPRGSDIAGTTS +TLQEQIGWMTHNPPIPVGEIYKRWIILGLNKIVRMYSPTSILDIRQGPKEPFRDYVDRFYKTLRAEQASQEVKNWMTETL +LVQNANPDCKTILKALGPGATLEEMMTACQGVGGPGHKARVLAEAMSQVTNPATIMIQKGNFRNQRKTVKCFNCGKEGHI +AKNCRAPRKKGCWKCGKEGHQMKDCTERQANFLGKIWPSHKGRPGNFLQSRPEPTAPPEESFRFGEETTTPSQKQEPIDK +ELYPLASLRSLFGSDPSSQ +; +_struct_ref.biol_id . +# +_struct_ref_seq.align_id 1 +_struct_ref_seq.ref_id 1 +_struct_ref_seq.pdbx_PDB_id_code 1A8O +_struct_ref_seq.pdbx_strand_id A +_struct_ref_seq.seq_align_beg 2 +_struct_ref_seq.pdbx_seq_align_beg_ins_code ? +_struct_ref_seq.seq_align_end 70 +_struct_ref_seq.pdbx_seq_align_end_ins_code ? +_struct_ref_seq.pdbx_db_accession P12497 +_struct_ref_seq.db_align_beg 283 +_struct_ref_seq.pdbx_db_align_beg_ins_code ? +_struct_ref_seq.db_align_end 351 +_struct_ref_seq.pdbx_db_align_end_ins_code ? +_struct_ref_seq.pdbx_auth_seq_align_beg 152 +_struct_ref_seq.pdbx_auth_seq_align_end 220 +# +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 +MSE 'L-peptide linking' n SELENOMETHIONINE ? 'C5 H11 N O2 SE' 196.107 +ASP 'L-peptide linking' y 'ASPARTIC ACID' ? 'C4 H7 N O4' 133.104 +ILE 'L-peptide linking' y ISOLEUCINE ? 'C6 H13 N O2' 131.174 +ARG 'L-peptide linking' y ARGININE ? 'C6 H15 N4 O2 1' 175.210 +GLN 'L-peptide linking' y GLUTAMINE ? 'C5 H10 N2 O3' 146.146 +GLY 'PEPTIDE LINKING' y GLYCINE ? 'C2 H5 N O2' 75.067 +PRO 'L-peptide linking' y PROLINE ? 'C5 H9 N O2' 115.132 +LYS 'L-peptide linking' y LYSINE ? 'C6 H15 N2 O2 1' 147.197 +GLU 'L-peptide linking' y 'GLUTAMIC ACID' ? 'C5 H9 N O4' 147.130 +PHE 'L-peptide linking' y PHENYLALANINE ? 'C9 H11 N O2' 165.191 +TYR 'L-peptide linking' y TYROSINE ? 'C9 H11 N O3' 181.191 +VAL 'L-peptide linking' y VALINE ? 'C5 H11 N O2' 117.147 +THR 'L-peptide linking' y THREONINE ? 'C4 H9 N O3' 119.120 +LEU 'L-peptide linking' y LEUCINE ? 'C6 H13 N O2' 131.174 +ALA 'L-peptide linking' y ALANINE ? 'C3 H7 N O2' 89.094 +SER 'L-peptide linking' y SERINE ? 'C3 H7 N O3' 105.093 +ASN 'L-peptide linking' y ASPARAGINE ? 'C4 H8 N2 O3' 132.119 +TRP 'L-peptide linking' y TRYPTOPHAN ? 'C11 H12 N2 O2' 204.228 +CYS 'L-peptide linking' y CYSTEINE ? 'C3 H7 N O2 S' 121.154 +HOH NON-POLYMER . WATER ? 'H2 O' 18.015 +# +_exptl.entry_id 1A8O +_exptl.method 'X-RAY DIFFRACTION' +_exptl.crystals_number 1 +# +_exptl_crystal.id 1 +_exptl_crystal.density_meas ? +_exptl_crystal.density_Matthews 2.21 +_exptl_crystal.density_percent_sol 43.8 +_exptl_crystal.description ? +_exptl_crystal.F_000 ? +_exptl_crystal.preparation ? +# +_exptl_crystal_grow.crystal_id 1 +_exptl_crystal_grow.method 'vapor diffusion - sitting drop' +_exptl_crystal_grow.temp 277 +_exptl_crystal_grow.temp_details ? +_exptl_crystal_grow.pH 8.0 +_exptl_crystal_grow.pdbx_pH_range ? +_exptl_crystal_grow.pdbx_details +;CRYSTALS OF CA(151-231) WERE GROWN AT 4C IN 4 MICROLITER SITTING DROPS CONTAINING A 1:1 MIXTURE OF PROTEIN SOLUTION (2.1 MM CA(151-231) IN 10MM TRIS (PH 8.0) AND 2 MM 2-MERCAPTOETHANOL) AND RESERVOIR SOLUTION (2.0 M AMMONIUM SULFATE), vapor diffusion - sitting drop, temperature 277K +; +# +_diffrn.id 1 +_diffrn.ambient_temp 100 +_diffrn.ambient_temp_details ? +_diffrn.crystal_id 1 +# +_diffrn_detector.diffrn_id 1 +_diffrn_detector.detector 'IMAGE PLATE' +_diffrn_detector.type MARRESEARCH +_diffrn_detector.pdbx_collection_date 1996-12 +_diffrn_detector.details COLLIMATOR +# +_diffrn_radiation.diffrn_id 1 +_diffrn_radiation.wavelength_id 1 +_diffrn_radiation.pdbx_monochromatic_or_laue_m_l M +_diffrn_radiation.monochromator 'SI(111)' +_diffrn_radiation.pdbx_diffrn_protocol ? +_diffrn_radiation.pdbx_scattering_type x-ray +# +_diffrn_radiation_wavelength.id 1 +_diffrn_radiation_wavelength.wavelength 1.24 +_diffrn_radiation_wavelength.wt 1.0 +# +_diffrn_source.diffrn_id 1 +_diffrn_source.source SYNCHROTRON +_diffrn_source.type 'SSRL BEAMLINE BL1-5' +_diffrn_source.pdbx_synchrotron_site SSRL +_diffrn_source.pdbx_synchrotron_beamline BL1-5 +_diffrn_source.pdbx_wavelength 1.24 +_diffrn_source.pdbx_wavelength_list ? +# +_reflns.entry_id 1A8O +_reflns.observed_criterion_sigma_I -2.0 +_reflns.observed_criterion_sigma_F ? +_reflns.d_resolution_low 25.0 +_reflns.d_resolution_high 1.7 +_reflns.number_obs 9307 +_reflns.number_all ? +_reflns.percent_possible_obs 99.6 +_reflns.pdbx_Rmerge_I_obs ? +_reflns.pdbx_Rsym_value 0.036 +_reflns.pdbx_netI_over_sigmaI 15.0 +_reflns.B_iso_Wilson_estimate 21.1 +_reflns.pdbx_redundancy ? +_reflns.R_free_details ? +_reflns.limit_h_max ? +_reflns.limit_h_min ? +_reflns.limit_k_max ? +_reflns.limit_k_min ? +_reflns.limit_l_max ? +_reflns.limit_l_min ? +_reflns.observed_criterion_F_max ? +_reflns.observed_criterion_F_min ? +_reflns.pdbx_chi_squared ? +_reflns.pdbx_scaling_rejects ? +_reflns.pdbx_ordinal 1 +_reflns.pdbx_diffrn_id 1 +# +_reflns_shell.d_res_high 1.7 +_reflns_shell.d_res_low 1.73 +_reflns_shell.percent_possible_all 98.6 +_reflns_shell.Rmerge_I_obs ? +_reflns_shell.pdbx_Rsym_value 0.232 +_reflns_shell.meanI_over_sigI_obs 5.0 +_reflns_shell.pdbx_redundancy ? +_reflns_shell.percent_possible_obs ? +_reflns_shell.number_unique_all ? +_reflns_shell.number_measured_all ? +_reflns_shell.number_measured_obs ? +_reflns_shell.number_unique_obs ? +_reflns_shell.pdbx_chi_squared ? +_reflns_shell.pdbx_ordinal 1 +_reflns_shell.pdbx_diffrn_id 1 +# +_computing.entry_id 1A8O +_computing.pdbx_data_reduction_ii DENZO +_computing.pdbx_data_reduction_ds SCALEPACK +_computing.data_collection ? +_computing.structure_solution 'X-PLOR 3.843' +_computing.structure_refinement 'X-PLOR 3.843' +_computing.pdbx_structure_refinement_method ? +# +_refine.entry_id 1A8O +_refine.ls_number_reflns_obs 9254 +_refine.ls_number_reflns_all ? +_refine.pdbx_ls_sigma_I ? +_refine.pdbx_ls_sigma_F -2.0 +_refine.pdbx_data_cutoff_high_absF 10000000.00 +_refine.pdbx_data_cutoff_low_absF 0.00100 +_refine.pdbx_data_cutoff_high_rms_absF ? +_refine.ls_d_res_low 25.00 +_refine.ls_d_res_high 1.70 +_refine.ls_percent_reflns_obs 99.5 +_refine.ls_R_factor_obs 0.215 +_refine.ls_R_factor_all ? +_refine.ls_R_factor_R_work 0.215 +_refine.ls_R_factor_R_free 0.253 +_refine.ls_R_factor_R_free_error 0.008 +_refine.ls_R_factor_R_free_error_details ? +_refine.ls_percent_reflns_R_free 10.5 +_refine.ls_number_reflns_R_free 969 +_refine.ls_number_parameters ? +_refine.ls_number_restraints ? +_refine.occupancy_min ? +_refine.occupancy_max ? +_refine.B_iso_mean 22.6 +_refine.aniso_B[1][1] 1.85 +_refine.aniso_B[2][2] 1.85 +_refine.aniso_B[3][3] -3.69 +_refine.aniso_B[1][2] 0.00 +_refine.aniso_B[1][3] 0.00 +_refine.aniso_B[2][3] 0.00 +_refine.solvent_model_details ? +_refine.solvent_model_param_ksol ? +_refine.solvent_model_param_bsol ? +_refine.pdbx_ls_cross_valid_method THROUGHOUT +_refine.details 'BULK SOLVENT MODEL USED' +_refine.pdbx_starting_model ? +_refine.pdbx_method_to_determine_struct 'MULTI-WAVELENGTH ANOMALOUS DISPERSION' +_refine.pdbx_isotropic_thermal_model RESTRAINED +_refine.pdbx_stereochemistry_target_values ? +_refine.pdbx_stereochem_target_val_spec_case ? +_refine.pdbx_R_Free_selection_details RANDOM +_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.ls_redundancy_reflns_obs ? +_refine.pdbx_overall_phase_error ? +_refine.B_iso_min ? +_refine.B_iso_max ? +_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.overall_SU_R_Cruickshank_DPI ? +_refine.overall_SU_R_free ? +_refine.ls_wR_factor_R_free ? +_refine.ls_wR_factor_R_work ? +_refine.overall_FOM_free_R_set ? +_refine.overall_FOM_work_R_set ? +_refine.pdbx_diffrn_id 1 +# +_refine_analyze.entry_id 1A8O +_refine_analyze.Luzzati_coordinate_error_obs 0.21 +_refine_analyze.Luzzati_sigma_a_obs 0.19 +_refine_analyze.Luzzati_d_res_low_obs 5.00 +_refine_analyze.Luzzati_coordinate_error_free 0.23 +_refine_analyze.Luzzati_sigma_a_free 0.19 +_refine_analyze.Luzzati_d_res_low_free ? +_refine_analyze.number_disordered_residues ? +_refine_analyze.occupancy_sum_hydrogen ? +_refine_analyze.occupancy_sum_non_hydrogen ? +_refine_analyze.pdbx_refine_id 'X-RAY DIFFRACTION' +# +_refine_hist.pdbx_refine_id 'X-RAY DIFFRACTION' +_refine_hist.cycle_id LAST +_refine_hist.pdbx_number_atoms_protein 556 +_refine_hist.pdbx_number_atoms_nucleic_acid 0 +_refine_hist.pdbx_number_atoms_ligand 0 +_refine_hist.number_atoms_solvent 88 +_refine_hist.number_atoms_total 644 +_refine_hist.d_res_high 1.70 +_refine_hist.d_res_low 25.00 +# +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 +x_bond_d 0.005 ? ? ? 'X-RAY DIFFRACTION' +x_bond_d_na ? ? ? ? 'X-RAY DIFFRACTION' +x_bond_d_prot ? ? ? ? 'X-RAY DIFFRACTION' +x_angle_d ? ? ? ? 'X-RAY DIFFRACTION' +x_angle_d_na ? ? ? ? 'X-RAY DIFFRACTION' +x_angle_d_prot ? ? ? ? 'X-RAY DIFFRACTION' +x_angle_deg 1.1 ? ? ? 'X-RAY DIFFRACTION' +x_angle_deg_na ? ? ? ? 'X-RAY DIFFRACTION' +x_angle_deg_prot ? ? ? ? 'X-RAY DIFFRACTION' +x_dihedral_angle_d 20.4 ? ? ? 'X-RAY DIFFRACTION' +x_dihedral_angle_d_na ? ? ? ? 'X-RAY DIFFRACTION' +x_dihedral_angle_d_prot ? ? ? ? 'X-RAY DIFFRACTION' +x_improper_angle_d 1.01 ? ? ? 'X-RAY DIFFRACTION' +x_improper_angle_d_na ? ? ? ? 'X-RAY DIFFRACTION' +x_improper_angle_d_prot ? ? ? ? 'X-RAY DIFFRACTION' +x_mcbond_it 1.31 1.50 ? ? 'X-RAY DIFFRACTION' +x_mcangle_it 2.12 2.00 ? ? 'X-RAY DIFFRACTION' +x_scbond_it 2.41 2.00 ? ? 'X-RAY DIFFRACTION' +x_scangle_it 3.92 2.50 ? ? 'X-RAY DIFFRACTION' +# +_refine_ls_shell.pdbx_total_number_of_bins_used 6 +_refine_ls_shell.d_res_high 1.70 +_refine_ls_shell.d_res_low 1.81 +_refine_ls_shell.number_reflns_R_work 1320 +_refine_ls_shell.R_factor_R_work 0.276 +_refine_ls_shell.percent_reflns_obs 99.1 +_refine_ls_shell.R_factor_R_free 0.328 +_refine_ls_shell.R_factor_R_free_error 0.027 +_refine_ls_shell.percent_reflns_R_free 10.4 +_refine_ls_shell.number_reflns_R_free 153 +_refine_ls_shell.pdbx_refine_id 'X-RAY DIFFRACTION' +_refine_ls_shell.redundancy_reflns_obs ? +_refine_ls_shell.number_reflns_all ? +_refine_ls_shell.number_reflns_obs ? +_refine_ls_shell.R_factor_all ? +# +loop_ +_pdbx_xplor_file.serial_no +_pdbx_xplor_file.param_file +_pdbx_xplor_file.topol_file +_pdbx_xplor_file.pdbx_refine_id +1 PARHCSDX.PRO TOPHCSDX.PRO 'X-RAY DIFFRACTION' +2 TIP3P.PARAMETER TIP3P.TOPOLOGY 'X-RAY DIFFRACTION' +# +_struct.entry_id 1A8O +_struct.title 'HIV CAPSID C-TERMINAL DOMAIN' +_struct.pdbx_descriptor 'HIV CAPSID' +_struct.pdbx_model_details ? +_struct.pdbx_CASP_flag ? +_struct.pdbx_model_type_details ? +# +_struct_keywords.entry_id 1A8O +_struct_keywords.pdbx_keywords 'Viral protein' +_struct_keywords.text 'CAPSID, CORE PROTEIN, HIV, C-TERMINAL DOMAIN, Viral protein' +# +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 ? +# +_struct_biol.id 1 +_struct_biol.details ? +# +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 PHE A 11 ? GLU A 25 ? PHE A 161 GLU A 175 1 ? 15 +HELX_P HELX_P2 2 GLN A 29 ? GLU A 37 ? GLN A 179 GLU A 187 1 ? 9 +HELX_P HELX_P3 3 LEU A 39 ? GLN A 42 ? LEU A 189 GLN A 192 1 ? 4 +HELX_P HELX_P4 4 PRO A 46 ? LEU A 55 ? PRO A 196 LEU A 205 1 ? 10 +HELX_P HELX_P5 5 LEU A 61 ? ALA A 67 ? LEU A 211 ALA A 217 1 ? 7 +# +_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_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 +disulf1 disulf ? A CYS 48 SG ? ? ? 1_555 A CYS 68 SG ? ? A CYS 198 A CYS 218 1_555 ? ? ? ? ? ? ? 2.037 ? +covale1 covale ? A MSE 1 C ? ? ? 1_555 A ASP 2 N ? ? A MSE 151 A ASP 152 1_555 ? ? ? ? ? ? ? 1.326 ? +covale2 covale ? A MSE 35 N ? ? ? 1_555 A TRP 34 C ? ? A MSE 185 A TRP 184 1_555 ? ? ? ? ? ? ? 1.330 ? +covale3 covale ? A MSE 35 C ? ? ? 1_555 A THR 36 N ? ? A MSE 185 A THR 186 1_555 ? ? ? ? ? ? ? 1.333 ? +covale4 covale ? A MSE 64 N ? ? ? 1_555 A GLU 63 C ? ? A MSE 214 A GLU 213 1_555 ? ? ? ? ? ? ? 1.334 ? +covale5 covale ? A MSE 64 C ? ? ? 1_555 A MSE 65 N ? ? A MSE 214 A MSE 215 1_555 ? ? ? ? ? ? ? 1.332 ? +covale6 covale ? A MSE 65 C ? ? ? 1_555 A THR 66 N ? ? A MSE 215 A THR 216 1_555 ? ? ? ? ? ? ? 1.330 ? +# +loop_ +_struct_conn_type.id +_struct_conn_type.criteria +_struct_conn_type.reference +disulf ? ? +covale ? ? +# +_database_PDB_matrix.entry_id 1A8O +_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 1A8O +_atom_sites.Cartn_transform_axes ? +_atom_sites.fract_transf_matrix[1][1] 0.023821 +_atom_sites.fract_transf_matrix[1][2] 0.000000 +_atom_sites.fract_transf_matrix[1][3] 0.000000 +_atom_sites.fract_transf_matrix[2][1] 0.000000 +_atom_sites.fract_transf_matrix[2][2] 0.023821 +_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.011246 +_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 +N +C +O +SE +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.Cartn_x_esd +_atom_site.Cartn_y_esd +_atom_site.Cartn_z_esd +_atom_site.occupancy_esd +_atom_site.B_iso_or_equiv_esd +_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 . MSE A 1 1 ? 19.594 32.367 28.012 1.00 18.03 ? ? ? ? ? ? 151 MSE A N 1 +ATOM 2 C CA . MSE A 1 1 ? 20.255 33.101 26.891 1.00 18.64 ? ? ? ? ? ? 151 MSE A CA 1 +ATOM 3 C C . MSE A 1 1 ? 20.351 34.558 27.296 1.00 18.46 ? ? ? ? ? ? 151 MSE A C 1 +ATOM 4 O O . MSE A 1 1 ? 19.362 35.291 27.282 1.00 19.71 ? ? ? ? ? ? 151 MSE A O 1 +ATOM 5 C CB . MSE A 1 1 ? 19.457 32.943 25.591 1.00 16.30 ? ? ? ? ? ? 151 MSE A CB 1 +ATOM 6 C CG . MSE A 1 1 ? 20.022 33.700 24.387 1.00 17.46 ? ? ? ? ? ? 151 MSE A CG 1 +ATOM 7 SE SE . MSE A 1 1 ? 21.718 33.262 23.918 1.00 19.31 ? ? ? ? ? ? 151 MSE A SE 1 +ATOM 8 C CE . MSE A 1 1 ? 21.424 31.798 22.897 1.00 18.23 ? ? ? ? ? ? 151 MSE A CE 1 +ATOM 9 N N . ASP A 1 2 ? 21.554 34.953 27.691 1.00 19.26 ? ? ? ? ? ? 152 ASP A N 1 +ATOM 10 C CA . ASP A 1 2 ? 21.835 36.306 28.144 1.00 20.88 ? ? ? ? ? ? 152 ASP A CA 1 +ATOM 11 C C . ASP A 1 2 ? 21.947 37.322 27.000 1.00 19.01 ? ? ? ? ? ? 152 ASP A C 1 +ATOM 12 O O . ASP A 1 2 ? 21.678 38.510 27.187 1.00 18.04 ? ? ? ? ? ? 152 ASP A O 1 +ATOM 13 C CB . ASP A 1 2 ? 23.126 36.292 28.966 1.00 23.68 ? ? ? ? ? ? 152 ASP A CB 1 +ATOM 14 C CG . ASP A 1 2 ? 23.098 37.275 30.112 1.00 28.51 ? ? ? ? ? ? 152 ASP A CG 1 +ATOM 15 O OD1 . ASP A 1 2 ? 23.433 38.456 29.884 1.00 31.95 ? ? ? ? ? ? 152 ASP A OD1 1 +ATOM 16 O OD2 . ASP A 1 2 ? 22.749 36.865 31.241 1.00 28.49 ? ? ? ? ? ? 152 ASP A OD2 1 +ATOM 17 N N . ILE A 1 3 ? 22.322 36.838 25.818 1.00 16.79 ? ? ? ? ? ? 153 ILE A N 1 +ATOM 18 C CA . ILE A 1 3 ? 22.498 37.681 24.632 1.00 15.93 ? ? ? ? ? ? 153 ILE A CA 1 +ATOM 19 C C . ILE A 1 3 ? 21.220 38.389 24.164 1.00 14.17 ? ? ? ? ? ? 153 ILE A C 1 +ATOM 20 O O . ILE A 1 3 ? 20.214 37.743 23.876 1.00 12.57 ? ? ? ? ? ? 153 ILE A O 1 +ATOM 21 C CB . ILE A 1 3 ? 23.062 36.854 23.441 1.00 16.32 ? ? ? ? ? ? 153 ILE A CB 1 +ATOM 22 C CG1 . ILE A 1 3 ? 24.282 36.029 23.879 1.00 17.00 ? ? ? ? ? ? 153 ILE A CG1 1 +ATOM 23 C CG2 . ILE A 1 3 ? 23.423 37.769 22.280 1.00 15.06 ? ? ? ? ? ? 153 ILE A CG2 1 +ATOM 24 C CD1 . ILE A 1 3 ? 25.429 36.840 24.455 1.00 15.40 ? ? ? ? ? ? 153 ILE A CD1 1 +ATOM 25 N N . ARG A 1 4 ? 21.280 39.719 24.101 1.00 13.09 ? ? ? ? ? ? 154 ARG A N 1 +ATOM 26 C CA . ARG A 1 4 ? 20.173 40.563 23.646 1.00 11.56 ? ? ? ? ? ? 154 ARG A CA 1 +ATOM 27 C C . ARG A 1 4 ? 20.766 41.644 22.751 1.00 12.66 ? ? ? ? ? ? 154 ARG A C 1 +ATOM 28 O O . ARG A 1 4 ? 21.804 42.216 23.075 1.00 12.82 ? ? ? ? ? ? 154 ARG A O 1 +ATOM 29 C CB . ARG A 1 4 ? 19.444 41.206 24.830 1.00 12.01 ? ? ? ? ? ? 154 ARG A CB 1 +ATOM 30 C CG . ARG A 1 4 ? 18.724 40.196 25.695 1.00 13.52 ? ? ? ? ? ? 154 ARG A CG 1 +ATOM 31 C CD . ARG A 1 4 ? 18.011 40.824 26.869 1.00 14.47 ? ? ? ? ? ? 154 ARG A CD 1 +ATOM 32 N NE . ARG A 1 4 ? 17.416 39.777 27.690 1.00 16.22 ? ? ? ? ? ? 154 ARG A NE 1 +ATOM 33 C CZ . ARG A 1 4 ? 16.221 39.234 27.476 1.00 17.81 ? ? ? ? ? ? 154 ARG A CZ 1 +ATOM 34 N NH1 . ARG A 1 4 ? 15.459 39.650 26.470 1.00 18.16 ? ? ? ? ? ? 154 ARG A NH1 1 +ATOM 35 N NH2 . ARG A 1 4 ? 15.824 38.211 28.222 1.00 19.78 ? ? ? ? ? ? 154 ARG A NH2 1 +ATOM 36 N N . GLN A 1 5 ? 20.116 41.917 21.623 1.00 13.22 ? ? ? ? ? ? 155 GLN A N 1 +ATOM 37 C CA . GLN A 1 5 ? 20.613 42.918 20.680 1.00 13.79 ? ? ? ? ? ? 155 GLN A CA 1 +ATOM 38 C C . GLN A 1 5 ? 20.546 44.344 21.203 1.00 15.08 ? ? ? ? ? ? 155 GLN A C 1 +ATOM 39 O O . GLN A 1 5 ? 19.488 44.804 21.635 1.00 14.99 ? ? ? ? ? ? 155 GLN A O 1 +ATOM 40 C CB . GLN A 1 5 ? 19.837 42.841 19.368 1.00 13.29 ? ? ? ? ? ? 155 GLN A CB 1 +ATOM 41 C CG . GLN A 1 5 ? 20.385 43.751 18.271 1.00 13.01 ? ? ? ? ? ? 155 GLN A CG 1 +ATOM 42 C CD . GLN A 1 5 ? 19.526 43.736 17.022 1.00 14.60 ? ? ? ? ? ? 155 GLN A CD 1 +ATOM 43 O OE1 . GLN A 1 5 ? 18.365 43.322 17.058 1.00 14.77 ? ? ? ? ? ? 155 GLN A OE1 1 +ATOM 44 N NE2 . GLN A 1 5 ? 20.090 44.190 15.909 1.00 14.24 ? ? ? ? ? ? 155 GLN A NE2 1 +ATOM 45 N N . GLY A 1 6 ? 21.675 45.045 21.155 1.00 16.52 ? ? ? ? ? ? 156 GLY A N 1 +ATOM 46 C CA . GLY A 1 6 ? 21.698 46.427 21.598 1.00 18.25 ? ? ? ? ? ? 156 GLY A CA 1 +ATOM 47 C C . GLY A 1 6 ? 20.859 47.278 20.654 1.00 20.82 ? ? ? ? ? ? 156 GLY A C 1 +ATOM 48 O O . GLY A 1 6 ? 20.729 46.935 19.475 1.00 20.23 ? ? ? ? ? ? 156 GLY A O 1 +ATOM 49 N N . PRO A 1 7 ? 20.260 48.380 21.137 1.00 22.32 ? ? ? ? ? ? 157 PRO A N 1 +ATOM 50 C CA . PRO A 1 7 ? 19.435 49.249 20.287 1.00 22.62 ? ? ? ? ? ? 157 PRO A CA 1 +ATOM 51 C C . PRO A 1 7 ? 20.158 49.801 19.054 1.00 22.59 ? ? ? ? ? ? 157 PRO A C 1 +ATOM 52 O O . PRO A 1 7 ? 19.512 50.154 18.068 1.00 24.55 ? ? ? ? ? ? 157 PRO A O 1 +ATOM 53 C CB . PRO A 1 7 ? 18.993 50.357 21.249 1.00 22.00 ? ? ? ? ? ? 157 PRO A CB 1 +ATOM 54 C CG . PRO A 1 7 ? 20.056 50.358 22.317 1.00 24.33 ? ? ? ? ? ? 157 PRO A CG 1 +ATOM 55 C CD . PRO A 1 7 ? 20.300 48.887 22.519 1.00 24.26 ? ? ? ? ? ? 157 PRO A CD 1 +ATOM 56 N N . LYS A 1 8 ? 21.486 49.867 19.109 1.00 21.24 ? ? ? ? ? ? 158 LYS A N 1 +ATOM 57 C CA . LYS A 1 8 ? 22.285 50.358 17.985 1.00 22.20 ? ? ? ? ? ? 158 LYS A CA 1 +ATOM 58 C C . LYS A 1 8 ? 23.286 49.318 17.478 1.00 20.51 ? ? ? ? ? ? 158 LYS A C 1 +ATOM 59 O O . LYS A 1 8 ? 24.155 49.627 16.659 1.00 19.41 ? ? ? ? ? ? 158 LYS A O 1 +ATOM 60 C CB . LYS A 1 8 ? 23.025 51.649 18.358 1.00 23.18 ? ? ? ? ? ? 158 LYS A CB 1 +ATOM 61 C CG . LYS A 1 8 ? 22.117 52.841 18.584 1.00 26.02 ? ? ? ? ? ? 158 LYS A CG 1 +ATOM 62 C CD . LYS A 1 8 ? 21.236 53.111 17.369 1.00 30.06 ? ? ? ? ? ? 158 LYS A CD 1 +ATOM 63 C CE . LYS A 1 8 ? 20.159 54.136 17.694 1.00 32.44 ? ? ? ? ? ? 158 LYS A CE 1 +ATOM 64 N NZ . LYS A 1 8 ? 19.231 54.379 16.560 1.00 35.60 ? ? ? ? ? ? 158 LYS A NZ 1 +ATOM 65 N N . GLU A 1 9 ? 23.152 48.085 17.961 1.00 19.34 ? ? ? ? ? ? 159 GLU A N 1 +ATOM 66 C CA . GLU A 1 9 ? 24.037 46.996 17.561 1.00 17.36 ? ? ? ? ? ? 159 GLU A CA 1 +ATOM 67 C C . GLU A 1 9 ? 23.563 46.364 16.255 1.00 16.62 ? ? ? ? ? ? 159 GLU A C 1 +ATOM 68 O O . GLU A 1 9 ? 22.398 45.994 16.132 1.00 16.13 ? ? ? ? ? ? 159 GLU A O 1 +ATOM 69 C CB . GLU A 1 9 ? 24.086 45.924 18.653 1.00 16.25 ? ? ? ? ? ? 159 GLU A CB 1 +ATOM 70 C CG . GLU A 1 9 ? 25.003 44.744 18.321 1.00 15.36 ? ? ? ? ? ? 159 GLU A CG 1 +ATOM 71 C CD . GLU A 1 9 ? 24.858 43.575 19.284 1.00 16.29 ? ? ? ? ? ? 159 GLU A CD 1 +ATOM 72 O OE1 . GLU A 1 9 ? 23.861 43.516 20.039 1.00 15.50 ? ? ? ? ? ? 159 GLU A OE1 1 +ATOM 73 O OE2 . GLU A 1 9 ? 25.748 42.701 19.277 1.00 15.09 ? ? ? ? ? ? 159 GLU A OE2 1 +ATOM 74 N N . PRO A 1 10 ? 24.459 46.247 15.256 1.00 17.27 ? ? ? ? ? ? 160 PRO A N 1 +ATOM 75 C CA . PRO A 1 10 ? 24.089 45.645 13.969 1.00 16.68 ? ? ? ? ? ? 160 PRO A CA 1 +ATOM 76 C C . PRO A 1 10 ? 23.580 44.224 14.212 1.00 15.39 ? ? ? ? ? ? 160 PRO A C 1 +ATOM 77 O O . PRO A 1 10 ? 24.111 43.515 15.070 1.00 14.31 ? ? ? ? ? ? 160 PRO A O 1 +ATOM 78 C CB . PRO A 1 10 ? 25.415 45.639 13.207 1.00 16.98 ? ? ? ? ? ? 160 PRO A CB 1 +ATOM 79 C CG . PRO A 1 10 ? 26.116 46.856 13.749 1.00 17.40 ? ? ? ? ? ? 160 PRO A CG 1 +ATOM 80 C CD . PRO A 1 10 ? 25.852 46.732 15.231 1.00 17.24 ? ? ? ? ? ? 160 PRO A CD 1 +ATOM 81 N N . PHE A 1 11 ? 22.544 43.824 13.480 1.00 13.37 ? ? ? ? ? ? 161 PHE A N 1 +ATOM 82 C CA . PHE A 1 11 ? 21.960 42.494 13.639 1.00 12.78 ? ? ? ? ? ? 161 PHE A CA 1 +ATOM 83 C C . PHE A 1 11 ? 22.965 41.346 13.502 1.00 12.00 ? ? ? ? ? ? 161 PHE A C 1 +ATOM 84 O O . PHE A 1 11 ? 22.928 40.397 14.283 1.00 10.69 ? ? ? ? ? ? 161 PHE A O 1 +ATOM 85 C CB . PHE A 1 11 ? 20.793 42.292 12.666 1.00 11.13 ? ? ? ? ? ? 161 PHE A CB 1 +ATOM 86 C CG . PHE A 1 11 ? 19.999 41.042 12.927 1.00 10.56 ? ? ? ? ? ? 161 PHE A CG 1 +ATOM 87 C CD1 . PHE A 1 11 ? 19.234 40.918 14.085 1.00 13.40 ? ? ? ? ? ? 161 PHE A CD1 1 +ATOM 88 C CD2 . PHE A 1 11 ? 20.019 39.985 12.021 1.00 11.57 ? ? ? ? ? ? 161 PHE A CD2 1 +ATOM 89 C CE1 . PHE A 1 11 ? 18.495 39.758 14.340 1.00 11.25 ? ? ? ? ? ? 161 PHE A CE1 1 +ATOM 90 C CE2 . PHE A 1 11 ? 19.286 38.821 12.263 1.00 11.84 ? ? ? ? ? ? 161 PHE A CE2 1 +ATOM 91 C CZ . PHE A 1 11 ? 18.523 38.708 13.427 1.00 12.92 ? ? ? ? ? ? 161 PHE A CZ 1 +ATOM 92 N N . ARG A 1 12 ? 23.861 41.443 12.522 1.00 11.87 ? ? ? ? ? ? 162 ARG A N 1 +ATOM 93 C CA . ARG A 1 12 ? 24.870 40.411 12.294 1.00 12.70 ? ? ? ? ? ? 162 ARG A CA 1 +ATOM 94 C C . ARG A 1 12 ? 25.788 40.216 13.509 1.00 13.20 ? ? ? ? ? ? 162 ARG A C 1 +ATOM 95 O O . ARG A 1 12 ? 26.158 39.090 13.835 1.00 13.83 ? ? ? ? ? ? 162 ARG A O 1 +ATOM 96 C CB . ARG A 1 12 ? 25.684 40.732 11.032 1.00 13.94 ? ? ? ? ? ? 162 ARG A CB 1 +ATOM 97 C CG . ARG A 1 12 ? 26.777 39.725 10.715 1.00 18.61 ? ? ? ? ? ? 162 ARG A CG 1 +ATOM 98 C CD . ARG A 1 12 ? 26.215 38.321 10.515 1.00 22.34 ? ? ? ? ? ? 162 ARG A CD 1 +ATOM 99 N NE . ARG A 1 12 ? 27.235 37.297 10.736 1.00 25.22 ? ? ? ? ? ? 162 ARG A NE 1 +ATOM 100 C CZ . ARG A 1 12 ? 28.136 36.918 9.833 1.00 26.94 ? ? ? ? ? ? 162 ARG A CZ 1 +ATOM 101 N NH1 . ARG A 1 12 ? 28.155 37.473 8.628 1.00 24.70 ? ? ? ? ? ? 162 ARG A NH1 1 +ATOM 102 N NH2 . ARG A 1 12 ? 29.030 35.992 10.145 1.00 27.37 ? ? ? ? ? ? 162 ARG A NH2 1 +ATOM 103 N N . ASP A 1 13 ? 26.137 41.309 14.185 1.00 13.70 ? ? ? ? ? ? 163 ASP A N 1 +ATOM 104 C CA . ASP A 1 13 ? 26.994 41.247 15.373 1.00 14.57 ? ? ? ? ? ? 163 ASP A CA 1 +ATOM 105 C C . ASP A 1 13 ? 26.279 40.526 16.517 1.00 13.66 ? ? ? ? ? ? 163 ASP A C 1 +ATOM 106 O O . ASP A 1 13 ? 26.880 39.735 17.245 1.00 11.59 ? ? ? ? ? ? 163 ASP A O 1 +ATOM 107 C CB . ASP A 1 13 ? 27.408 42.658 15.805 1.00 17.17 ? ? ? ? ? ? 163 ASP A CB 1 +ATOM 108 C CG . ASP A 1 13 ? 28.345 43.328 14.804 1.00 20.18 ? ? ? ? ? ? 163 ASP A CG 1 +ATOM 109 O OD1 . ASP A 1 13 ? 28.814 42.655 13.859 1.00 22.06 ? ? ? ? ? ? 163 ASP A OD1 1 +ATOM 110 O OD2 . ASP A 1 13 ? 28.620 44.532 14.968 1.00 22.56 ? ? ? ? ? ? 163 ASP A OD2 1 +ATOM 111 N N . TYR A 1 14 ? 24.992 40.818 16.662 1.00 12.63 ? ? ? ? ? ? 164 TYR A N 1 +ATOM 112 C CA . TYR A 1 14 ? 24.151 40.196 17.672 1.00 11.74 ? ? ? ? ? ? 164 TYR A CA 1 +ATOM 113 C C . TYR A 1 14 ? 24.025 38.704 17.350 1.00 11.75 ? ? ? ? ? ? 164 TYR A C 1 +ATOM 114 O O . TYR A 1 14 ? 24.139 37.861 18.238 1.00 9.99 ? ? ? ? ? ? 164 TYR A O 1 +ATOM 115 C CB . TYR A 1 14 ? 22.787 40.897 17.684 1.00 11.53 ? ? ? ? ? ? 164 TYR A CB 1 +ATOM 116 C CG . TYR A 1 14 ? 21.629 40.095 18.244 1.00 11.87 ? ? ? ? ? ? 164 TYR A CG 1 +ATOM 117 C CD1 . TYR A 1 14 ? 21.657 39.583 19.543 1.00 11.82 ? ? ? ? ? ? 164 TYR A CD1 1 +ATOM 118 C CD2 . TYR A 1 14 ? 20.489 39.874 17.474 1.00 11.91 ? ? ? ? ? ? 164 TYR A CD2 1 +ATOM 119 C CE1 . TYR A 1 14 ? 20.571 38.872 20.056 1.00 12.21 ? ? ? ? ? ? 164 TYR A CE1 1 +ATOM 120 C CE2 . TYR A 1 14 ? 19.408 39.171 17.972 1.00 11.96 ? ? ? ? ? ? 164 TYR A CE2 1 +ATOM 121 C CZ . TYR A 1 14 ? 19.450 38.673 19.258 1.00 13.17 ? ? ? ? ? ? 164 TYR A CZ 1 +ATOM 122 O OH . TYR A 1 14 ? 18.365 37.977 19.732 1.00 13.72 ? ? ? ? ? ? 164 TYR A OH 1 +ATOM 123 N N . VAL A 1 15 ? 23.839 38.388 16.069 1.00 11.70 ? ? ? ? ? ? 165 VAL A N 1 +ATOM 124 C CA . VAL A 1 15 ? 23.720 37.002 15.614 1.00 11.32 ? ? ? ? ? ? 165 VAL A CA 1 +ATOM 125 C C . VAL A 1 15 ? 24.962 36.204 15.999 1.00 10.85 ? ? ? ? ? ? 165 VAL A C 1 +ATOM 126 O O . VAL A 1 15 ? 24.853 35.084 16.498 1.00 10.90 ? ? ? ? ? ? 165 VAL A O 1 +ATOM 127 C CB . VAL A 1 15 ? 23.502 36.931 14.077 1.00 12.32 ? ? ? ? ? ? 165 VAL A CB 1 +ATOM 128 C CG1 . VAL A 1 15 ? 23.661 35.501 13.570 1.00 13.01 ? ? ? ? ? ? 165 VAL A CG1 1 +ATOM 129 C CG2 . VAL A 1 15 ? 22.120 37.444 13.733 1.00 11.97 ? ? ? ? ? ? 165 VAL A CG2 1 +ATOM 130 N N . ASP A 1 16 ? 26.137 36.796 15.797 1.00 10.27 ? ? ? ? ? ? 166 ASP A N 1 +ATOM 131 C CA . ASP A 1 16 ? 27.387 36.126 16.139 1.00 13.05 ? ? ? ? ? ? 166 ASP A CA 1 +ATOM 132 C C . ASP A 1 16 ? 27.511 35.879 17.644 1.00 11.81 ? ? ? ? ? ? 166 ASP A C 1 +ATOM 133 O O . ASP A 1 16 ? 27.925 34.804 18.060 1.00 13.34 ? ? ? ? ? ? 166 ASP A O 1 +ATOM 134 C CB . ASP A 1 16 ? 28.595 36.912 15.612 1.00 14.35 ? ? ? ? ? ? 166 ASP A CB 1 +ATOM 135 C CG . ASP A 1 16 ? 28.723 36.860 14.085 1.00 18.81 ? ? ? ? ? ? 166 ASP A CG 1 +ATOM 136 O OD1 . ASP A 1 16 ? 28.016 36.066 13.422 1.00 18.59 ? ? ? ? ? ? 166 ASP A OD1 1 +ATOM 137 O OD2 . ASP A 1 16 ? 29.545 37.627 13.543 1.00 21.71 ? ? ? ? ? ? 166 ASP A OD2 1 +ATOM 138 N N . ARG A 1 17 ? 27.136 36.859 18.461 1.00 13.13 ? ? ? ? ? ? 167 ARG A N 1 +ATOM 139 C CA . ARG A 1 17 ? 27.202 36.685 19.913 1.00 13.19 ? ? ? ? ? ? 167 ARG A CA 1 +ATOM 140 C C . ARG A 1 17 ? 26.238 35.580 20.335 1.00 12.86 ? ? ? ? ? ? 167 ARG A C 1 +ATOM 141 O O . ARG A 1 17 ? 26.585 34.701 21.120 1.00 14.45 ? ? ? ? ? ? 167 ARG A O 1 +ATOM 142 C CB . ARG A 1 17 ? 26.850 37.988 20.638 1.00 13.10 ? ? ? ? ? ? 167 ARG A CB 1 +ATOM 143 C CG . ARG A 1 17 ? 27.835 39.118 20.394 1.00 13.78 ? ? ? ? ? ? 167 ARG A CG 1 +ATOM 144 C CD . ARG A 1 17 ? 27.667 40.246 21.404 1.00 15.46 ? ? ? ? ? ? 167 ARG A CD 1 +ATOM 145 N NE . ARG A 1 17 ? 26.352 40.877 21.333 1.00 14.76 ? ? ? ? ? ? 167 ARG A NE 1 +ATOM 146 C CZ . ARG A 1 17 ? 25.494 40.940 22.345 1.00 15.93 ? ? ? ? ? ? 167 ARG A CZ 1 +ATOM 147 N NH1 . ARG A 1 17 ? 25.797 40.401 23.519 1.00 14.48 ? ? ? ? ? ? 167 ARG A NH1 1 +ATOM 148 N NH2 . ARG A 1 17 ? 24.325 41.539 22.181 1.00 15.85 ? ? ? ? ? ? 167 ARG A NH2 1 +ATOM 149 N N . PHE A 1 18 ? 25.037 35.622 19.769 1.00 13.51 ? ? ? ? ? ? 168 PHE A N 1 +ATOM 150 C CA . PHE A 1 18 ? 23.984 34.649 20.039 1.00 13.57 ? ? ? ? ? ? 168 PHE A CA 1 +ATOM 151 C C . PHE A 1 18 ? 24.456 33.232 19.729 1.00 14.50 ? ? ? ? ? ? 168 PHE A C 1 +ATOM 152 O O . PHE A 1 18 ? 24.305 32.327 20.552 1.00 15.31 ? ? ? ? ? ? 168 PHE A O 1 +ATOM 153 C CB . PHE A 1 18 ? 22.761 34.993 19.186 1.00 12.14 ? ? ? ? ? ? 168 PHE A CB 1 +ATOM 154 C CG . PHE A 1 18 ? 21.538 34.184 19.504 1.00 12.42 ? ? ? ? ? ? 168 PHE A CG 1 +ATOM 155 C CD1 . PHE A 1 18 ? 21.301 32.973 18.859 1.00 12.95 ? ? ? ? ? ? 168 PHE A CD1 1 +ATOM 156 C CD2 . PHE A 1 18 ? 20.586 34.664 20.397 1.00 12.93 ? ? ? ? ? ? 168 PHE A CD2 1 +ATOM 157 C CE1 . PHE A 1 18 ? 20.130 32.254 19.094 1.00 13.37 ? ? ? ? ? ? 168 PHE A CE1 1 +ATOM 158 C CE2 . PHE A 1 18 ? 19.415 33.954 20.639 1.00 12.70 ? ? ? ? ? ? 168 PHE A CE2 1 +ATOM 159 C CZ . PHE A 1 18 ? 19.186 32.747 19.985 1.00 12.32 ? ? ? ? ? ? 168 PHE A CZ 1 +ATOM 160 N N . TYR A 1 19 ? 25.033 33.048 18.544 1.00 14.29 ? ? ? ? ? ? 169 TYR A N 1 +ATOM 161 C CA . TYR A 1 19 ? 25.526 31.738 18.123 1.00 17.50 ? ? ? ? ? ? 169 TYR A CA 1 +ATOM 162 C C . TYR A 1 19 ? 26.755 31.256 18.875 1.00 16.74 ? ? ? ? ? ? 169 TYR A C 1 +ATOM 163 O O . TYR A 1 19 ? 27.015 30.057 18.949 1.00 17.31 ? ? ? ? ? ? 169 TYR A O 1 +ATOM 164 C CB . TYR A 1 19 ? 25.771 31.709 16.616 1.00 19.50 ? ? ? ? ? ? 169 TYR A CB 1 +ATOM 165 C CG . TYR A 1 19 ? 24.608 31.119 15.869 1.00 24.71 ? ? ? ? ? ? 169 TYR A CG 1 +ATOM 166 C CD1 . TYR A 1 19 ? 23.508 31.900 15.519 1.00 26.54 ? ? ? ? ? ? 169 TYR A CD1 1 +ATOM 167 C CD2 . TYR A 1 19 ? 24.583 29.762 15.555 1.00 29.22 ? ? ? ? ? ? 169 TYR A CD2 1 +ATOM 168 C CE1 . TYR A 1 19 ? 22.406 31.340 14.877 1.00 31.38 ? ? ? ? ? ? 169 TYR A CE1 1 +ATOM 169 C CE2 . TYR A 1 19 ? 23.490 29.193 14.913 1.00 32.18 ? ? ? ? ? ? 169 TYR A CE2 1 +ATOM 170 C CZ . TYR A 1 19 ? 22.406 29.985 14.577 1.00 33.14 ? ? ? ? ? ? 169 TYR A CZ 1 +ATOM 171 O OH . TYR A 1 19 ? 21.326 29.415 13.941 1.00 38.62 ? ? ? ? ? ? 169 TYR A OH 1 +ATOM 172 N N . LYS A 1 20 ? 27.508 32.195 19.432 1.00 18.09 ? ? ? ? ? ? 170 LYS A N 1 +ATOM 173 C CA . LYS A 1 20 ? 28.691 31.859 20.208 1.00 19.24 ? ? ? ? ? ? 170 LYS A CA 1 +ATOM 174 C C . LYS A 1 20 ? 28.183 31.155 21.468 1.00 19.06 ? ? ? ? ? ? 170 LYS A C 1 +ATOM 175 O O . LYS A 1 20 ? 28.705 30.117 21.859 1.00 18.62 ? ? ? ? ? ? 170 LYS A O 1 +ATOM 176 C CB . LYS A 1 20 ? 29.455 33.137 20.556 1.00 21.47 ? ? ? ? ? ? 170 LYS A CB 1 +ATOM 177 C CG . LYS A 1 20 ? 30.787 32.942 21.242 1.00 24.27 ? ? ? ? ? ? 170 LYS A CG 1 +ATOM 178 C CD . LYS A 1 20 ? 31.428 34.297 21.496 1.00 28.25 ? ? ? ? ? ? 170 LYS A CD 1 +ATOM 179 C CE . LYS A 1 20 ? 32.618 34.194 22.436 1.00 33.51 ? ? ? ? ? ? 170 LYS A CE 1 +ATOM 180 N NZ . LYS A 1 20 ? 33.153 35.536 22.820 1.00 36.47 ? ? ? ? ? ? 170 LYS A NZ 1 +ATOM 181 N N . THR A 1 21 ? 27.116 31.695 22.055 1.00 17.19 ? ? ? ? ? ? 171 THR A N 1 +ATOM 182 C CA . THR A 1 21 ? 26.508 31.110 23.247 1.00 17.79 ? ? ? ? ? ? 171 THR A CA 1 +ATOM 183 C C . THR A 1 21 ? 25.826 29.789 22.889 1.00 18.09 ? ? ? ? ? ? 171 THR A C 1 +ATOM 184 O O . THR A 1 21 ? 25.827 28.840 23.676 1.00 18.81 ? ? ? ? ? ? 171 THR A O 1 +ATOM 185 C CB . THR A 1 21 ? 25.475 32.075 23.876 1.00 18.09 ? ? ? ? ? ? 171 THR A CB 1 +ATOM 186 O OG1 . THR A 1 21 ? 26.150 33.240 24.357 1.00 19.60 ? ? ? ? ? ? 171 THR A OG1 1 +ATOM 187 C CG2 . THR A 1 21 ? 24.741 31.417 25.045 1.00 19.92 ? ? ? ? ? ? 171 THR A CG2 1 +ATOM 188 N N . LEU A 1 22 ? 25.264 29.727 21.687 1.00 18.22 ? ? ? ? ? ? 172 LEU A N 1 +ATOM 189 C CA . LEU A 1 22 ? 24.587 28.528 21.224 1.00 19.39 ? ? ? ? ? ? 172 LEU A CA 1 +ATOM 190 C C . LEU A 1 22 ? 25.587 27.392 20.984 1.00 20.30 ? ? ? ? ? ? 172 LEU A C 1 +ATOM 191 O O . LEU A 1 22 ? 25.302 26.236 21.301 1.00 18.88 ? ? ? ? ? ? 172 LEU A O 1 +ATOM 192 C CB . LEU A 1 22 ? 23.789 28.840 19.955 1.00 22.45 ? ? ? ? ? ? 172 LEU A CB 1 +ATOM 193 C CG . LEU A 1 22 ? 22.707 27.854 19.514 1.00 24.91 ? ? ? ? ? ? 172 LEU A CG 1 +ATOM 194 C CD1 . LEU A 1 22 ? 21.787 27.515 20.682 1.00 27.47 ? ? ? ? ? ? 172 LEU A CD1 1 +ATOM 195 C CD2 . LEU A 1 22 ? 21.910 28.464 18.375 1.00 24.64 ? ? ? ? ? ? 172 LEU A CD2 1 +ATOM 196 N N . ARG A 1 23 ? 26.767 27.727 20.462 1.00 19.95 ? ? ? ? ? ? 173 ARG A N 1 +ATOM 197 C CA . ARG A 1 23 ? 27.806 26.728 20.202 1.00 21.05 ? ? ? ? ? ? 173 ARG A CA 1 +ATOM 198 C C . ARG A 1 23 ? 28.299 26.044 21.468 1.00 22.39 ? ? ? ? ? ? 173 ARG A C 1 +ATOM 199 O O . ARG A 1 23 ? 28.656 24.864 21.443 1.00 23.74 ? ? ? ? ? ? 173 ARG A O 1 +ATOM 200 C CB . ARG A 1 23 ? 29.006 27.352 19.492 1.00 22.58 ? ? ? ? ? ? 173 ARG A CB 1 +ATOM 201 C CG . ARG A 1 23 ? 28.944 27.266 17.984 1.00 26.30 ? ? ? ? ? ? 173 ARG A CG 1 +ATOM 202 C CD . ARG A 1 23 ? 30.295 27.583 17.356 1.00 24.43 ? ? ? ? ? ? 173 ARG A CD 1 +ATOM 203 N NE . ARG A 1 23 ? 30.744 28.937 17.662 1.00 23.96 ? ? ? ? ? ? 173 ARG A NE 1 +ATOM 204 C CZ . ARG A 1 23 ? 30.326 30.032 17.033 1.00 23.32 ? ? ? ? ? ? 173 ARG A CZ 1 +ATOM 205 N NH1 . ARG A 1 23 ? 29.441 29.954 16.046 1.00 22.16 ? ? ? ? ? ? 173 ARG A NH1 1 +ATOM 206 N NH2 . ARG A 1 23 ? 30.787 31.215 17.406 1.00 25.21 ? ? ? ? ? ? 173 ARG A NH2 1 +ATOM 207 N N . ALA A 1 24 ? 28.332 26.793 22.568 1.00 22.48 ? ? ? ? ? ? 174 ALA A N 1 +ATOM 208 C CA . ALA A 1 24 ? 28.789 26.276 23.854 1.00 24.01 ? ? ? ? ? ? 174 ALA A CA 1 +ATOM 209 C C . ALA A 1 24 ? 27.943 25.109 24.350 1.00 26.01 ? ? ? ? ? ? 174 ALA A C 1 +ATOM 210 O O . ALA A 1 24 ? 28.374 24.348 25.215 1.00 28.50 ? ? ? ? ? ? 174 ALA A O 1 +ATOM 211 C CB . ALA A 1 24 ? 28.803 27.388 24.888 1.00 22.70 ? ? ? ? ? ? 174 ALA A CB 1 +ATOM 212 N N . GLU A 1 25 ? 26.740 24.973 23.801 1.00 26.88 ? ? ? ? ? ? 175 GLU A N 1 +ATOM 213 C CA . GLU A 1 25 ? 25.833 23.899 24.186 1.00 27.42 ? ? ? ? ? ? 175 GLU A CA 1 +ATOM 214 C C . GLU A 1 25 ? 25.775 22.791 23.139 1.00 28.42 ? ? ? ? ? ? 175 GLU A C 1 +ATOM 215 O O . GLU A 1 25 ? 24.998 21.847 23.280 1.00 28.81 ? ? ? ? ? ? 175 GLU A O 1 +ATOM 216 C CB . GLU A 1 25 ? 24.425 24.456 24.418 1.00 28.40 ? ? ? ? ? ? 175 GLU A CB 1 +ATOM 217 C CG . GLU A 1 25 ? 24.354 25.596 25.435 1.00 29.60 ? ? ? ? ? ? 175 GLU A CG 1 +ATOM 218 C CD . GLU A 1 25 ? 24.816 25.190 26.824 1.00 30.43 ? ? ? ? ? ? 175 GLU A CD 1 +ATOM 219 O OE1 . GLU A 1 25 ? 24.535 24.049 27.243 1.00 31.07 ? ? ? ? ? ? 175 GLU A OE1 1 +ATOM 220 O OE2 . GLU A 1 25 ? 25.454 26.018 27.506 1.00 31.11 ? ? ? ? ? ? 175 GLU A OE2 1 +ATOM 221 N N . GLN A 1 26 ? 26.601 22.907 22.098 1.00 28.06 ? ? ? ? ? ? 176 GLN A N 1 +ATOM 222 C CA . GLN A 1 26 ? 26.645 21.930 21.007 1.00 30.02 ? ? ? ? ? ? 176 GLN A CA 1 +ATOM 223 C C . GLN A 1 26 ? 25.240 21.583 20.533 1.00 29.96 ? ? ? ? ? ? 176 GLN A C 1 +ATOM 224 O O . GLN A 1 26 ? 24.885 20.411 20.389 1.00 31.12 ? ? ? ? ? ? 176 GLN A O 1 +ATOM 225 C CB . GLN A 1 26 ? 27.391 20.655 21.422 1.00 32.57 ? ? ? ? ? ? 176 GLN A CB 1 +ATOM 226 C CG . GLN A 1 26 ? 28.884 20.833 21.646 1.00 37.21 ? ? ? ? ? ? 176 GLN A CG 1 +ATOM 227 C CD . GLN A 1 26 ? 29.200 21.479 22.977 1.00 41.10 ? ? ? ? ? ? 176 GLN A CD 1 +ATOM 228 O OE1 . GLN A 1 26 ? 28.729 21.028 24.025 1.00 40.39 ? ? ? ? ? ? 176 GLN A OE1 1 +ATOM 229 N NE2 . GLN A 1 26 ? 29.998 22.543 22.947 1.00 42.54 ? ? ? ? ? ? 176 GLN A NE2 1 +ATOM 230 N N . ALA A 1 27 ? 24.438 22.619 20.314 1.00 29.23 ? ? ? ? ? ? 177 ALA A N 1 +ATOM 231 C CA . ALA A 1 27 ? 23.066 22.454 19.863 1.00 27.71 ? ? ? ? ? ? 177 ALA A CA 1 +ATOM 232 C C . ALA A 1 27 ? 23.001 21.782 18.498 1.00 27.26 ? ? ? ? ? ? 177 ALA A C 1 +ATOM 233 O O . ALA A 1 27 ? 23.824 22.046 17.620 1.00 28.56 ? ? ? ? ? ? 177 ALA A O 1 +ATOM 234 C CB . ALA A 1 27 ? 22.370 23.806 19.817 1.00 27.54 ? ? ? ? ? ? 177 ALA A CB 1 +ATOM 235 N N . SER A 1 28 ? 22.035 20.886 18.339 1.00 26.47 ? ? ? ? ? ? 178 SER A N 1 +ATOM 236 C CA . SER A 1 28 ? 21.831 20.180 17.080 1.00 26.14 ? ? ? ? ? ? 178 SER A CA 1 +ATOM 237 C C . SER A 1 28 ? 21.174 21.137 16.090 1.00 25.34 ? ? ? ? ? ? 178 SER A C 1 +ATOM 238 O O . SER A 1 28 ? 20.852 22.271 16.441 1.00 25.46 ? ? ? ? ? ? 178 SER A O 1 +ATOM 239 C CB . SER A 1 28 ? 20.917 18.979 17.305 1.00 27.21 ? ? ? ? ? ? 178 SER A CB 1 +ATOM 240 O OG . SER A 1 28 ? 19.638 19.408 17.741 1.00 28.73 ? ? ? ? ? ? 178 SER A OG 1 +ATOM 241 N N . GLN A 1 29 ? 20.949 20.675 14.865 1.00 25.33 ? ? ? ? ? ? 179 GLN A N 1 +ATOM 242 C CA . GLN A 1 29 ? 20.315 21.512 13.851 1.00 26.54 ? ? ? ? ? ? 179 GLN A CA 1 +ATOM 243 C C . GLN A 1 29 ? 18.908 21.923 14.284 1.00 26.22 ? ? ? ? ? ? 179 GLN A C 1 +ATOM 244 O O . GLN A 1 29 ? 18.539 23.095 14.184 1.00 25.82 ? ? ? ? ? ? 179 GLN A O 1 +ATOM 245 C CB . GLN A 1 29 ? 20.262 20.791 12.500 1.00 27.45 ? ? ? ? ? ? 179 GLN A CB 1 +ATOM 246 C CG . GLN A 1 29 ? 19.688 21.641 11.372 1.00 30.82 ? ? ? ? ? ? 179 GLN A CG 1 +ATOM 247 C CD . GLN A 1 29 ? 20.414 22.968 11.212 1.00 32.89 ? ? ? ? ? ? 179 GLN A CD 1 +ATOM 248 O OE1 . GLN A 1 29 ? 21.592 23.004 10.860 1.00 35.57 ? ? ? ? ? ? 179 GLN A OE1 1 +ATOM 249 N NE2 . GLN A 1 29 ? 19.714 24.065 11.484 1.00 33.41 ? ? ? ? ? ? 179 GLN A NE2 1 +ATOM 250 N N . GLU A 1 30 ? 18.136 20.955 14.773 1.00 25.12 ? ? ? ? ? ? 180 GLU A N 1 +ATOM 251 C CA . GLU A 1 30 ? 16.775 21.211 15.233 1.00 23.89 ? ? ? ? ? ? 180 GLU A CA 1 +ATOM 252 C C . GLU A 1 30 ? 16.738 22.240 16.354 1.00 21.11 ? ? ? ? ? ? 180 GLU A C 1 +ATOM 253 O O . GLU A 1 30 ? 15.875 23.117 16.360 1.00 21.41 ? ? ? ? ? ? 180 GLU A O 1 +ATOM 254 C CB . GLU A 1 30 ? 16.101 19.916 15.692 1.00 25.74 ? ? ? ? ? ? 180 GLU A CB 1 +ATOM 255 C CG . GLU A 1 30 ? 15.478 19.100 14.569 1.00 28.45 ? ? ? ? ? ? 180 GLU A CG 1 +ATOM 256 C CD . GLU A 1 30 ? 14.341 19.832 13.879 1.00 30.92 ? ? ? ? ? ? 180 GLU A CD 1 +ATOM 257 O OE1 . GLU A 1 30 ? 13.247 19.935 14.473 1.00 30.77 ? ? ? ? ? ? 180 GLU A OE1 1 +ATOM 258 O OE2 . GLU A 1 30 ? 14.542 20.307 12.743 1.00 33.92 ? ? ? ? ? ? 180 GLU A OE2 1 +ATOM 259 N N . VAL A 1 31 ? 17.668 22.133 17.300 1.00 18.60 ? ? ? ? ? ? 181 VAL A N 1 +ATOM 260 C CA . VAL A 1 31 ? 17.730 23.079 18.412 1.00 16.77 ? ? ? ? ? ? 181 VAL A CA 1 +ATOM 261 C C . VAL A 1 31 ? 18.064 24.477 17.897 1.00 15.69 ? ? ? ? ? ? 181 VAL A C 1 +ATOM 262 O O . VAL A 1 31 ? 17.491 25.467 18.352 1.00 14.15 ? ? ? ? ? ? 181 VAL A O 1 +ATOM 263 C CB . VAL A 1 31 ? 18.754 22.639 19.484 1.00 17.20 ? ? ? ? ? ? 181 VAL A CB 1 +ATOM 264 C CG1 . VAL A 1 31 ? 18.932 23.733 20.530 1.00 16.13 ? ? ? ? ? ? 181 VAL A CG1 1 +ATOM 265 C CG2 . VAL A 1 31 ? 18.279 21.357 20.158 1.00 16.46 ? ? ? ? ? ? 181 VAL A CG2 1 +ATOM 266 N N . LYS A 1 32 ? 18.971 24.552 16.929 1.00 16.09 ? ? ? ? ? ? 182 LYS A N 1 +ATOM 267 C CA . LYS A 1 32 ? 19.343 25.835 16.344 1.00 18.00 ? ? ? ? ? ? 182 LYS A CA 1 +ATOM 268 C C . LYS A 1 32 ? 18.126 26.477 15.685 1.00 17.05 ? ? ? ? ? ? 182 LYS A C 1 +ATOM 269 O O . LYS A 1 32 ? 17.905 27.680 15.830 1.00 17.50 ? ? ? ? ? ? 182 LYS A O 1 +ATOM 270 C CB . LYS A 1 32 ? 20.444 25.660 15.306 1.00 21.64 ? ? ? ? ? ? 182 LYS A CB 1 +ATOM 271 C CG . LYS A 1 32 ? 21.777 25.239 15.874 1.00 26.20 ? ? ? ? ? ? 182 LYS A CG 1 +ATOM 272 C CD . LYS A 1 32 ? 22.756 25.055 14.742 1.00 30.03 ? ? ? ? ? ? 182 LYS A CD 1 +ATOM 273 C CE . LYS A 1 32 ? 24.069 24.517 15.226 1.00 32.54 ? ? ? ? ? ? 182 LYS A CE 1 +ATOM 274 N NZ . LYS A 1 32 ? 24.913 24.222 14.047 1.00 35.96 ? ? ? ? ? ? 182 LYS A NZ 1 +ATOM 275 N N . ASN A 1 33 ? 17.344 25.672 14.964 1.00 15.76 ? ? ? ? ? ? 183 ASN A N 1 +ATOM 276 C CA . ASN A 1 33 ? 16.136 26.161 14.297 1.00 14.77 ? ? ? ? ? ? 183 ASN A CA 1 +ATOM 277 C C . ASN A 1 33 ? 15.146 26.712 15.308 1.00 13.22 ? ? ? ? ? ? 183 ASN A C 1 +ATOM 278 O O . ASN A 1 33 ? 14.599 27.791 15.108 1.00 12.70 ? ? ? ? ? ? 183 ASN A O 1 +ATOM 279 C CB . ASN A 1 33 ? 15.468 25.055 13.475 1.00 17.37 ? ? ? ? ? ? 183 ASN A CB 1 +ATOM 280 C CG . ASN A 1 33 ? 16.242 24.712 12.220 1.00 19.82 ? ? ? ? ? ? 183 ASN A CG 1 +ATOM 281 O OD1 . ASN A 1 33 ? 17.164 25.430 11.828 1.00 21.79 ? ? ? ? ? ? 183 ASN A OD1 1 +ATOM 282 N ND2 . ASN A 1 33 ? 15.865 23.613 11.576 1.00 21.82 ? ? ? ? ? ? 183 ASN A ND2 1 +ATOM 283 N N . TRP A 1 34 ? 14.932 25.976 16.397 1.00 12.62 ? ? ? ? ? ? 184 TRP A N 1 +ATOM 284 C CA . TRP A 1 34 ? 14.017 26.406 17.450 1.00 13.10 ? ? ? ? ? ? 184 TRP A CA 1 +ATOM 285 C C . TRP A 1 34 ? 14.495 27.713 18.072 1.00 13.00 ? ? ? ? ? ? 184 TRP A C 1 +ATOM 286 O O . TRP A 1 34 ? 13.700 28.624 18.299 1.00 13.80 ? ? ? ? ? ? 184 TRP A O 1 +ATOM 287 C CB . TRP A 1 34 ? 13.904 25.342 18.545 1.00 14.02 ? ? ? ? ? ? 184 TRP A CB 1 +ATOM 288 C CG . TRP A 1 34 ? 13.254 24.076 18.112 1.00 13.76 ? ? ? ? ? ? 184 TRP A CG 1 +ATOM 289 C CD1 . TRP A 1 34 ? 12.332 23.924 17.121 1.00 16.29 ? ? ? ? ? ? 184 TRP A CD1 1 +ATOM 290 C CD2 . TRP A 1 34 ? 13.484 22.772 18.655 1.00 13.62 ? ? ? ? ? ? 184 TRP A CD2 1 +ATOM 291 N NE1 . TRP A 1 34 ? 11.975 22.601 17.007 1.00 16.57 ? ? ? ? ? ? 184 TRP A NE1 1 +ATOM 292 C CE2 . TRP A 1 34 ? 12.666 21.873 17.937 1.00 14.79 ? ? ? ? ? ? 184 TRP A CE2 1 +ATOM 293 C CE3 . TRP A 1 34 ? 14.303 22.276 19.678 1.00 15.00 ? ? ? ? ? ? 184 TRP A CE3 1 +ATOM 294 C CZ2 . TRP A 1 34 ? 12.641 20.502 18.209 1.00 14.50 ? ? ? ? ? ? 184 TRP A CZ2 1 +ATOM 295 C CZ3 . TRP A 1 34 ? 14.280 20.914 19.948 1.00 16.52 ? ? ? ? ? ? 184 TRP A CZ3 1 +ATOM 296 C CH2 . TRP A 1 34 ? 13.452 20.042 19.213 1.00 15.43 ? ? ? ? ? ? 184 TRP A CH2 1 +ATOM 297 N N . MSE A 1 35 ? 15.793 27.798 18.350 1.00 11.90 ? ? ? ? ? ? 185 MSE A N 1 +ATOM 298 C CA . MSE A 1 35 ? 16.368 28.998 18.950 1.00 13.97 ? ? ? ? ? ? 185 MSE A CA 1 +ATOM 299 C C . MSE A 1 35 ? 16.285 30.209 18.017 1.00 13.93 ? ? ? ? ? ? 185 MSE A C 1 +ATOM 300 O O . MSE A 1 35 ? 16.053 31.336 18.468 1.00 14.45 ? ? ? ? ? ? 185 MSE A O 1 +ATOM 301 C CB . MSE A 1 35 ? 17.815 28.731 19.367 1.00 16.20 ? ? ? ? ? ? 185 MSE A CB 1 +ATOM 302 C CG . MSE A 1 35 ? 17.939 27.794 20.569 1.00 19.32 ? ? ? ? ? ? 185 MSE A CG 1 +ATOM 303 SE SE . MSE A 1 35 ? 17.221 28.490 22.080 1.00 26.24 ? ? ? ? ? ? 185 MSE A SE 1 +ATOM 304 C CE . MSE A 1 35 ? 18.427 29.800 22.392 1.00 27.06 ? ? ? ? ? ? 185 MSE A CE 1 +ATOM 305 N N . THR A 1 36 ? 16.438 29.964 16.716 1.00 15.55 ? ? ? ? ? ? 186 THR A N 1 +ATOM 306 C CA . THR A 1 36 ? 16.375 31.015 15.695 1.00 15.76 ? ? ? ? ? ? 186 THR A CA 1 +ATOM 307 C C . THR A 1 36 ? 14.950 31.585 15.557 1.00 16.57 ? ? ? ? ? ? 186 THR A C 1 +ATOM 308 O O . THR A 1 36 ? 14.778 32.797 15.378 1.00 16.24 ? ? ? ? ? ? 186 THR A O 1 +ATOM 309 C CB . THR A 1 36 ? 16.869 30.474 14.331 1.00 15.03 ? ? ? ? ? ? 186 THR A CB 1 +ATOM 310 O OG1 . THR A 1 36 ? 18.228 30.039 14.461 1.00 17.64 ? ? ? ? ? ? 186 THR A OG1 1 +ATOM 311 C CG2 . THR A 1 36 ? 16.791 31.544 13.245 1.00 16.57 ? ? ? ? ? ? 186 THR A CG2 1 +ATOM 312 N N . GLU A 1 37 ? 13.947 30.705 15.643 1.00 17.15 ? ? ? ? ? ? 187 GLU A N 1 +ATOM 313 C CA . GLU A 1 37 ? 12.529 31.082 15.544 1.00 19.70 ? ? ? ? ? ? 187 GLU A CA 1 +ATOM 314 C C . GLU A 1 37 ? 12.045 31.815 16.785 1.00 18.61 ? ? ? ? ? ? 187 GLU A C 1 +ATOM 315 O O . GLU A 1 37 ? 11.151 32.654 16.700 1.00 22.06 ? ? ? ? ? ? 187 GLU A O 1 +ATOM 316 C CB . GLU A 1 37 ? 11.625 29.849 15.408 1.00 22.78 ? ? ? ? ? ? 187 GLU A CB 1 +ATOM 317 C CG . GLU A 1 37 ? 11.950 28.866 14.305 1.00 32.63 ? ? ? ? ? ? 187 GLU A CG 1 +ATOM 318 C CD . GLU A 1 37 ? 11.054 27.634 14.345 1.00 36.18 ? ? ? ? ? ? 187 GLU A CD 1 +ATOM 319 O OE1 . GLU A 1 37 ? 11.086 26.907 15.364 1.00 38.51 ? ? ? ? ? ? 187 GLU A OE1 1 +ATOM 320 O OE2 . GLU A 1 37 ? 10.326 27.392 13.357 1.00 39.37 ? ? ? ? ? ? 187 GLU A OE2 1 +ATOM 321 N N . THR A 1 38 ? 12.589 31.444 17.942 1.00 15.74 ? ? ? ? ? ? 188 THR A N 1 +ATOM 322 C CA . THR A 1 38 ? 12.177 32.030 19.212 1.00 17.24 ? ? ? ? ? ? 188 THR A CA 1 +ATOM 323 C C . THR A 1 38 ? 13.076 33.117 19.787 1.00 17.41 ? ? ? ? ? ? 188 THR A C 1 +ATOM 324 O O . THR A 1 38 ? 12.888 34.301 19.504 1.00 18.17 ? ? ? ? ? ? 188 THR A O 1 +ATOM 325 C CB . THR A 1 38 ? 11.978 30.936 20.287 1.00 17.93 ? ? ? ? ? ? 188 THR A CB 1 +ATOM 326 O OG1 . THR A 1 38 ? 13.202 30.210 20.469 1.00 17.34 ? ? ? ? ? ? 188 THR A OG1 1 +ATOM 327 C CG2 . THR A 1 38 ? 10.883 29.970 19.861 1.00 20.73 ? ? ? ? ? ? 188 THR A CG2 1 +ATOM 328 N N . LEU A 1 39 ? 14.054 32.705 20.590 1.00 16.74 ? ? ? ? ? ? 189 LEU A N 1 +ATOM 329 C CA . LEU A 1 39 ? 14.963 33.627 21.252 1.00 16.48 ? ? ? ? ? ? 189 LEU A CA 1 +ATOM 330 C C . LEU A 1 39 ? 15.702 34.645 20.392 1.00 16.57 ? ? ? ? ? ? 189 LEU A C 1 +ATOM 331 O O . LEU A 1 39 ? 15.846 35.795 20.805 1.00 17.08 ? ? ? ? ? ? 189 LEU A O 1 +ATOM 332 C CB . LEU A 1 39 ? 15.935 32.864 22.153 1.00 17.33 ? ? ? ? ? ? 189 LEU A CB 1 +ATOM 333 C CG . LEU A 1 39 ? 15.286 32.289 23.417 1.00 19.91 ? ? ? ? ? ? 189 LEU A CG 1 +ATOM 334 C CD1 . LEU A 1 39 ? 16.327 31.647 24.304 1.00 20.68 ? ? ? ? ? ? 189 LEU A CD1 1 +ATOM 335 C CD2 . LEU A 1 39 ? 14.580 33.396 24.183 1.00 21.69 ? ? ? ? ? ? 189 LEU A CD2 1 +ATOM 336 N N . LEU A 1 40 ? 16.162 34.254 19.205 1.00 14.50 ? ? ? ? ? ? 190 LEU A N 1 +ATOM 337 C CA . LEU A 1 40 ? 16.876 35.211 18.356 1.00 13.80 ? ? ? ? ? ? 190 LEU A CA 1 +ATOM 338 C C . LEU A 1 40 ? 15.961 36.378 17.999 1.00 12.88 ? ? ? ? ? ? 190 LEU A C 1 +ATOM 339 O O . LEU A 1 40 ? 16.391 37.528 17.968 1.00 13.57 ? ? ? ? ? ? 190 LEU A O 1 +ATOM 340 C CB . LEU A 1 40 ? 17.402 34.552 17.078 1.00 12.31 ? ? ? ? ? ? 190 LEU A CB 1 +ATOM 341 C CG . LEU A 1 40 ? 18.238 35.486 16.188 1.00 13.96 ? ? ? ? ? ? 190 LEU A CG 1 +ATOM 342 C CD1 . LEU A 1 40 ? 19.553 35.825 16.881 1.00 10.69 ? ? ? ? ? ? 190 LEU A CD1 1 +ATOM 343 C CD2 . LEU A 1 40 ? 18.506 34.834 14.842 1.00 13.74 ? ? ? ? ? ? 190 LEU A CD2 1 +ATOM 344 N N . VAL A 1 41 ? 14.695 36.068 17.738 1.00 14.32 ? ? ? ? ? ? 191 VAL A N 1 +ATOM 345 C CA . VAL A 1 41 ? 13.703 37.080 17.395 1.00 15.94 ? ? ? ? ? ? 191 VAL A CA 1 +ATOM 346 C C . VAL A 1 41 ? 13.270 37.854 18.643 1.00 17.45 ? ? ? ? ? ? 191 VAL A C 1 +ATOM 347 O O . VAL A 1 41 ? 13.262 39.086 18.649 1.00 17.31 ? ? ? ? ? ? 191 VAL A O 1 +ATOM 348 C CB . VAL A 1 41 ? 12.460 36.438 16.718 1.00 14.52 ? ? ? ? ? ? 191 VAL A CB 1 +ATOM 349 C CG1 . VAL A 1 41 ? 11.372 37.479 16.491 1.00 16.03 ? ? ? ? ? ? 191 VAL A CG1 1 +ATOM 350 C CG2 . VAL A 1 41 ? 12.854 35.806 15.394 1.00 12.15 ? ? ? ? ? ? 191 VAL A CG2 1 +ATOM 351 N N . GLN A 1 42 ? 12.954 37.119 19.706 1.00 18.93 ? ? ? ? ? ? 192 GLN A N 1 +ATOM 352 C CA . GLN A 1 42 ? 12.503 37.705 20.967 1.00 20.68 ? ? ? ? ? ? 192 GLN A CA 1 +ATOM 353 C C . GLN A 1 42 ? 13.541 38.565 21.682 1.00 19.53 ? ? ? ? ? ? 192 GLN A C 1 +ATOM 354 O O . GLN A 1 42 ? 13.184 39.453 22.453 1.00 20.37 ? ? ? ? ? ? 192 GLN A O 1 +ATOM 355 C CB . GLN A 1 42 ? 12.008 36.602 21.902 1.00 24.30 ? ? ? ? ? ? 192 GLN A CB 1 +ATOM 356 C CG . GLN A 1 42 ? 10.830 35.818 21.343 1.00 31.13 ? ? ? ? ? ? 192 GLN A CG 1 +ATOM 357 C CD . GLN A 1 42 ? 10.505 34.578 22.155 1.00 34.16 ? ? ? ? ? ? 192 GLN A CD 1 +ATOM 358 O OE1 . GLN A 1 42 ? 10.626 34.568 23.385 1.00 36.09 ? ? ? ? ? ? 192 GLN A OE1 1 +ATOM 359 N NE2 . GLN A 1 42 ? 10.093 33.520 21.466 1.00 35.17 ? ? ? ? ? ? 192 GLN A NE2 1 +ATOM 360 N N . ASN A 1 43 ? 14.820 38.291 21.445 1.00 18.18 ? ? ? ? ? ? 193 ASN A N 1 +ATOM 361 C CA . ASN A 1 43 ? 15.887 39.056 22.080 1.00 15.97 ? ? ? ? ? ? 193 ASN A CA 1 +ATOM 362 C C . ASN A 1 43 ? 16.443 40.164 21.189 1.00 16.56 ? ? ? ? ? ? 193 ASN A C 1 +ATOM 363 O O . ASN A 1 43 ? 17.416 40.823 21.548 1.00 14.79 ? ? ? ? ? ? 193 ASN A O 1 +ATOM 364 C CB . ASN A 1 43 ? 17.014 38.130 22.538 1.00 15.75 ? ? ? ? ? ? 193 ASN A CB 1 +ATOM 365 C CG . ASN A 1 43 ? 16.627 37.286 23.738 1.00 16.38 ? ? ? ? ? ? 193 ASN A CG 1 +ATOM 366 O OD1 . ASN A 1 43 ? 15.451 37.192 24.094 1.00 16.52 ? ? ? ? ? ? 193 ASN A OD1 1 +ATOM 367 N ND2 . ASN A 1 43 ? 17.619 36.681 24.378 1.00 15.95 ? ? ? ? ? ? 193 ASN A ND2 1 +ATOM 368 N N . ALA A 1 44 ? 15.830 40.353 20.023 1.00 16.07 ? ? ? ? ? ? 194 ALA A N 1 +ATOM 369 C CA . ALA A 1 44 ? 16.248 41.392 19.084 1.00 16.92 ? ? ? ? ? ? 194 ALA A CA 1 +ATOM 370 C C . ALA A 1 44 ? 15.758 42.759 19.582 1.00 18.37 ? ? ? ? ? ? 194 ALA A C 1 +ATOM 371 O O . ALA A 1 44 ? 14.809 42.834 20.368 1.00 17.63 ? ? ? ? ? ? 194 ALA A O 1 +ATOM 372 C CB . ALA A 1 44 ? 15.689 41.097 17.701 1.00 13.98 ? ? ? ? ? ? 194 ALA A CB 1 +ATOM 373 N N . ASN A 1 45 ? 16.404 43.837 19.140 1.00 18.93 ? ? ? ? ? ? 195 ASN A N 1 +ATOM 374 C CA . ASN A 1 45 ? 16.005 45.172 19.582 1.00 19.84 ? ? ? ? ? ? 195 ASN A CA 1 +ATOM 375 C C . ASN A 1 45 ? 14.639 45.580 19.015 1.00 22.01 ? ? ? ? ? ? 195 ASN A C 1 +ATOM 376 O O . ASN A 1 45 ? 14.122 44.928 18.111 1.00 20.95 ? ? ? ? ? ? 195 ASN A O 1 +ATOM 377 C CB . ASN A 1 45 ? 17.109 46.213 19.295 1.00 17.93 ? ? ? ? ? ? 195 ASN A CB 1 +ATOM 378 C CG . ASN A 1 45 ? 17.396 46.399 17.818 1.00 16.61 ? ? ? ? ? ? 195 ASN A CG 1 +ATOM 379 O OD1 . ASN A 1 45 ? 16.559 46.131 16.960 1.00 20.76 ? ? ? ? ? ? 195 ASN A OD1 1 +ATOM 380 N ND2 . ASN A 1 45 ? 18.588 46.890 17.519 1.00 17.86 ? ? ? ? ? ? 195 ASN A ND2 1 +ATOM 381 N N . PRO A 1 46 ? 14.018 46.635 19.574 1.00 24.87 ? ? ? ? ? ? 196 PRO A N 1 +ATOM 382 C CA . PRO A 1 46 ? 12.706 47.128 19.133 1.00 26.26 ? ? ? ? ? ? 196 PRO A CA 1 +ATOM 383 C C . PRO A 1 46 ? 12.516 47.250 17.620 1.00 27.28 ? ? ? ? ? ? 196 PRO A C 1 +ATOM 384 O O . PRO A 1 46 ? 11.536 46.743 17.073 1.00 28.19 ? ? ? ? ? ? 196 PRO A O 1 +ATOM 385 C CB . PRO A 1 46 ? 12.617 48.485 19.822 1.00 26.56 ? ? ? ? ? ? 196 PRO A CB 1 +ATOM 386 C CG . PRO A 1 46 ? 13.288 48.219 21.117 1.00 25.02 ? ? ? ? ? ? 196 PRO A CG 1 +ATOM 387 C CD . PRO A 1 46 ? 14.522 47.454 20.693 1.00 24.81 ? ? ? ? ? ? 196 PRO A CD 1 +ATOM 388 N N . ASP A 1 47 ? 13.454 47.913 16.952 1.00 28.53 ? ? ? ? ? ? 197 ASP A N 1 +ATOM 389 C CA . ASP A 1 47 ? 13.383 48.098 15.506 1.00 29.38 ? ? ? ? ? ? 197 ASP A CA 1 +ATOM 390 C C . ASP A 1 47 ? 13.351 46.786 14.733 1.00 28.53 ? ? ? ? ? ? 197 ASP A C 1 +ATOM 391 O O . ASP A 1 47 ? 12.406 46.515 13.991 1.00 29.43 ? ? ? ? ? ? 197 ASP A O 1 +ATOM 392 C CB . ASP A 1 47 ? 14.564 48.939 15.018 1.00 32.68 ? ? ? ? ? ? 197 ASP A CB 1 +ATOM 393 C CG . ASP A 1 47 ? 14.482 50.380 15.475 1.00 36.01 ? ? ? ? ? ? 197 ASP A CG 1 +ATOM 394 O OD1 . ASP A 1 47 ? 13.353 50.889 15.662 1.00 37.27 ? ? ? ? ? ? 197 ASP A OD1 1 +ATOM 395 O OD2 . ASP A 1 47 ? 15.552 51.007 15.637 1.00 39.13 ? ? ? ? ? ? 197 ASP A OD2 1 +ATOM 396 N N . CYS A 1 48 ? 14.378 45.967 14.932 1.00 25.72 ? ? ? ? ? ? 198 CYS A N 1 +ATOM 397 C CA . CYS A 1 48 ? 14.488 44.687 14.241 1.00 24.21 ? ? ? ? ? ? 198 CYS A CA 1 +ATOM 398 C C . CYS A 1 48 ? 13.443 43.638 14.633 1.00 22.75 ? ? ? ? ? ? 198 CYS A C 1 +ATOM 399 O O . CYS A 1 48 ? 12.968 42.886 13.783 1.00 22.43 ? ? ? ? ? ? 198 CYS A O 1 +ATOM 400 C CB . CYS A 1 48 ? 15.902 44.124 14.411 1.00 21.40 ? ? ? ? ? ? 198 CYS A CB 1 +ATOM 401 S SG . CYS A 1 48 ? 16.144 42.477 13.674 1.00 23.23 ? ? ? ? ? ? 198 CYS A SG 1 +ATOM 402 N N . LYS A 1 49 ? 13.061 43.612 15.907 1.00 22.97 ? ? ? ? ? ? 199 LYS A N 1 +ATOM 403 C CA . LYS A 1 49 ? 12.087 42.641 16.402 1.00 22.51 ? ? ? ? ? ? 199 LYS A CA 1 +ATOM 404 C C . LYS A 1 49 ? 10.746 42.686 15.673 1.00 23.08 ? ? ? ? ? ? 199 LYS A C 1 +ATOM 405 O O . LYS A 1 49 ? 10.157 41.641 15.386 1.00 22.88 ? ? ? ? ? ? 199 LYS A O 1 +ATOM 406 C CB . LYS A 1 49 ? 11.879 42.818 17.907 1.00 21.78 ? ? ? ? ? ? 199 LYS A CB 1 +ATOM 407 C CG . LYS A 1 49 ? 11.014 41.753 18.541 1.00 21.47 ? ? ? ? ? ? 199 LYS A CG 1 +ATOM 408 C CD . LYS A 1 49 ? 11.003 41.892 20.045 1.00 24.48 ? ? ? ? ? ? 199 LYS A CD 1 +ATOM 409 C CE . LYS A 1 49 ? 10.171 40.797 20.670 1.00 26.88 ? ? ? ? ? ? 199 LYS A CE 1 +ATOM 410 N NZ . LYS A 1 49 ? 10.269 40.823 22.154 1.00 29.75 ? ? ? ? ? ? 199 LYS A NZ 1 +ATOM 411 N N . THR A 1 50 ? 10.273 43.892 15.369 1.00 23.51 ? ? ? ? ? ? 200 THR A N 1 +ATOM 412 C CA . THR A 1 50 ? 9.002 44.065 14.665 1.00 25.81 ? ? ? ? ? ? 200 THR A CA 1 +ATOM 413 C C . THR A 1 50 ? 9.101 43.494 13.251 1.00 24.75 ? ? ? ? ? ? 200 THR A C 1 +ATOM 414 O O . THR A 1 50 ? 8.227 42.753 12.799 1.00 24.72 ? ? ? ? ? ? 200 THR A O 1 +ATOM 415 C CB . THR A 1 50 ? 8.612 45.551 14.577 1.00 27.33 ? ? ? ? ? ? 200 THR A CB 1 +ATOM 416 O OG1 . THR A 1 50 ? 8.611 46.122 15.892 1.00 28.04 ? ? ? ? ? ? 200 THR A OG1 1 +ATOM 417 C CG2 . THR A 1 50 ? 7.224 45.702 13.961 1.00 28.16 ? ? ? ? ? ? 200 THR A CG2 1 +ATOM 418 N N . ILE A 1 51 ? 10.191 43.835 12.574 1.00 23.98 ? ? ? ? ? ? 201 ILE A N 1 +ATOM 419 C CA . ILE A 1 51 ? 10.458 43.373 11.221 1.00 22.55 ? ? ? ? ? ? 201 ILE A CA 1 +ATOM 420 C C . ILE A 1 51 ? 10.518 41.848 11.161 1.00 22.09 ? ? ? ? ? ? 201 ILE A C 1 +ATOM 421 O O . ILE A 1 51 ? 9.916 41.229 10.284 1.00 21.81 ? ? ? ? ? ? 201 ILE A O 1 +ATOM 422 C CB . ILE A 1 51 ? 11.791 43.960 10.721 1.00 23.07 ? ? ? ? ? ? 201 ILE A CB 1 +ATOM 423 C CG1 . ILE A 1 51 ? 11.677 45.481 10.620 1.00 23.41 ? ? ? ? ? ? 201 ILE A CG1 1 +ATOM 424 C CG2 . ILE A 1 51 ? 12.184 43.356 9.389 1.00 22.61 ? ? ? ? ? ? 201 ILE A CG2 1 +ATOM 425 C CD1 . ILE A 1 51 ? 12.967 46.169 10.250 1.00 25.93 ? ? ? ? ? ? 201 ILE A CD1 1 +ATOM 426 N N . LEU A 1 52 ? 11.222 41.249 12.117 1.00 21.32 ? ? ? ? ? ? 202 LEU A N 1 +ATOM 427 C CA . LEU A 1 52 ? 11.377 39.801 12.170 1.00 21.25 ? ? ? ? ? ? 202 LEU A CA 1 +ATOM 428 C C . LEU A 1 52 ? 10.082 39.036 12.412 1.00 23.50 ? ? ? ? ? ? 202 LEU A C 1 +ATOM 429 O O . LEU A 1 52 ? 9.885 37.956 11.855 1.00 24.38 ? ? ? ? ? ? 202 LEU A O 1 +ATOM 430 C CB . LEU A 1 52 ? 12.416 39.416 13.221 1.00 19.31 ? ? ? ? ? ? 202 LEU A CB 1 +ATOM 431 C CG . LEU A 1 52 ? 13.824 39.939 12.950 1.00 16.32 ? ? ? ? ? ? 202 LEU A CG 1 +ATOM 432 C CD1 . LEU A 1 52 ? 14.764 39.438 14.027 1.00 15.31 ? ? ? ? ? ? 202 LEU A CD1 1 +ATOM 433 C CD2 . LEU A 1 52 ? 14.287 39.491 11.575 1.00 17.16 ? ? ? ? ? ? 202 LEU A CD2 1 +ATOM 434 N N . LYS A 1 53 ? 9.214 39.575 13.261 1.00 25.33 ? ? ? ? ? ? 203 LYS A N 1 +ATOM 435 C CA . LYS A 1 53 ? 7.937 38.927 13.546 1.00 28.13 ? ? ? ? ? ? 203 LYS A CA 1 +ATOM 436 C C . LYS A 1 53 ? 7.048 38.954 12.303 1.00 30.02 ? ? ? ? ? ? 203 LYS A C 1 +ATOM 437 O O . LYS A 1 53 ? 6.294 38.011 12.044 1.00 30.66 ? ? ? ? ? ? 203 LYS A O 1 +ATOM 438 C CB . LYS A 1 53 ? 7.230 39.620 14.712 1.00 28.40 ? ? ? ? ? ? 203 LYS A CB 1 +ATOM 439 C CG . LYS A 1 53 ? 7.828 39.324 16.085 1.00 27.94 ? ? ? ? ? ? 203 LYS A CG 1 +ATOM 440 C CD . LYS A 1 53 ? 7.618 37.867 16.471 0.00 28.06 ? ? ? ? ? ? 203 LYS A CD 1 +ATOM 441 C CE . LYS A 1 53 ? 8.090 37.590 17.889 0.00 28.00 ? ? ? ? ? ? 203 LYS A CE 1 +ATOM 442 N NZ . LYS A 1 53 ? 7.916 36.158 18.262 0.00 28.04 ? ? ? ? ? ? 203 LYS A NZ 1 +ATOM 443 N N . ALA A 1 54 ? 7.189 40.020 11.516 1.00 30.84 ? ? ? ? ? ? 204 ALA A N 1 +ATOM 444 C CA . ALA A 1 54 ? 6.419 40.213 10.290 1.00 31.07 ? ? ? ? ? ? 204 ALA A CA 1 +ATOM 445 C C . ALA A 1 54 ? 6.871 39.332 9.117 1.00 32.46 ? ? ? ? ? ? 204 ALA A C 1 +ATOM 446 O O . ALA A 1 54 ? 6.391 39.495 7.991 1.00 33.68 ? ? ? ? ? ? 204 ALA A O 1 +ATOM 447 C CB . ALA A 1 54 ? 6.449 41.683 9.885 1.00 30.70 ? ? ? ? ? ? 204 ALA A CB 1 +ATOM 448 N N . LEU A 1 55 ? 7.815 38.428 9.369 1.00 31.38 ? ? ? ? ? ? 205 LEU A N 1 +ATOM 449 C CA . LEU A 1 55 ? 8.305 37.528 8.328 1.00 30.07 ? ? ? ? ? ? 205 LEU A CA 1 +ATOM 450 C C . LEU A 1 55 ? 7.481 36.243 8.312 1.00 30.06 ? ? ? ? ? ? 205 LEU A C 1 +ATOM 451 O O . LEU A 1 55 ? 7.371 35.579 7.281 1.00 31.24 ? ? ? ? ? ? 205 LEU A O 1 +ATOM 452 C CB . LEU A 1 55 ? 9.788 37.196 8.539 1.00 29.91 ? ? ? ? ? ? 205 LEU A CB 1 +ATOM 453 C CG . LEU A 1 55 ? 10.832 38.299 8.323 1.00 27.95 ? ? ? ? ? ? 205 LEU A CG 1 +ATOM 454 C CD1 . LEU A 1 55 ? 12.217 37.767 8.660 1.00 27.73 ? ? ? ? ? ? 205 LEU A CD1 1 +ATOM 455 C CD2 . LEU A 1 55 ? 10.789 38.797 6.888 1.00 26.18 ? ? ? ? ? ? 205 LEU A CD2 1 +ATOM 456 N N . GLY A 1 56 ? 6.886 35.909 9.455 1.00 28.82 ? ? ? ? ? ? 206 GLY A N 1 +ATOM 457 C CA . GLY A 1 56 ? 6.080 34.704 9.548 1.00 26.90 ? ? ? ? ? ? 206 GLY A CA 1 +ATOM 458 C C . GLY A 1 56 ? 6.922 33.478 9.835 1.00 27.00 ? ? ? ? ? ? 206 GLY A C 1 +ATOM 459 O O . GLY A 1 56 ? 8.149 33.569 9.881 1.00 27.32 ? ? ? ? ? ? 206 GLY A O 1 +ATOM 460 N N . PRO A 1 57 ? 6.294 32.310 10.042 1.00 27.00 ? ? ? ? ? ? 207 PRO A N 1 +ATOM 461 C CA . PRO A 1 57 ? 7.024 31.068 10.328 1.00 26.75 ? ? ? ? ? ? 207 PRO A CA 1 +ATOM 462 C C . PRO A 1 57 ? 7.912 30.540 9.197 1.00 25.01 ? ? ? ? ? ? 207 PRO A C 1 +ATOM 463 O O . PRO A 1 57 ? 7.680 30.812 8.017 1.00 24.67 ? ? ? ? ? ? 207 PRO A O 1 +ATOM 464 C CB . PRO A 1 57 ? 5.901 30.083 10.675 1.00 27.70 ? ? ? ? ? ? 207 PRO A CB 1 +ATOM 465 C CG . PRO A 1 57 ? 4.734 30.601 9.890 1.00 27.32 ? ? ? ? ? ? 207 PRO A CG 1 +ATOM 466 C CD . PRO A 1 57 ? 4.839 32.090 10.112 1.00 28.17 ? ? ? ? ? ? 207 PRO A CD 1 +ATOM 467 N N . GLY A 1 58 ? 8.952 29.808 9.585 1.00 23.60 ? ? ? ? ? ? 208 GLY A N 1 +ATOM 468 C CA . GLY A 1 58 ? 9.861 29.227 8.617 1.00 22.39 ? ? ? ? ? ? 208 GLY A CA 1 +ATOM 469 C C . GLY A 1 58 ? 10.886 30.161 8.004 1.00 21.37 ? ? ? ? ? ? 208 GLY A C 1 +ATOM 470 O O . GLY A 1 58 ? 11.642 29.736 7.130 1.00 22.27 ? ? ? ? ? ? 208 GLY A O 1 +ATOM 471 N N . ALA A 1 59 ? 10.910 31.423 8.429 1.00 20.71 ? ? ? ? ? ? 209 ALA A N 1 +ATOM 472 C CA . ALA A 1 59 ? 11.884 32.382 7.900 1.00 19.17 ? ? ? ? ? ? 209 ALA A CA 1 +ATOM 473 C C . ALA A 1 59 ? 13.285 31.936 8.311 1.00 18.52 ? ? ? ? ? ? 209 ALA A C 1 +ATOM 474 O O . ALA A 1 59 ? 13.524 31.614 9.478 1.00 18.84 ? ? ? ? ? ? 209 ALA A O 1 +ATOM 475 C CB . ALA A 1 59 ? 11.599 33.779 8.428 1.00 18.69 ? ? ? ? ? ? 209 ALA A CB 1 +ATOM 476 N N . THR A 1 60 ? 14.199 31.887 7.347 1.00 15.99 ? ? ? ? ? ? 210 THR A N 1 +ATOM 477 C CA . THR A 1 60 ? 15.563 31.458 7.625 1.00 16.19 ? ? ? ? ? ? 210 THR A CA 1 +ATOM 478 C C . THR A 1 60 ? 16.391 32.562 8.265 1.00 15.24 ? ? ? ? ? ? 210 THR A C 1 +ATOM 479 O O . THR A 1 60 ? 16.022 33.735 8.212 1.00 14.97 ? ? ? ? ? ? 210 THR A O 1 +ATOM 480 C CB . THR A 1 60 ? 16.290 31.000 6.345 1.00 16.78 ? ? ? ? ? ? 210 THR A CB 1 +ATOM 481 O OG1 . THR A 1 60 ? 16.498 32.124 5.479 1.00 17.67 ? ? ? ? ? ? 210 THR A OG1 1 +ATOM 482 C CG2 . THR A 1 60 ? 15.473 29.943 5.616 1.00 18.07 ? ? ? ? ? ? 210 THR A CG2 1 +ATOM 483 N N . LEU A 1 61 ? 17.509 32.169 8.871 1.00 13.73 ? ? ? ? ? ? 211 LEU A N 1 +ATOM 484 C CA . LEU A 1 61 ? 18.426 33.111 9.499 1.00 12.88 ? ? ? ? ? ? 211 LEU A CA 1 +ATOM 485 C C . LEU A 1 61 ? 18.875 34.122 8.447 1.00 15.07 ? ? ? ? ? ? 211 LEU A C 1 +ATOM 486 O O . LEU A 1 61 ? 19.012 35.308 8.739 1.00 15.69 ? ? ? ? ? ? 211 LEU A O 1 +ATOM 487 C CB . LEU A 1 61 ? 19.645 32.369 10.045 1.00 11.67 ? ? ? ? ? ? 211 LEU A CB 1 +ATOM 488 C CG . LEU A 1 61 ? 20.773 33.233 10.603 1.00 11.35 ? ? ? ? ? ? 211 LEU A CG 1 +ATOM 489 C CD1 . LEU A 1 61 ? 20.264 34.065 11.765 1.00 11.67 ? ? ? ? ? ? 211 LEU A CD1 1 +ATOM 490 C CD2 . LEU A 1 61 ? 21.920 32.342 11.045 1.00 12.84 ? ? ? ? ? ? 211 LEU A CD2 1 +ATOM 491 N N . GLU A 1 62 ? 19.082 33.643 7.221 1.00 14.89 ? ? ? ? ? ? 212 GLU A N 1 +ATOM 492 C CA . GLU A 1 62 ? 19.510 34.489 6.111 1.00 16.56 ? ? ? ? ? ? 212 GLU A CA 1 +ATOM 493 C C . GLU A 1 62 ? 18.471 35.569 5.808 1.00 16.12 ? ? ? ? ? ? 212 GLU A C 1 +ATOM 494 O O . GLU A 1 62 ? 18.816 36.740 5.636 1.00 14.41 ? ? ? ? ? ? 212 GLU A O 1 +ATOM 495 C CB . GLU A 1 62 ? 19.784 33.638 4.863 1.00 19.36 ? ? ? ? ? ? 212 GLU A CB 1 +ATOM 496 C CG . GLU A 1 62 ? 21.035 32.751 4.953 1.00 24.84 ? ? ? ? ? ? 212 GLU A CG 1 +ATOM 497 C CD . GLU A 1 62 ? 20.954 31.668 6.033 1.00 29.36 ? ? ? ? ? ? 212 GLU A CD 1 +ATOM 498 O OE1 . GLU A 1 62 ? 19.902 30.999 6.155 1.00 27.99 ? ? ? ? ? ? 212 GLU A OE1 1 +ATOM 499 O OE2 . GLU A 1 62 ? 21.955 31.483 6.762 1.00 31.94 ? ? ? ? ? ? 212 GLU A OE2 1 +ATOM 500 N N . GLU A 1 63 ? 17.199 35.173 5.771 1.00 14.31 ? ? ? ? ? ? 213 GLU A N 1 +ATOM 501 C CA . GLU A 1 63 ? 16.109 36.113 5.512 1.00 15.24 ? ? ? ? ? ? 213 GLU A CA 1 +ATOM 502 C C . GLU A 1 63 ? 16.001 37.117 6.660 1.00 14.13 ? ? ? ? ? ? 213 GLU A C 1 +ATOM 503 O O . GLU A 1 63 ? 15.690 38.289 6.438 1.00 12.96 ? ? ? ? ? ? 213 GLU A O 1 +ATOM 504 C CB . GLU A 1 63 ? 14.787 35.364 5.300 1.00 17.00 ? ? ? ? ? ? 213 GLU A CB 1 +ATOM 505 C CG . GLU A 1 63 ? 14.776 34.514 4.026 1.00 19.68 ? ? ? ? ? ? 213 GLU A CG 1 +ATOM 506 C CD . GLU A 1 63 ? 13.539 33.638 3.893 1.00 21.17 ? ? ? ? ? ? 213 GLU A CD 1 +ATOM 507 O OE1 . GLU A 1 63 ? 13.220 32.890 4.838 1.00 20.24 ? ? ? ? ? ? 213 GLU A OE1 1 +ATOM 508 O OE2 . GLU A 1 63 ? 12.888 33.683 2.829 1.00 25.47 ? ? ? ? ? ? 213 GLU A OE2 1 +ATOM 509 N N . MSE A 1 64 ? 16.301 36.659 7.877 1.00 13.37 ? ? ? ? ? ? 214 MSE A N 1 +ATOM 510 C CA . MSE A 1 64 ? 16.274 37.519 9.059 1.00 12.33 ? ? ? ? ? ? 214 MSE A CA 1 +ATOM 511 C C . MSE A 1 64 ? 17.413 38.530 8.956 1.00 11.56 ? ? ? ? ? ? 214 MSE A C 1 +ATOM 512 O O . MSE A 1 64 ? 17.209 39.721 9.177 1.00 12.28 ? ? ? ? ? ? 214 MSE A O 1 +ATOM 513 C CB . MSE A 1 64 ? 16.429 36.699 10.346 1.00 11.82 ? ? ? ? ? ? 214 MSE A CB 1 +ATOM 514 C CG . MSE A 1 64 ? 15.284 35.728 10.626 1.00 14.91 ? ? ? ? ? ? 214 MSE A CG 1 +ATOM 515 SE SE . MSE A 1 64 ? 15.332 35.046 12.310 1.00 17.52 ? ? ? ? ? ? 214 MSE A SE 1 +ATOM 516 C CE . MSE A 1 64 ? 13.844 34.046 12.296 1.00 16.42 ? ? ? ? ? ? 214 MSE A CE 1 +ATOM 517 N N . MSE A 1 65 ? 18.606 38.055 8.603 1.00 10.35 ? ? ? ? ? ? 215 MSE A N 1 +ATOM 518 C CA . MSE A 1 65 ? 19.764 38.935 8.460 1.00 11.55 ? ? ? ? ? ? 215 MSE A CA 1 +ATOM 519 C C . MSE A 1 65 ? 19.548 39.953 7.340 1.00 11.81 ? ? ? ? ? ? 215 MSE A C 1 +ATOM 520 O O . MSE A 1 65 ? 19.922 41.116 7.471 1.00 12.78 ? ? ? ? ? ? 215 MSE A O 1 +ATOM 521 C CB . MSE A 1 65 ? 21.047 38.127 8.220 1.00 11.17 ? ? ? ? ? ? 215 MSE A CB 1 +ATOM 522 C CG . MSE A 1 65 ? 21.507 37.319 9.432 1.00 13.26 ? ? ? ? ? ? 215 MSE A CG 1 +ATOM 523 SE SE . MSE A 1 65 ? 23.105 36.476 9.199 1.00 20.46 ? ? ? ? ? ? 215 MSE A SE 1 +ATOM 524 C CE . MSE A 1 65 ? 22.645 35.192 8.071 1.00 15.69 ? ? ? ? ? ? 215 MSE A CE 1 +ATOM 525 N N . THR A 1 66 ? 18.915 39.521 6.253 1.00 11.79 ? ? ? ? ? ? 216 THR A N 1 +ATOM 526 C CA . THR A 1 66 ? 18.636 40.413 5.133 1.00 13.57 ? ? ? ? ? ? 216 THR A CA 1 +ATOM 527 C C . THR A 1 66 ? 17.640 41.485 5.571 1.00 14.27 ? ? ? ? ? ? 216 THR A C 1 +ATOM 528 O O . THR A 1 66 ? 17.807 42.666 5.263 1.00 14.93 ? ? ? ? ? ? 216 THR A O 1 +ATOM 529 C CB . THR A 1 66 ? 18.050 39.641 3.929 1.00 13.53 ? ? ? ? ? ? 216 THR A CB 1 +ATOM 530 O OG1 . THR A 1 66 ? 18.998 38.664 3.483 1.00 12.21 ? ? ? ? ? ? 216 THR A OG1 1 +ATOM 531 C CG2 . THR A 1 66 ? 17.730 40.596 2.778 1.00 14.56 ? ? ? ? ? ? 216 THR A CG2 1 +ATOM 532 N N . ALA A 1 67 ? 16.631 41.064 6.328 1.00 14.20 ? ? ? ? ? ? 217 ALA A N 1 +ATOM 533 C CA . ALA A 1 67 ? 15.593 41.963 6.816 1.00 14.19 ? ? ? ? ? ? 217 ALA A CA 1 +ATOM 534 C C . ALA A 1 67 ? 16.104 43.052 7.759 1.00 13.96 ? ? ? ? ? ? 217 ALA A C 1 +ATOM 535 O O . ALA A 1 67 ? 15.685 44.202 7.659 1.00 13.90 ? ? ? ? ? ? 217 ALA A O 1 +ATOM 536 C CB . ALA A 1 67 ? 14.486 41.158 7.488 1.00 13.87 ? ? ? ? ? ? 217 ALA A CB 1 +ATOM 537 N N . CYS A 1 68 ? 17.033 42.701 8.645 1.00 14.68 ? ? ? ? ? ? 218 CYS A N 1 +ATOM 538 C CA . CYS A 1 68 ? 17.572 43.657 9.613 1.00 15.55 ? ? ? ? ? ? 218 CYS A CA 1 +ATOM 539 C C . CYS A 1 68 ? 18.985 44.159 9.339 1.00 16.84 ? ? ? ? ? ? 218 CYS A C 1 +ATOM 540 O O . CYS A 1 68 ? 19.634 44.683 10.245 1.00 17.92 ? ? ? ? ? ? 218 CYS A O 1 +ATOM 541 C CB . CYS A 1 68 ? 17.525 43.060 11.021 1.00 16.55 ? ? ? ? ? ? 218 CYS A CB 1 +ATOM 542 S SG . CYS A 1 68 ? 15.855 42.777 11.680 1.00 18.79 ? ? ? ? ? ? 218 CYS A SG 1 +ATOM 543 N N . GLN A 1 69 ? 19.451 44.037 8.099 1.00 17.89 ? ? ? ? ? ? 219 GLN A N 1 +ATOM 544 C CA . GLN A 1 69 ? 20.802 44.479 7.755 1.00 18.32 ? ? ? ? ? ? 219 GLN A CA 1 +ATOM 545 C C . GLN A 1 69 ? 21.001 45.986 7.940 1.00 20.96 ? ? ? ? ? ? 219 GLN A C 1 +ATOM 546 O O . GLN A 1 69 ? 20.066 46.772 7.786 1.00 18.54 ? ? ? ? ? ? 219 GLN A O 1 +ATOM 547 C CB . GLN A 1 69 ? 21.152 44.074 6.323 1.00 17.21 ? ? ? ? ? ? 219 GLN A CB 1 +ATOM 548 C CG . GLN A 1 69 ? 20.421 44.863 5.251 1.00 18.39 ? ? ? ? ? ? 219 GLN A CG 1 +ATOM 549 C CD . GLN A 1 69 ? 20.725 44.362 3.860 1.00 14.75 ? ? ? ? ? ? 219 GLN A CD 1 +ATOM 550 O OE1 . GLN A 1 69 ? 21.768 44.673 3.288 1.00 14.70 ? ? ? ? ? ? 219 GLN A OE1 1 +ATOM 551 N NE2 . GLN A 1 69 ? 19.817 43.572 3.311 1.00 14.97 ? ? ? ? ? ? 219 GLN A NE2 1 +ATOM 552 N N . GLY A 1 70 ? 22.226 46.374 8.287 1.00 25.08 ? ? ? ? ? ? 220 GLY A N 1 +ATOM 553 C CA . GLY A 1 70 ? 22.536 47.781 8.491 1.00 31.02 ? ? ? ? ? ? 220 GLY A CA 1 +ATOM 554 C C . GLY A 1 70 ? 23.683 48.032 9.461 1.00 34.02 ? ? ? ? ? ? 220 GLY A C 1 +ATOM 555 O O . GLY A 1 70 ? 24.328 47.057 9.907 1.00 37.36 ? ? ? ? ? ? 220 GLY A O 1 +ATOM 556 O OXT . GLY A 1 70 ? 23.949 49.212 9.776 1.00 35.95 ? ? ? ? ? ? 220 GLY A OXT 1 +HETATM 557 O O . HOH B 2 . ? 15.165 37.722 1.767 1.00 17.71 ? ? ? ? ? ? 1000 HOH A O 1 +HETATM 558 O O . HOH B 2 . ? 19.774 39.105 29.335 1.00 14.76 ? ? ? ? ? ? 1001 HOH A O 1 +HETATM 559 O O . HOH B 2 . ? 22.152 41.230 9.295 1.00 12.50 ? ? ? ? ? ? 1002 HOH A O 1 +HETATM 560 O O . HOH B 2 . ? 12.938 36.120 1.368 1.00 20.01 ? ? ? ? ? ? 1003 HOH A O 1 +HETATM 561 O O . HOH B 2 . ? 23.499 43.387 10.442 1.00 11.86 ? ? ? ? ? ? 1004 HOH A O 1 +HETATM 562 O O . HOH B 2 . ? 17.568 32.010 2.812 1.00 41.17 ? ? ? ? ? ? 1005 HOH A O 1 +HETATM 563 O O . HOH B 2 . ? 13.544 42.152 23.067 1.00 44.74 ? ? ? ? ? ? 1006 HOH A O 1 +HETATM 564 O O . HOH B 2 . ? 15.524 51.867 21.467 1.00 25.06 ? ? ? ? ? ? 1007 HOH A O 1 +HETATM 565 O O . HOH B 2 . ? 31.249 29.077 22.178 1.00 32.20 ? ? ? ? ? ? 1008 HOH A O 1 +HETATM 566 O O . HOH B 2 . ? 11.999 37.653 3.633 1.00 22.01 ? ? ? ? ? ? 1009 HOH A O 1 +HETATM 567 O O . HOH B 2 . ? 14.511 39.069 4.067 1.00 13.97 ? ? ? ? ? ? 1010 HOH A O 1 +HETATM 568 O O . HOH B 2 . ? 7.439 39.671 4.171 1.00 29.20 ? ? ? ? ? ? 1011 HOH A O 1 +HETATM 569 O O . HOH B 2 . ? 19.303 38.158 0.364 1.00 16.18 ? ? ? ? ? ? 1012 HOH A O 1 +HETATM 570 O O . HOH B 2 . ? 17.114 46.823 7.498 1.00 37.24 ? ? ? ? ? ? 1013 HOH A O 1 +HETATM 571 O O . HOH B 2 . ? 21.867 45.557 11.341 1.00 18.21 ? ? ? ? ? ? 1014 HOH A O 1 +HETATM 572 O O . HOH B 2 . ? 17.573 36.347 2.076 1.00 26.66 ? ? ? ? ? ? 1015 HOH A O 1 +HETATM 573 O O . HOH B 2 . ? 26.151 39.210 7.337 1.00 28.81 ? ? ? ? ? ? 1016 HOH A O 1 +HETATM 574 O O . HOH B 2 . ? 20.974 36.704 2.736 1.00 22.52 ? ? ? ? ? ? 1017 HOH A O 1 +HETATM 575 O O . HOH B 2 . ? 20.796 49.132 25.996 1.00 19.50 ? ? ? ? ? ? 1018 HOH A O 1 +HETATM 576 O O . HOH B 2 . ? 28.370 43.431 19.191 1.00 23.90 ? ? ? ? ? ? 1019 HOH A O 1 +HETATM 577 O O . HOH B 2 . ? 29.565 39.861 17.495 1.00 22.27 ? ? ? ? ? ? 1020 HOH A O 1 +HETATM 578 O O . HOH B 2 . ? 21.248 19.663 20.917 1.00 26.18 ? ? ? ? ? ? 1021 HOH A O 1 +HETATM 579 O O . HOH B 2 . ? 25.744 28.721 26.627 1.00 18.71 ? ? ? ? ? ? 1022 HOH A O 1 +HETATM 580 O O . HOH B 2 . ? 8.691 29.441 5.693 1.00 28.32 ? ? ? ? ? ? 1023 HOH A O 1 +HETATM 581 O O . HOH B 2 . ? 30.789 37.281 18.454 1.00 23.96 ? ? ? ? ? ? 1024 HOH A O 1 +HETATM 582 O O . HOH B 2 . ? 30.905 41.821 19.077 1.00 32.78 ? ? ? ? ? ? 1025 HOH A O 1 +HETATM 583 O O . HOH B 2 . ? 28.623 45.786 17.612 1.00 30.03 ? ? ? ? ? ? 1026 HOH A O 1 +HETATM 584 O O . HOH B 2 . ? 24.935 39.275 27.098 1.00 35.54 ? ? ? ? ? ? 1027 HOH A O 1 +HETATM 585 O O . HOH B 2 . ? 23.462 49.242 21.058 1.00 24.52 ? ? ? ? ? ? 1028 HOH A O 1 +HETATM 586 O O . HOH B 2 . ? 9.924 39.544 2.749 1.00 27.80 ? ? ? ? ? ? 1029 HOH A O 1 +HETATM 587 O O . HOH B 2 . ? 28.729 39.834 24.613 1.00 29.16 ? ? ? ? ? ? 1030 HOH A O 1 +HETATM 588 O O . HOH B 2 . ? 13.579 27.260 21.149 1.00 84.05 ? ? ? ? ? ? 1031 HOH A O 1 +HETATM 589 O O . HOH B 2 . ? 23.652 23.003 29.711 1.00 34.06 ? ? ? ? ? ? 1032 HOH A O 1 +HETATM 590 O O . HOH B 2 . ? 25.631 24.685 18.228 1.00 39.61 ? ? ? ? ? ? 1033 HOH A O 1 +HETATM 591 O O . HOH B 2 . ? 17.799 29.236 9.197 1.00 26.02 ? ? ? ? ? ? 1034 HOH A O 1 +HETATM 592 O O . HOH B 2 . ? 23.547 33.102 28.360 1.00 24.30 ? ? ? ? ? ? 1035 HOH A O 1 +HETATM 593 O O . HOH B 2 . ? 16.363 35.102 26.457 1.00 43.03 ? ? ? ? ? ? 1036 HOH A O 1 +HETATM 594 O O . HOH B 2 . ? 24.125 30.214 28.423 1.00 31.89 ? ? ? ? ? ? 1037 HOH A O 1 +HETATM 595 O O . HOH B 2 . ? 33.063 32.577 18.258 1.00 33.77 ? ? ? ? ? ? 1038 HOH A O 1 +HETATM 596 O O . HOH B 2 . ? 29.209 40.826 8.442 1.00 27.15 ? ? ? ? ? ? 1039 HOH A O 1 +HETATM 597 O O . HOH B 2 . ? 10.391 48.156 12.777 1.00 28.18 ? ? ? ? ? ? 1040 HOH A O 1 +HETATM 598 O O . HOH B 2 . ? 12.221 30.930 11.756 1.00 37.83 ? ? ? ? ? ? 1041 HOH A O 1 +HETATM 599 O O . HOH B 2 . ? 18.997 45.418 13.303 1.00 45.45 ? ? ? ? ? ? 1042 HOH A O 1 +HETATM 600 O O . HOH B 2 . ? 16.360 49.482 18.244 1.00 40.84 ? ? ? ? ? ? 1043 HOH A O 1 +HETATM 601 O O . HOH B 2 . ? 27.915 38.760 27.252 1.00 28.47 ? ? ? ? ? ? 1044 HOH A O 1 +HETATM 602 O O . HOH B 2 . ? 28.158 34.837 23.497 1.00 33.21 ? ? ? ? ? ? 1045 HOH A O 1 +HETATM 603 O O . HOH B 2 . ? 21.975 48.757 12.570 1.00 43.49 ? ? ? ? ? ? 1046 HOH A O 1 +HETATM 604 O O . HOH B 2 . ? 27.069 48.275 18.837 1.00 45.27 ? ? ? ? ? ? 1047 HOH A O 1 +HETATM 605 O O . HOH B 2 . ? 30.148 32.964 9.614 1.00 40.65 ? ? ? ? ? ? 1048 HOH A O 1 +HETATM 606 O O . HOH B 2 . ? 21.196 27.107 11.789 1.00 37.13 ? ? ? ? ? ? 1049 HOH A O 1 +HETATM 607 O O . HOH B 2 . ? 8.864 38.227 22.360 1.00 51.22 ? ? ? ? ? ? 1050 HOH A O 1 +HETATM 608 O O . HOH B 2 . ? 13.228 45.007 6.286 1.00 35.22 ? ? ? ? ? ? 1051 HOH A O 1 +HETATM 609 O O . HOH B 2 . ? 18.577 28.344 11.840 1.00 26.01 ? ? ? ? ? ? 1052 HOH A O 1 +HETATM 610 O O . HOH B 2 . ? 20.526 31.891 2.074 1.00 42.96 ? ? ? ? ? ? 1053 HOH A O 1 +HETATM 611 O O . HOH B 2 . ? 25.758 34.472 27.008 1.00 42.18 ? ? ? ? ? ? 1054 HOH A O 1 +HETATM 612 O O . HOH B 2 . ? 7.838 42.380 22.861 1.00 52.25 ? ? ? ? ? ? 1055 HOH A O 1 +HETATM 613 O O . HOH B 2 . ? 20.569 50.052 9.597 1.00 32.67 ? ? ? ? ? ? 1056 HOH A O 1 +HETATM 614 O O . HOH B 2 . ? 13.009 36.362 25.377 1.00 57.03 ? ? ? ? ? ? 1057 HOH A O 1 +HETATM 615 O O . HOH B 2 . ? 19.229 48.467 11.442 1.00 39.61 ? ? ? ? ? ? 1058 HOH A O 1 +HETATM 616 O O . HOH B 2 . ? 17.655 18.464 11.930 1.00 46.26 ? ? ? ? ? ? 1059 HOH A O 1 +HETATM 617 O O . HOH B 2 . ? 30.445 40.241 14.615 1.00 42.89 ? ? ? ? ? ? 1060 HOH A O 1 +HETATM 618 O O . HOH B 2 . ? 9.014 41.676 7.543 1.00 37.51 ? ? ? ? ? ? 1061 HOH A O 1 +HETATM 619 O O . HOH B 2 . ? 3.398 36.556 10.329 1.00 43.89 ? ? ? ? ? ? 1062 HOH A O 1 +HETATM 620 O O . HOH B 2 . ? 31.603 38.138 21.437 1.00 33.80 ? ? ? ? ? ? 1063 HOH A O 1 +HETATM 621 O O . HOH B 2 . ? 16.543 47.103 11.490 1.00 39.36 ? ? ? ? ? ? 1064 HOH A O 1 +HETATM 622 O O . HOH B 2 . ? 12.037 24.714 13.107 1.00 39.23 ? ? ? ? ? ? 1065 HOH A O 1 +HETATM 623 O O . HOH B 2 . ? 7.261 36.306 24.007 1.00 56.18 ? ? ? ? ? ? 1066 HOH A O 1 +HETATM 624 O O . HOH B 2 . ? 5.607 42.442 13.596 1.00 40.41 ? ? ? ? ? ? 1067 HOH A O 1 +HETATM 625 O O . HOH B 2 . ? 23.532 49.788 24.189 1.00 54.62 ? ? ? ? ? ? 1068 HOH A O 1 +HETATM 626 O O . HOH B 2 . ? 30.701 46.187 13.647 1.00 42.89 ? ? ? ? ? ? 1069 HOH A O 1 +HETATM 627 O O . HOH B 2 . ? 32.300 36.531 11.832 1.00 60.41 ? ? ? ? ? ? 1070 HOH A O 1 +HETATM 628 O O . HOH B 2 . ? 34.351 35.009 19.379 1.00 59.49 ? ? ? ? ? ? 1071 HOH A O 1 +HETATM 629 O O . HOH B 2 . ? 9.450 49.006 15.663 1.00 44.77 ? ? ? ? ? ? 1072 HOH A O 1 +HETATM 630 O O . HOH B 2 . ? 29.476 37.267 23.087 1.00 53.80 ? ? ? ? ? ? 1073 HOH A O 1 +HETATM 631 O O . HOH B 2 . ? 13.681 31.440 0.753 1.00 40.69 ? ? ? ? ? ? 1074 HOH A O 1 +HETATM 632 O O . HOH B 2 . ? 26.728 21.941 27.773 1.00 56.42 ? ? ? ? ? ? 1075 HOH A O 1 +HETATM 633 O O . HOH B 2 . ? 10.004 34.063 12.086 1.00 37.89 ? ? ? ? ? ? 1076 HOH A O 1 +HETATM 634 O O . HOH B 2 . ? 30.553 39.203 10.893 1.00 51.16 ? ? ? ? ? ? 1077 HOH A O 1 +HETATM 635 O O . HOH B 2 . ? 23.569 17.799 20.501 1.00 66.90 ? ? ? ? ? ? 1078 HOH A O 1 +HETATM 636 O O . HOH B 2 . ? 10.927 19.731 12.370 1.00 49.19 ? ? ? ? ? ? 1079 HOH A O 1 +HETATM 637 O O . HOH B 2 . ? 17.983 47.329 4.501 1.00 50.08 ? ? ? ? ? ? 1080 HOH A O 1 +HETATM 638 O O . HOH B 2 . ? 8.191 47.481 10.669 1.00 48.81 ? ? ? ? ? ? 1081 HOH A O 1 +HETATM 639 O O . HOH B 2 . ? 32.095 31.237 24.622 1.00 48.03 ? ? ? ? ? ? 1082 HOH A O 1 +HETATM 640 O O . HOH B 2 . ? 11.520 27.290 5.507 1.00 36.56 ? ? ? ? ? ? 1083 HOH A O 1 +HETATM 641 O O . HOH B 2 . ? 13.249 36.425 28.955 1.00 56.49 ? ? ? ? ? ? 1084 HOH A O 1 +HETATM 642 O O . HOH B 2 . ? 15.919 54.510 15.962 1.00 44.02 ? ? ? ? ? ? 1085 HOH A O 1 +HETATM 643 O O . HOH B 2 . ? 11.187 43.000 5.973 1.00 39.42 ? ? ? ? ? ? 1086 HOH A O 1 +HETATM 644 O O . HOH B 2 . ? 16.743 33.111 28.517 1.00 47.11 ? ? ? ? ? ? 1087 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 MSE 1 151 151 MSE MSE A . n +A 1 2 ASP 2 152 152 ASP ASP A . n +A 1 3 ILE 3 153 153 ILE ILE A . n +A 1 4 ARG 4 154 154 ARG ARG A . n +A 1 5 GLN 5 155 155 GLN GLN A . n +A 1 6 GLY 6 156 156 GLY GLY A . n +A 1 7 PRO 7 157 157 PRO PRO A . n +A 1 8 LYS 8 158 158 LYS LYS A . n +A 1 9 GLU 9 159 159 GLU GLU A . n +A 1 10 PRO 10 160 160 PRO PRO A . n +A 1 11 PHE 11 161 161 PHE PHE A . n +A 1 12 ARG 12 162 162 ARG ARG A . n +A 1 13 ASP 13 163 163 ASP ASP A . n +A 1 14 TYR 14 164 164 TYR TYR A . n +A 1 15 VAL 15 165 165 VAL VAL A . n +A 1 16 ASP 16 166 166 ASP ASP A . n +A 1 17 ARG 17 167 167 ARG ARG A . n +A 1 18 PHE 18 168 168 PHE PHE A . n +A 1 19 TYR 19 169 169 TYR TYR A . n +A 1 20 LYS 20 170 170 LYS LYS A . n +A 1 21 THR 21 171 171 THR THR A . n +A 1 22 LEU 22 172 172 LEU LEU A . n +A 1 23 ARG 23 173 173 ARG ARG A . n +A 1 24 ALA 24 174 174 ALA ALA A . n +A 1 25 GLU 25 175 175 GLU GLU A . n +A 1 26 GLN 26 176 176 GLN GLN A . n +A 1 27 ALA 27 177 177 ALA ALA A . n +A 1 28 SER 28 178 178 SER SER A . n +A 1 29 GLN 29 179 179 GLN GLN A . n +A 1 30 GLU 30 180 180 GLU GLU A . n +A 1 31 VAL 31 181 181 VAL VAL A . n +A 1 32 LYS 32 182 182 LYS LYS A . n +A 1 33 ASN 33 183 183 ASN ASN A . n +A 1 34 TRP 34 184 184 TRP TRP A . n +A 1 35 MSE 35 185 185 MSE MSE A . n +A 1 36 THR 36 186 186 THR THR A . n +A 1 37 GLU 37 187 187 GLU GLU A . n +A 1 38 THR 38 188 188 THR THR A . n +A 1 39 LEU 39 189 189 LEU LEU A . n +A 1 40 LEU 40 190 190 LEU LEU A . n +A 1 41 VAL 41 191 191 VAL VAL A . n +A 1 42 GLN 42 192 192 GLN GLN A . n +A 1 43 ASN 43 193 193 ASN ASN A . n +A 1 44 ALA 44 194 194 ALA ALA A . n +A 1 45 ASN 45 195 195 ASN ASN A . n +A 1 46 PRO 46 196 196 PRO PRO A . n +A 1 47 ASP 47 197 197 ASP ASP A . n +A 1 48 CYS 48 198 198 CYS CYS A . n +A 1 49 LYS 49 199 199 LYS LYS A . n +A 1 50 THR 50 200 200 THR THR A . n +A 1 51 ILE 51 201 201 ILE ILE A . n +A 1 52 LEU 52 202 202 LEU LEU A . n +A 1 53 LYS 53 203 203 LYS LYS A . n +A 1 54 ALA 54 204 204 ALA ALA A . n +A 1 55 LEU 55 205 205 LEU LEU A . n +A 1 56 GLY 56 206 206 GLY GLY A . n +A 1 57 PRO 57 207 207 PRO PRO A . n +A 1 58 GLY 58 208 208 GLY GLY A . n +A 1 59 ALA 59 209 209 ALA ALA A . n +A 1 60 THR 60 210 210 THR THR A . n +A 1 61 LEU 61 211 211 LEU LEU A . n +A 1 62 GLU 62 212 212 GLU GLU A . n +A 1 63 GLU 63 213 213 GLU GLU A . n +A 1 64 MSE 64 214 214 MSE MSE A . n +A 1 65 MSE 65 215 215 MSE MSE A . n +A 1 66 THR 66 216 216 THR THR A . n +A 1 67 ALA 67 217 217 ALA ALA A . n +A 1 68 CYS 68 218 218 CYS CYS A . n +A 1 69 GLN 69 219 219 GLN GLN A . n +A 1 70 GLY 70 220 220 GLY GLY A . n +# +loop_ +_software.name +_software.classification +_software.version +_software.citation_id +_software.pdbx_ordinal +DENZO 'data collection' . ? 1 +SCALEPACK 'data reduction' . ? 2 +X-PLOR 'model building' 3.843 ? 3 +X-PLOR refinement 3.843 ? 4 +# +loop_ +_pdbx_version.entry_id +_pdbx_version.revision_date +_pdbx_version.major_version +_pdbx_version.minor_version +_pdbx_version.revision_type +_pdbx_version.details +1A8O 2008-03-24 3 2 'Version format compliance' 'compliance with PDB format V.3.15' +1A8O 2011-07-13 4 0000 'Version format compliance' 'compliance with PDB Exchange Dictionary V4' +# +loop_ +_pdbx_unobs_or_zero_occ_atoms.id +_pdbx_unobs_or_zero_occ_atoms.polymer_flag +_pdbx_unobs_or_zero_occ_atoms.occupancy_flag +_pdbx_unobs_or_zero_occ_atoms.PDB_model_num +_pdbx_unobs_or_zero_occ_atoms.auth_asym_id +_pdbx_unobs_or_zero_occ_atoms.auth_comp_id +_pdbx_unobs_or_zero_occ_atoms.auth_seq_id +_pdbx_unobs_or_zero_occ_atoms.PDB_ins_code +_pdbx_unobs_or_zero_occ_atoms.auth_atom_id +_pdbx_unobs_or_zero_occ_atoms.label_alt_id +1 Y 0 1 A LYS 203 ? CD ? +2 Y 0 1 A LYS 203 ? CE ? +3 Y 0 1 A LYS 203 ? NZ ? +# +_pdbx_struct_assembly.id 1 +_pdbx_struct_assembly.details author_defined_assembly +_pdbx_struct_assembly.method_details ? +_pdbx_struct_assembly.oligomeric_details dimeric +_pdbx_struct_assembly.oligomeric_count 2 +# +_pdbx_struct_assembly_gen.assembly_id 1 +_pdbx_struct_assembly_gen.oper_expression 1,2 +_pdbx_struct_assembly_gen.asym_id_list A,B +# +loop_ +_pdbx_struct_oper_list.id +_pdbx_struct_oper_list.type +_pdbx_struct_oper_list.name +_pdbx_struct_oper_list.symmetry_operation +_pdbx_struct_oper_list.matrix[1][1] +_pdbx_struct_oper_list.matrix[1][2] +_pdbx_struct_oper_list.matrix[1][3] +_pdbx_struct_oper_list.vector[1] +_pdbx_struct_oper_list.matrix[2][1] +_pdbx_struct_oper_list.matrix[2][2] +_pdbx_struct_oper_list.matrix[2][3] +_pdbx_struct_oper_list.vector[2] +_pdbx_struct_oper_list.matrix[3][1] +_pdbx_struct_oper_list.matrix[3][2] +_pdbx_struct_oper_list.matrix[3][3] +_pdbx_struct_oper_list.vector[3] +1 'identity operation' 1_555 x,y,z 1.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 +1.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 1.0000000000 0.0000000000 +2 'crystal symmetry operation' 8_665 -y+1,-x+1,-z+1/2 0.0000000000 -1.0000000000 0.0000000000 41.9800000000 -1.0000000000 +0.0000000000 0.0000000000 41.9800000000 0.0000000000 0.0000000000 -1.0000000000 44.4600000000 +# +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 +B 2 HOH 1 1000 1000 HOH HOH A . +B 2 HOH 2 1001 1001 HOH HOH A . +B 2 HOH 3 1002 1002 HOH HOH A . +B 2 HOH 4 1003 1003 HOH HOH A . +B 2 HOH 5 1004 1004 HOH HOH A . +B 2 HOH 6 1005 1005 HOH HOH A . +B 2 HOH 7 1006 1006 HOH HOH A . +B 2 HOH 8 1007 1007 HOH HOH A . +B 2 HOH 9 1008 1008 HOH HOH A . +B 2 HOH 10 1009 1009 HOH HOH A . +B 2 HOH 11 1010 1010 HOH HOH A . +B 2 HOH 12 1011 1011 HOH HOH A . +B 2 HOH 13 1012 1012 HOH HOH A . +B 2 HOH 14 1013 1013 HOH HOH A . +B 2 HOH 15 1014 1014 HOH HOH A . +B 2 HOH 16 1015 1015 HOH HOH A . +B 2 HOH 17 1016 1016 HOH HOH A . +B 2 HOH 18 1017 1017 HOH HOH A . +B 2 HOH 19 1018 1018 HOH HOH A . +B 2 HOH 20 1019 1019 HOH HOH A . +B 2 HOH 21 1020 1020 HOH HOH A . +B 2 HOH 22 1021 1021 HOH HOH A . +B 2 HOH 23 1022 1022 HOH HOH A . +B 2 HOH 24 1023 1023 HOH HOH A . +B 2 HOH 25 1024 1024 HOH HOH A . +B 2 HOH 26 1025 1025 HOH HOH A . +B 2 HOH 27 1026 1026 HOH HOH A . +B 2 HOH 28 1027 1027 HOH HOH A . +B 2 HOH 29 1028 1028 HOH HOH A . +B 2 HOH 30 1029 1029 HOH HOH A . +B 2 HOH 31 1030 1030 HOH HOH A . +B 2 HOH 32 1031 1031 HOH HOH A . +B 2 HOH 33 1032 1032 HOH HOH A . +B 2 HOH 34 1033 1033 HOH HOH A . +B 2 HOH 35 1034 1034 HOH HOH A . +B 2 HOH 36 1035 1035 HOH HOH A . +B 2 HOH 37 1036 1036 HOH HOH A . +B 2 HOH 38 1037 1037 HOH HOH A . +B 2 HOH 39 1038 1038 HOH HOH A . +B 2 HOH 40 1039 1039 HOH HOH A . +B 2 HOH 41 1040 1040 HOH HOH A . +B 2 HOH 42 1041 1041 HOH HOH A . +B 2 HOH 43 1042 1042 HOH HOH A . +B 2 HOH 44 1043 1043 HOH HOH A . +B 2 HOH 45 1044 1044 HOH HOH A . +B 2 HOH 46 1045 1045 HOH HOH A . +B 2 HOH 47 1046 1046 HOH HOH A . +B 2 HOH 48 1047 1047 HOH HOH A . +B 2 HOH 49 1048 1048 HOH HOH A . +B 2 HOH 50 1049 1049 HOH HOH A . +B 2 HOH 51 1050 1050 HOH HOH A . +B 2 HOH 52 1051 1051 HOH HOH A . +B 2 HOH 53 1052 1052 HOH HOH A . +B 2 HOH 54 1053 1053 HOH HOH A . +B 2 HOH 55 1054 1054 HOH HOH A . +B 2 HOH 56 1055 1055 HOH HOH A . +B 2 HOH 57 1056 1056 HOH HOH A . +B 2 HOH 58 1057 1057 HOH HOH A . +B 2 HOH 59 1058 1058 HOH HOH A . +B 2 HOH 60 1059 1059 HOH HOH A . +B 2 HOH 61 1060 1060 HOH HOH A . +B 2 HOH 62 1061 1061 HOH HOH A . +B 2 HOH 63 1062 1062 HOH HOH A . +B 2 HOH 64 1063 1063 HOH HOH A . +B 2 HOH 65 1064 1064 HOH HOH A . +B 2 HOH 66 1065 1065 HOH HOH A . +B 2 HOH 67 1066 1066 HOH HOH A . +B 2 HOH 68 1067 1067 HOH HOH A . +B 2 HOH 69 1068 1068 HOH HOH A . +B 2 HOH 70 1069 1069 HOH HOH A . +B 2 HOH 71 1070 1070 HOH HOH A . +B 2 HOH 72 1071 1071 HOH HOH A . +B 2 HOH 73 1072 1072 HOH HOH A . +B 2 HOH 74 1073 1073 HOH HOH A . +B 2 HOH 75 1074 1074 HOH HOH A . +B 2 HOH 76 1075 1075 HOH HOH A . +B 2 HOH 77 1076 1076 HOH HOH A . +B 2 HOH 78 1077 1077 HOH HOH A . +B 2 HOH 79 1078 1078 HOH HOH A . +B 2 HOH 80 1079 1079 HOH HOH A . +B 2 HOH 81 1080 1080 HOH HOH A . +B 2 HOH 82 1081 1081 HOH HOH A . +B 2 HOH 83 1082 1082 HOH HOH A . +B 2 HOH 84 1083 1083 HOH HOH A . +B 2 HOH 85 1084 1084 HOH HOH A . +B 2 HOH 86 1085 1085 HOH HOH A . +B 2 HOH 87 1086 1086 HOH HOH A . +B 2 HOH 88 1087 1087 HOH HOH A . +# +loop_ +_pdbx_struct_mod_residue.id +_pdbx_struct_mod_residue.label_asym_id +_pdbx_struct_mod_residue.label_seq_id +_pdbx_struct_mod_residue.label_comp_id +_pdbx_struct_mod_residue.auth_asym_id +_pdbx_struct_mod_residue.auth_seq_id +_pdbx_struct_mod_residue.auth_comp_id +_pdbx_struct_mod_residue.PDB_ins_code +_pdbx_struct_mod_residue.parent_comp_id +_pdbx_struct_mod_residue.details +1 A 1 MSE A 151 MSE ? MET SELENOMETHIONINE +2 A 35 MSE A 185 MSE ? MET SELENOMETHIONINE +3 A 64 MSE A 214 MSE ? MET SELENOMETHIONINE +4 A 65 MSE A 215 MSE ? MET SELENOMETHIONINE +# +_pdbx_validate_torsion.id 1 +_pdbx_validate_torsion.PDB_model_num 1 +_pdbx_validate_torsion.auth_comp_id THR +_pdbx_validate_torsion.auth_asym_id A +_pdbx_validate_torsion.auth_seq_id 188 +_pdbx_validate_torsion.PDB_ins_code ? +_pdbx_validate_torsion.phi -100.08 +_pdbx_validate_torsion.psi -89.70 +# +_pdbx_entity_nonpoly.entity_id 2 +_pdbx_entity_nonpoly.name water +_pdbx_entity_nonpoly.comp_id HOH +# diff --git a/test/test_data/components_stdres.cif b/test/test_data/components_stdres.cif new file mode 100644 index 00000000..ffdfe143 --- /dev/null +++ b/test/test_data/components_stdres.cif @@ -0,0 +1,2586 @@ +data_GLY +# +_chem_comp.id GLY +_chem_comp.name GLYCINE +_chem_comp.type "PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C2 H5 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 75.067 +_chem_comp.one_letter_code G +_chem_comp.three_letter_code GLY +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details Corina +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +GLY N N N 0 1 N N N Y Y N 25.463 35.609 47.047 1.931 0.090 -0.034 N GLY 1 +GLY CA CA C 0 1 N N N Y N N 25.329 37.024 46.850 0.761 -0.799 -0.008 CA GLY 2 +GLY C C C 0 1 N N N Y N Y 26.081 37.335 45.572 -0.498 0.029 -0.005 C GLY 3 +GLY O O O 0 1 N N N Y N Y 27.024 36.627 45.222 -0.429 1.235 -0.023 O GLY 4 +GLY OXT OXT O 0 1 N Y N Y N Y 25.702 38.256 44.874 -1.697 -0.574 0.018 OXT GLY 5 +GLY H H H 0 1 N N N Y Y N 25.494 35.150 46.159 1.910 0.738 0.738 H GLY 6 +GLY H2 HN2 H 0 1 N Y N Y Y N 26.307 35.421 47.549 2.788 -0.442 -0.037 H2 GLY 7 +GLY HA2 HA1 H 0 1 N N N Y N N 24.270 37.305 46.757 0.772 -1.440 -0.889 HA2 GLY 8 +GLY HA3 HA2 H 0 1 N N N Y N N 25.731 37.590 47.703 0.793 -1.415 0.891 HA3 GLY 9 +GLY HXT HXT H 0 1 N Y N Y N Y 26.236 38.300 44.090 -2.477 -0.002 0.019 HXT GLY 10 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +GLY N CA SING N N 1 +GLY N H SING N N 2 +GLY N H2 SING N N 3 +GLY CA C SING N N 4 +GLY CA HA2 SING N N 5 +GLY CA HA3 SING N N 6 +GLY C O DOUB N N 7 +GLY C OXT SING N N 8 +GLY OXT HXT SING N N 9 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +GLY SMILES ACDLabs 10.04 "O=C(O)CN" +GLY SMILES_CANONICAL CACTVS 3.341 "NCC(O)=O" +GLY SMILES CACTVS 3.341 "NCC(O)=O" +GLY SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C(C(=O)O)N" +GLY SMILES "OpenEye OEToolkits" 1.5.0 "C(C(=O)O)N" +GLY InChI InChI 1.03 "InChI=1S/C2H5NO2/c3-1-2(4)5/h1,3H2,(H,4,5)" +GLY InChIKey InChI 1.03 DHMQDGOQFOQNFH-UHFFFAOYSA-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 +GLY "SYSTEMATIC NAME" ACDLabs 10.04 glycine +GLY "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "2-aminoethanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +GLY "Create component" 1999-07-08 RCSB +GLY "Modify descriptor" 2011-06-04 RCSB +GLY "Modify backbone" 2023-11-03 PDBE +# +data_ALA +# +_chem_comp.id ALA +_chem_comp.name ALANINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C3 H7 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 89.093 +_chem_comp.one_letter_code A +_chem_comp.three_letter_code ALA +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +ALA N N N 0 1 N N N Y Y N 2.281 26.213 12.804 -0.966 0.493 1.500 N ALA 1 +ALA CA CA C 0 1 N N S Y N N 1.169 26.942 13.411 0.257 0.418 0.692 CA ALA 2 +ALA C C C 0 1 N N N Y N Y 1.539 28.344 13.874 -0.094 0.017 -0.716 C ALA 3 +ALA O O O 0 1 N N N Y N Y 2.709 28.647 14.114 -1.056 -0.682 -0.923 O ALA 4 +ALA CB CB C 0 1 N N N N N N 0.601 26.143 14.574 1.204 -0.620 1.296 CB ALA 5 +ALA OXT OXT O 0 1 N Y N Y N Y 0.523 29.194 13.997 0.661 0.439 -1.742 OXT ALA 6 +ALA H H H 0 1 N N N Y Y N 2.033 25.273 12.493 -1.383 -0.425 1.482 H ALA 7 +ALA H2 HN2 H 0 1 N Y N Y Y N 3.080 26.184 13.436 -0.676 0.661 2.452 H2 ALA 8 +ALA HA HA H 0 1 N N N Y N N 0.399 27.067 12.613 0.746 1.392 0.682 HA ALA 9 +ALA HB1 1HB H 0 1 N N N N N N -0.247 26.699 15.037 1.459 -0.330 2.316 HB1 ALA 10 +ALA HB2 2HB H 0 1 N N N N N N 0.308 25.110 14.270 0.715 -1.594 1.307 HB2 ALA 11 +ALA HB3 3HB H 0 1 N N N N N N 1.384 25.876 15.321 2.113 -0.676 0.697 HB3 ALA 12 +ALA HXT HXT H 0 1 N Y N Y N Y 0.753 30.069 14.286 0.435 0.182 -2.647 HXT ALA 13 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +ALA N CA SING N N 1 +ALA N H SING N N 2 +ALA N H2 SING N N 3 +ALA CA C SING N N 4 +ALA CA CB SING N N 5 +ALA CA HA SING N N 6 +ALA C O DOUB N N 7 +ALA C OXT SING N N 8 +ALA CB HB1 SING N N 9 +ALA CB HB2 SING N N 10 +ALA CB HB3 SING N N 11 +ALA OXT HXT SING N N 12 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +ALA SMILES ACDLabs 10.04 "O=C(O)C(N)C" +ALA SMILES_CANONICAL CACTVS 3.341 "C[C@H](N)C(O)=O" +ALA SMILES CACTVS 3.341 "C[CH](N)C(O)=O" +ALA SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C[C@@H](C(=O)O)N" +ALA SMILES "OpenEye OEToolkits" 1.5.0 "CC(C(=O)O)N" +ALA InChI InChI 1.03 "InChI=1S/C3H7NO2/c1-2(4)3(5)6/h2H,4H2,1H3,(H,5,6)/t2-/m0/s1" +ALA InChIKey InChI 1.03 QNAYBMKLOCPYGJ-REOHCLBHSA-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 +ALA "SYSTEMATIC NAME" ACDLabs 10.04 L-alanine +ALA "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-aminopropanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +ALA "Create component" 1999-07-08 RCSB +ALA "Modify descriptor" 2011-06-04 RCSB +ALA "Modify backbone" 2023-11-03 PDBE +# +data_VAL +# +_chem_comp.id VAL +_chem_comp.name VALINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C5 H11 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 117.146 +_chem_comp.one_letter_code V +_chem_comp.three_letter_code VAL +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +VAL N N N 0 1 N N N Y Y N 11.009 2.661 48.464 1.564 -0.642 0.454 N VAL 1 +VAL CA CA C 0 1 N N S Y N N 10.415 3.985 48.550 0.145 -0.698 0.079 CA VAL 2 +VAL C C C 0 1 N N N Y N Y 10.002 4.429 49.975 -0.037 -0.093 -1.288 C VAL 3 +VAL O O O 0 1 N N N Y N Y 9.312 3.707 50.680 0.703 0.784 -1.664 O VAL 4 +VAL CB CB C 0 1 N N N N N N 9.230 4.107 47.566 -0.682 0.086 1.098 CB VAL 5 +VAL CG1 CG1 C 0 1 N N N N N N 8.585 5.457 47.708 -0.497 -0.528 2.487 CG1 VAL 6 +VAL CG2 CG2 C 0 1 N N N N N N 9.689 3.877 46.132 -0.218 1.543 1.119 CG2 VAL 7 +VAL OXT OXT O 0 1 N Y N Y N Y 10.377 5.639 50.362 -1.022 -0.529 -2.089 OXT VAL 8 +VAL H H H 0 1 N N N Y Y N 11.281 2.368 47.525 1.825 0.332 0.455 H VAL 9 +VAL H2 HN2 H 0 1 N Y N Y Y N 10.386 1.968 48.881 1.624 -0.959 1.410 H2 VAL 10 +VAL HA HA H 0 1 N N N Y N N 11.226 4.692 48.259 -0.186 -1.736 0.064 HA VAL 11 +VAL HB HB H 0 1 N N N N N N 8.478 3.321 47.813 -1.736 0.044 0.820 HB VAL 12 +VAL HG11 1HG1 H 0 0 N N N N N N 7.729 5.545 46.997 -1.087 0.031 3.214 HG11 VAL 13 +VAL HG12 2HG1 H 0 0 N N N N N N 8.279 5.666 48.759 -0.828 -1.566 2.472 HG12 VAL 14 +VAL HG13 3HG1 H 0 0 N N N N N N 9.319 6.287 47.584 0.555 -0.486 2.765 HG13 VAL 15 +VAL HG21 1HG2 H 0 0 N N N N N N 8.833 3.965 45.421 0.835 1.585 1.397 HG21 VAL 16 +VAL HG22 2HG2 H 0 0 N N N N N N 10.527 4.557 45.853 -0.350 1.981 0.130 HG22 VAL 17 +VAL HG23 3HG2 H 0 0 N N N N N N 10.218 2.902 46.020 -0.808 2.103 1.845 HG23 VAL 18 +VAL HXT HXT H 0 1 N Y N Y N Y 10.123 5.911 51.236 -1.139 -0.140 -2.967 HXT VAL 19 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +VAL N CA SING N N 1 +VAL N H SING N N 2 +VAL N H2 SING N N 3 +VAL CA C SING N N 4 +VAL CA CB SING N N 5 +VAL CA HA SING N N 6 +VAL C O DOUB N N 7 +VAL C OXT SING N N 8 +VAL CB CG1 SING N N 9 +VAL CB CG2 SING N N 10 +VAL CB HB SING N N 11 +VAL CG1 HG11 SING N N 12 +VAL CG1 HG12 SING N N 13 +VAL CG1 HG13 SING N N 14 +VAL CG2 HG21 SING N N 15 +VAL CG2 HG22 SING N N 16 +VAL CG2 HG23 SING N N 17 +VAL OXT HXT SING N N 18 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +VAL SMILES ACDLabs 10.04 "O=C(O)C(N)C(C)C" +VAL SMILES_CANONICAL CACTVS 3.341 "CC(C)[C@H](N)C(O)=O" +VAL SMILES CACTVS 3.341 "CC(C)[CH](N)C(O)=O" +VAL SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "CC(C)[C@@H](C(=O)O)N" +VAL SMILES "OpenEye OEToolkits" 1.5.0 "CC(C)C(C(=O)O)N" +VAL InChI InChI 1.03 "InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1" +VAL InChIKey InChI 1.03 KZSNJWFQEVHDMF-BYPYZUCNSA-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 +VAL "SYSTEMATIC NAME" ACDLabs 10.04 L-valine +VAL "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-3-methyl-butanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +VAL "Create component" 1999-07-08 RCSB +VAL "Modify descriptor" 2011-06-04 RCSB +VAL "Modify backbone" 2023-11-03 PDBE +# +data_LEU +# +_chem_comp.id LEU +_chem_comp.name LEUCINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C6 H13 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 131.173 +_chem_comp.one_letter_code L +_chem_comp.three_letter_code LEU +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +LEU N N N 0 1 N N N Y Y N 16.293 15.907 52.123 -1.661 0.627 -0.406 N LEU 1 +LEU CA CA C 0 1 N N S Y N N 15.121 16.772 51.804 -0.205 0.441 -0.467 CA LEU 2 +LEU C C C 0 1 N N N Y N Y 13.865 15.975 51.517 0.180 -0.055 -1.836 C LEU 3 +LEU O O O 0 1 N N N Y N Y 12.808 16.576 51.643 -0.591 -0.731 -2.474 O LEU 4 +LEU CB CB C 0 1 N N N N N N 15.395 17.657 50.575 0.221 -0.583 0.585 CB LEU 5 +LEU CG CG C 0 1 N N N N N N 16.407 18.798 50.632 -0.170 -0.079 1.976 CG LEU 6 +LEU CD1 CD1 C 0 1 N N N N N N 16.398 19.395 52.065 0.256 -1.104 3.029 CD1 LEU 7 +LEU CD2 CD2 C 0 1 N N N N N N 17.792 18.247 50.210 0.526 1.254 2.250 CD2 LEU 8 +LEU OXT OXT O 0 1 N Y N Y N Y 13.877 14.786 51.211 1.382 0.254 -2.348 OXT LEU 9 +LEU H H H 0 1 N N N Y Y N 17.138 16.443 52.316 -2.077 -0.272 -0.592 H LEU 10 +LEU H2 HN2 H 0 1 N Y N Y Y N 16.454 15.223 51.383 -1.884 0.858 0.550 H2 LEU 11 +LEU HA HA H 0 1 N N N Y N N 14.962 17.396 52.714 0.291 1.391 -0.271 HA LEU 12 +LEU HB2 1HB H 0 1 N N N N N N 15.673 16.990 49.725 1.301 -0.722 0.540 HB2 LEU 13 +LEU HB3 2HB H 0 1 N N N N N N 14.421 18.076 50.228 -0.275 -1.534 0.390 HB3 LEU 14 +LEU HG HG H 0 1 N N N N N N 16.148 19.623 49.927 -1.250 0.058 2.021 HG LEU 15 +LEU HD11 1HD1 H 0 0 N N N N N N 17.137 20.228 52.106 -0.022 -0.745 4.019 HD11 LEU 16 +LEU HD12 2HD1 H 0 0 N N N N N N 15.379 19.710 52.390 -0.240 -2.055 2.833 HD12 LEU 17 +LEU HD13 3HD1 H 0 0 N N N N N N 16.577 18.624 52.850 1.336 -1.243 2.984 HD13 LEU 18 +LEU HD21 1HD2 H 0 0 N N N N N N 18.531 19.080 50.251 1.606 1.115 2.205 HD21 LEU 19 +LEU HD22 2HD2 H 0 0 N N N N N N 18.105 17.366 50.817 0.222 1.984 1.500 HD22 LEU 20 +LEU HD23 3HD2 H 0 0 N N N N N N 17.768 17.745 49.214 0.247 1.613 3.241 HD23 LEU 21 +LEU HXT HXT H 0 1 N Y N Y N Y 13.089 14.286 51.031 1.630 -0.064 -3.226 HXT LEU 22 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +LEU N CA SING N N 1 +LEU N H SING N N 2 +LEU N H2 SING N N 3 +LEU CA C SING N N 4 +LEU CA CB SING N N 5 +LEU CA HA SING N N 6 +LEU C O DOUB N N 7 +LEU C OXT SING N N 8 +LEU CB CG SING N N 9 +LEU CB HB2 SING N N 10 +LEU CB HB3 SING N N 11 +LEU CG CD1 SING N N 12 +LEU CG CD2 SING N N 13 +LEU CG HG SING N N 14 +LEU CD1 HD11 SING N N 15 +LEU CD1 HD12 SING N N 16 +LEU CD1 HD13 SING N N 17 +LEU CD2 HD21 SING N N 18 +LEU CD2 HD22 SING N N 19 +LEU CD2 HD23 SING N N 20 +LEU OXT HXT SING N N 21 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +LEU SMILES ACDLabs 10.04 "O=C(O)C(N)CC(C)C" +LEU SMILES_CANONICAL CACTVS 3.341 "CC(C)C[C@H](N)C(O)=O" +LEU SMILES CACTVS 3.341 "CC(C)C[CH](N)C(O)=O" +LEU SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "CC(C)C[C@@H](C(=O)O)N" +LEU SMILES "OpenEye OEToolkits" 1.5.0 "CC(C)CC(C(=O)O)N" +LEU InChI InChI 1.03 "InChI=1S/C6H13NO2/c1-4(2)3-5(7)6(8)9/h4-5H,3,7H2,1-2H3,(H,8,9)/t5-/m0/s1" +LEU InChIKey InChI 1.03 ROHFNLRQFUQHCH-YFKPBYRVSA-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 +LEU "SYSTEMATIC NAME" ACDLabs 10.04 L-leucine +LEU "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-4-methyl-pentanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +LEU "Create component" 1999-07-08 EBI +LEU "Modify descriptor" 2011-06-04 RCSB +LEU "Modify backbone" 2023-11-03 PDBE +# +data_ILE +# +_chem_comp.id ILE +_chem_comp.name ISOLEUCINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C6 H13 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 131.173 +_chem_comp.one_letter_code I +_chem_comp.three_letter_code ILE +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +ILE N N N 0 1 N N N Y Y N 52.625 76.235 68.049 -1.944 0.335 -0.343 N ILE 1 +ILE CA CA C 0 1 N N S Y N N 52.964 77.620 67.705 -0.487 0.519 -0.369 CA ILE 2 +ILE C C C 0 1 N N N Y N Y 51.910 78.234 66.791 0.066 -0.032 -1.657 C ILE 3 +ILE O O O 0 1 N N N Y N Y 51.409 77.508 65.911 -0.484 -0.958 -2.203 O ILE 4 +ILE CB CB C 0 1 N N S N N N 54.346 77.727 66.970 0.140 -0.219 0.814 CB ILE 5 +ILE CG1 CG1 C 0 1 N N N N N N 54.852 79.179 66.992 -0.421 0.341 2.122 CG1 ILE 6 +ILE CG2 CG2 C 0 1 N N N N N N 54.218 77.237 65.524 1.658 -0.027 0.788 CG2 ILE 7 +ILE CD1 CD1 C 0 1 N N N N N N 56.126 79.382 66.170 0.206 -0.397 3.305 CD1 ILE 8 +ILE OXT OXT O 0 1 N Y N Y N Y 51.631 79.444 66.958 1.171 0.504 -2.197 OXT ILE 9 +ILE H H H 0 1 N N N Y Y N 53.330 75.824 68.660 -2.112 -0.656 -0.410 H ILE 10 +ILE H2 HN2 H 0 1 N Y N Y Y N 52.475 75.667 67.215 -2.256 0.622 0.572 H2 ILE 11 +ILE HA HA H 0 1 N N N Y N N 53.012 78.169 68.673 -0.253 1.582 -0.299 HA ILE 12 +ILE HB HB H 0 1 N N N N N N 55.082 77.082 67.504 -0.092 -1.281 0.744 HB ILE 13 +ILE HG12 1HG1 H 0 0 N N N N N N 54.051 79.883 66.666 -1.502 0.204 2.141 HG12 ILE 14 +ILE HG13 2HG1 H 0 0 N N N N N N 54.993 79.535 68.039 -0.188 1.403 2.192 HG13 ILE 15 +ILE HG21 1HG2 H 0 0 N N N N N N 55.200 77.313 65.001 1.891 1.034 0.857 HG21 ILE 16 +ILE HG22 2HG2 H 0 0 N N N N N N 53.796 76.206 65.469 2.105 -0.554 1.631 HG22 ILE 17 +ILE HG23 3HG2 H 0 0 N N N N N N 53.411 77.773 64.972 2.059 -0.427 -0.143 HG23 ILE 18 +ILE HD11 1HD1 H 0 0 N N N N N N 56.492 80.434 66.185 -0.193 0.001 4.237 HD11 ILE 19 +ILE HD12 2HD1 H 0 0 N N N N N N 56.926 78.677 66.496 -0.026 -1.460 3.235 HD12 ILE 20 +ILE HD13 3HD1 H 0 0 N N N N N N 55.984 79.026 65.122 1.287 -0.261 3.286 HD13 ILE 21 +ILE HXT HXT H 0 1 N Y N Y N Y 50.974 79.826 66.388 1.527 0.150 -3.024 HXT ILE 22 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +ILE N CA SING N N 1 +ILE N H SING N N 2 +ILE N H2 SING N N 3 +ILE CA C SING N N 4 +ILE CA CB SING N N 5 +ILE CA HA SING N N 6 +ILE C O DOUB N N 7 +ILE C OXT SING N N 8 +ILE CB CG1 SING N N 9 +ILE CB CG2 SING N N 10 +ILE CB HB SING N N 11 +ILE CG1 CD1 SING N N 12 +ILE CG1 HG12 SING N N 13 +ILE CG1 HG13 SING N N 14 +ILE CG2 HG21 SING N N 15 +ILE CG2 HG22 SING N N 16 +ILE CG2 HG23 SING N N 17 +ILE CD1 HD11 SING N N 18 +ILE CD1 HD12 SING N N 19 +ILE CD1 HD13 SING N N 20 +ILE OXT HXT SING N N 21 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +ILE SMILES ACDLabs 10.04 "O=C(O)C(N)C(C)CC" +ILE SMILES_CANONICAL CACTVS 3.341 "CC[C@H](C)[C@H](N)C(O)=O" +ILE SMILES CACTVS 3.341 "CC[CH](C)[CH](N)C(O)=O" +ILE SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "CC[C@H](C)[C@@H](C(=O)O)N" +ILE SMILES "OpenEye OEToolkits" 1.5.0 "CCC(C)C(C(=O)O)N" +ILE InChI InChI 1.03 "InChI=1S/C6H13NO2/c1-3-4(2)5(7)6(8)9/h4-5H,3,7H2,1-2H3,(H,8,9)/t4-,5-/m0/s1" +ILE InChIKey InChI 1.03 AGPKZVBTJJNPAG-WHFBIAKZSA-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 +ILE "SYSTEMATIC NAME" ACDLabs 10.04 L-isoleucine +ILE "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S,3S)-2-amino-3-methyl-pentanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +ILE "Create component" 1999-07-08 RCSB +ILE "Modify descriptor" 2011-06-04 RCSB +ILE "Modify backbone" 2023-11-03 PDBE +# +data_THR +# +_chem_comp.id THR +_chem_comp.name THREONINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C4 H9 N O3" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 119.119 +_chem_comp.one_letter_code T +_chem_comp.three_letter_code THR +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +THR N N N 0 1 N N N Y Y N 36.241 32.034 31.861 1.543 -0.702 0.430 N THR 1 +THR CA CA C 0 1 N N S Y N N 35.010 31.223 31.876 0.122 -0.706 0.056 CA THR 2 +THR C C C 0 1 N N N Y N Y 35.213 30.209 30.769 -0.038 -0.090 -1.309 C THR 3 +THR O O O 0 1 N N N Y N Y 35.564 30.621 29.635 0.732 0.761 -1.683 O THR 4 +THR CB CB C 0 1 N N R N N N 33.755 32.073 31.570 -0.675 0.104 1.079 CB THR 5 +THR OG1 OG1 O 0 1 N N N N N N 33.730 33.235 32.412 -0.193 1.448 1.103 OG1 THR 6 +THR CG2 CG2 C 0 1 N N N N N N 32.482 31.262 31.863 -0.511 -0.521 2.466 CG2 THR 7 +THR OXT OXT O 0 1 N Y N Y N Y 35.042 29.014 31.057 -1.039 -0.488 -2.110 OXT THR 8 +THR H H H 0 1 N N N Y Y N 36.104 32.716 32.606 1.839 0.261 0.434 H THR 9 +THR H2 HN2 H 0 1 N Y N Y Y N 36.457 32.445 30.953 1.593 -1.025 1.385 H2 THR 10 +THR HA HA H 0 1 N N N Y N N 34.842 30.763 32.878 -0.245 -1.732 0.038 HA THR 11 +THR HB HB H 0 1 N N N N N N 33.792 32.367 30.495 -1.729 0.101 0.802 HB THR 12 +THR HG1 HG1 H 0 1 N N N N N N 32.959 33.757 32.224 0.740 1.406 1.352 HG1 THR 13 +THR HG21 1HG2 H 0 0 N N N N N N 31.577 31.874 31.642 -1.080 0.056 3.194 HG21 THR 14 +THR HG22 2HG2 H 0 0 N N N N N N 32.471 30.290 31.315 -0.879 -1.547 2.448 HG22 THR 15 +THR HG23 3HG2 H 0 0 N N N N N N 32.471 30.863 32.904 0.542 -0.518 2.743 HG23 THR 16 +THR HXT HXT H 0 1 N Y N Y N Y 35.169 28.378 30.362 -1.143 -0.092 -2.986 HXT THR 17 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +THR N CA SING N N 1 +THR N H SING N N 2 +THR N H2 SING N N 3 +THR CA C SING N N 4 +THR CA CB SING N N 5 +THR CA HA SING N N 6 +THR C O DOUB N N 7 +THR C OXT SING N N 8 +THR CB OG1 SING N N 9 +THR CB CG2 SING N N 10 +THR CB HB SING N N 11 +THR OG1 HG1 SING N N 12 +THR CG2 HG21 SING N N 13 +THR CG2 HG22 SING N N 14 +THR CG2 HG23 SING N N 15 +THR OXT HXT SING N N 16 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +THR SMILES ACDLabs 10.04 "O=C(O)C(N)C(O)C" +THR SMILES_CANONICAL CACTVS 3.341 "C[C@@H](O)[C@H](N)C(O)=O" +THR SMILES CACTVS 3.341 "C[CH](O)[CH](N)C(O)=O" +THR SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C[C@H]([C@@H](C(=O)O)N)O" +THR SMILES "OpenEye OEToolkits" 1.5.0 "CC(C(C(=O)O)N)O" +THR InChI InChI 1.03 "InChI=1S/C4H9NO3/c1-2(6)3(5)4(7)8/h2-3,6H,5H2,1H3,(H,7,8)/t2-,3+/m1/s1" +THR InChIKey InChI 1.03 AYFVYJQAPQTCCC-GBXIJSLDSA-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 +THR "SYSTEMATIC NAME" ACDLabs 10.04 L-threonine +THR "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S,3R)-2-amino-3-hydroxy-butanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +THR "Create component" 1999-07-08 EBI +THR "Modify descriptor" 2011-06-04 RCSB +THR "Modify backbone" 2023-11-03 PDBE +# +data_SER +# +_chem_comp.id SER +_chem_comp.name SERINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C3 H7 N O3" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces SEG +_chem_comp.formula_weight 105.093 +_chem_comp.one_letter_code S +_chem_comp.three_letter_code SER +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +SER N N N 0 1 N N N Y Y N 88.198 -7.658 -9.979 1.525 0.493 -0.608 N SER 1 +SER CA CA C 0 1 N N S Y N N 87.782 -7.276 -11.358 0.100 0.469 -0.252 CA SER 2 +SER C C C 0 1 N N N Y N Y 88.571 -6.062 -11.818 -0.053 0.004 1.173 C SER 3 +SER O O O 0 1 N N N Y N Y 89.008 -5.296 -10.944 0.751 -0.760 1.649 O SER 4 +SER CB CB C 0 1 N N N N N N 86.286 -6.966 -11.391 -0.642 -0.489 -1.184 CB SER 5 +SER OG OG O 0 1 N N N N N N 85.543 -8.096 -10.989 -0.496 -0.049 -2.535 OG SER 6 +SER OXT OXT O 0 1 N Y N Y N Y 88.737 -5.884 -13.035 -1.084 0.440 1.913 OXT SER 7 +SER H H H 0 1 N N N Y Y N 87.668 -8.473 -9.670 1.867 -0.449 -0.499 H SER 8 +SER H2 HN2 H 0 1 N Y N Y Y N 88.118 -6.879 -9.325 1.574 0.707 -1.593 H2 SER 9 +SER HA HA H 0 1 N N N Y N N 87.988 -8.129 -12.045 -0.316 1.471 -0.354 HA SER 10 +SER HB2 1HB H 0 1 N N N N N N 86.034 -6.065 -10.783 -0.225 -1.491 -1.081 HB2 SER 11 +SER HB3 2HB H 0 1 N N N N N N 85.961 -6.588 -12.388 -1.699 -0.507 -0.920 HB3 SER 12 +SER HG HG H 0 1 N N N N N N 84.613 -7.903 -11.009 -0.978 -0.679 -3.088 HG SER 13 +SER HXT HXT H 0 1 N Y N Y N Y 89.230 -5.124 -13.322 -1.183 0.142 2.828 HXT SER 14 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +SER N CA SING N N 1 +SER N H SING N N 2 +SER N H2 SING N N 3 +SER CA C SING N N 4 +SER CA CB SING N N 5 +SER CA HA SING N N 6 +SER C O DOUB N N 7 +SER C OXT SING N N 8 +SER CB OG SING N N 9 +SER CB HB2 SING N N 10 +SER CB HB3 SING N N 11 +SER OG HG SING N N 12 +SER OXT HXT SING N N 13 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +SER SMILES ACDLabs 10.04 "O=C(O)C(N)CO" +SER SMILES_CANONICAL CACTVS 3.341 "N[C@@H](CO)C(O)=O" +SER SMILES CACTVS 3.341 "N[CH](CO)C(O)=O" +SER SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C([C@@H](C(=O)O)N)O" +SER SMILES "OpenEye OEToolkits" 1.5.0 "C(C(C(=O)O)N)O" +SER InChI InChI 1.03 "InChI=1S/C3H7NO3/c4-2(1-5)3(6)7/h2,5H,1,4H2,(H,6,7)/t2-/m0/s1" +SER InChIKey InChI 1.03 MTCFGRXMJLQNBG-REOHCLBHSA-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 +SER "SYSTEMATIC NAME" ACDLabs 10.04 L-serine +SER "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-3-hydroxy-propanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +SER "Create component" 1999-07-08 RCSB +SER "Modify descriptor" 2011-06-04 RCSB +SER "Modify backbone" 2023-11-03 PDBE +# +data_MET +# +_chem_comp.id MET +_chem_comp.name METHIONINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C5 H11 N O2 S" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 149.211 +_chem_comp.one_letter_code M +_chem_comp.three_letter_code MET +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +MET N N N 0 1 N N N Y Y N 16.161 15.756 51.903 -1.816 0.142 -1.166 N MET 1 +MET CA CA C 0 1 N N S Y N N 15.084 16.739 51.596 -0.392 0.499 -1.214 CA MET 2 +MET C C C 0 1 N N N Y N Y 13.846 15.930 51.367 0.206 0.002 -2.504 C MET 3 +MET O O O 0 1 N N N Y N Y 12.795 16.510 51.424 -0.236 -0.989 -3.033 O MET 4 +MET CB CB C 0 1 N N N N N N 15.401 17.530 50.317 0.334 -0.145 -0.032 CB MET 5 +MET CG CG C 0 1 N N N N N N 16.183 18.846 50.502 -0.273 0.359 1.277 CG MET 6 +MET SD SD S 0 1 N N N N N N 17.852 18.653 51.063 0.589 -0.405 2.678 SD MET 7 +MET CE CE C 0 1 N N N N N N 18.614 17.814 49.556 -0.314 0.353 4.056 CE MET 8 +MET OXT OXT O 0 1 N Y N Y N Y 13.865 14.721 51.154 1.232 0.661 -3.066 OXT MET 9 +MET H H H 0 1 N N N Y Y N 17.004 16.307 52.059 -1.865 -0.864 -1.220 H MET 10 +MET H2 HN2 H 0 1 N Y N Y Y N 16.270 15.035 51.189 -2.149 0.399 -0.248 H2 MET 11 +MET HA HA H 0 1 N N N Y N N 14.975 17.472 52.429 -0.287 1.582 -1.158 HA MET 12 +MET HB2 1HB H 0 1 N N N N N N 15.935 16.873 49.591 1.391 0.119 -0.068 HB2 MET 13 +MET HB3 2HB H 0 1 N N N N N N 14.459 17.728 49.754 0.229 -1.229 -0.088 HB3 MET 14 +MET HG2 1HG H 0 1 N N N N N N 16.160 19.442 49.560 -1.330 0.094 1.313 HG2 MET 15 +MET HG3 2HG H 0 1 N N N N N N 15.625 19.532 51.181 -0.168 1.442 1.333 HG3 MET 16 +MET HE1 1HE H 0 1 N N N N N N 19.664 17.692 49.909 0.090 -0.010 5.000 HE1 MET 17 +MET HE2 2HE H 0 1 N N N N N N 18.107 16.882 49.211 -0.207 1.436 4.008 HE2 MET 18 +MET HE3 3HE H 0 1 N N N N N N 18.487 18.349 48.586 -1.369 0.088 3.988 HE3 MET 19 +MET HXT HXT H 0 1 N Y N Y N Y 13.079 14.207 51.008 1.616 0.342 -3.894 HXT MET 20 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +MET N CA SING N N 1 +MET N H SING N N 2 +MET N H2 SING N N 3 +MET CA C SING N N 4 +MET CA CB SING N N 5 +MET CA HA SING N N 6 +MET C O DOUB N N 7 +MET C OXT SING N N 8 +MET CB CG SING N N 9 +MET CB HB2 SING N N 10 +MET CB HB3 SING N N 11 +MET CG SD SING N N 12 +MET CG HG2 SING N N 13 +MET CG HG3 SING N N 14 +MET SD CE SING N N 15 +MET CE HE1 SING N N 16 +MET CE HE2 SING N N 17 +MET CE HE3 SING N N 18 +MET OXT HXT SING N N 19 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +MET SMILES ACDLabs 10.04 "O=C(O)C(N)CCSC" +MET SMILES_CANONICAL CACTVS 3.341 "CSCC[C@H](N)C(O)=O" +MET SMILES CACTVS 3.341 "CSCC[CH](N)C(O)=O" +MET SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "CSCC[C@@H](C(=O)O)N" +MET SMILES "OpenEye OEToolkits" 1.5.0 "CSCCC(C(=O)O)N" +MET InChI InChI 1.03 "InChI=1S/C5H11NO2S/c1-9-3-2-4(6)5(7)8/h4H,2-3,6H2,1H3,(H,7,8)/t4-/m0/s1" +MET InChIKey InChI 1.03 FFEARJCKVFRZRR-BYPYZUCNSA-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 +MET "SYSTEMATIC NAME" ACDLabs 10.04 L-methionine +MET "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-4-methylsulfanyl-butanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +MET "Create component" 1999-07-08 EBI +MET "Modify descriptor" 2011-06-04 RCSB +MET "Modify backbone" 2023-11-03 PDBE +# +data_CYS +# +_chem_comp.id CYS +_chem_comp.name CYSTEINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C3 H7 N O2 S" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces BTC +_chem_comp.formula_weight 121.158 +_chem_comp.one_letter_code C +_chem_comp.three_letter_code CYS +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +CYS N N N 0 1 N N N Y Y N 22.585 13.716 37.715 1.585 0.483 -0.081 N CYS 1 +CYS CA CA C 0 1 N N R Y N N 22.372 13.468 39.168 0.141 0.450 0.186 CA CYS 2 +CYS C C C 0 1 N N N Y N Y 21.806 14.686 39.893 -0.095 0.006 1.606 C CYS 3 +CYS O O O 0 1 N N N Y N Y 22.614 15.553 40.277 0.685 -0.742 2.143 O CYS 4 +CYS CB CB C 0 1 N N N N N N 23.683 13.019 39.828 -0.533 -0.530 -0.774 CB CYS 5 +CYS SG SG S 0 1 N N N N N N 25.202 13.440 38.921 -0.247 0.004 -2.484 SG CYS 6 +CYS OXT OXT O 0 1 N Y N Y N Y 20.565 14.747 40.076 -1.174 0.443 2.275 OXT CYS 7 +CYS H H H 0 1 N N N Y Y N 22.963 12.902 37.230 1.928 -0.454 0.063 H CYS 8 +CYS H2 HN2 H 0 1 N Y N Y Y N 23.171 14.537 37.565 1.693 0.682 -1.065 H2 CYS 9 +CYS HA HA H 0 1 N N N Y N N 21.614 12.654 39.253 -0.277 1.446 0.042 HA CYS 10 +CYS HB2 1HB H 0 1 N N N N N N 23.739 13.412 40.869 -0.114 -1.526 -0.630 HB2 CYS 11 +CYS HB3 2HB H 0 1 N N N N N N 23.651 11.923 40.031 -1.604 -0.554 -0.575 HB3 CYS 12 +CYS HG HG H 0 1 N N N N N N 26.013 13.162 39.329 -0.904 -0.965 -3.145 HG CYS 13 +CYS HXT HXT H 0 1 N Y N Y N Y 20.212 15.505 40.527 -1.326 0.158 3.186 HXT CYS 14 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +CYS N CA SING N N 1 +CYS N H SING N N 2 +CYS N H2 SING N N 3 +CYS CA C SING N N 4 +CYS CA CB SING N N 5 +CYS CA HA SING N N 6 +CYS C O DOUB N N 7 +CYS C OXT SING N N 8 +CYS CB SG SING N N 9 +CYS CB HB2 SING N N 10 +CYS CB HB3 SING N N 11 +CYS SG HG SING N N 12 +CYS OXT HXT SING N N 13 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +CYS SMILES ACDLabs 10.04 "O=C(O)C(N)CS" +CYS SMILES_CANONICAL CACTVS 3.341 "N[C@@H](CS)C(O)=O" +CYS SMILES CACTVS 3.341 "N[CH](CS)C(O)=O" +CYS SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C([C@@H](C(=O)O)N)S" +CYS SMILES "OpenEye OEToolkits" 1.5.0 "C(C(C(=O)O)N)S" +CYS InChI InChI 1.03 "InChI=1S/C3H7NO2S/c4-2(1-7)3(5)6/h2,7H,1,4H2,(H,5,6)/t2-/m0/s1" +CYS InChIKey InChI 1.03 XUJNEKJLAYXESH-REOHCLBHSA-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 +CYS "SYSTEMATIC NAME" ACDLabs 10.04 L-cysteine +CYS "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2R)-2-amino-3-sulfanyl-propanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +CYS "Create component" 1999-07-08 RCSB +CYS "Modify descriptor" 2011-06-04 RCSB +CYS "Modify backbone" 2023-11-03 PDBE +# +data_PRO +# +_chem_comp.id PRO +_chem_comp.name PROLINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C5 H9 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 115.130 +_chem_comp.one_letter_code P +_chem_comp.three_letter_code PRO +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +PRO N N N 0 1 N N N Y Y N 39.165 37.768 82.966 -0.816 1.108 0.254 N PRO 1 +PRO CA CA C 0 1 N N S Y N N 38.579 38.700 82.008 0.001 -0.107 0.509 CA PRO 2 +PRO C C C 0 1 N N N Y N Y 37.217 39.126 82.515 1.408 0.091 0.005 C PRO 3 +PRO O O O 0 1 N N N Y N Y 36.256 38.332 82.370 1.650 0.980 -0.777 O PRO 4 +PRO CB CB C 0 1 N N N N N N 38.491 37.874 80.720 -0.703 -1.227 -0.286 CB PRO 5 +PRO CG CG C 0 1 N N N N N N 38.311 36.445 81.200 -2.163 -0.753 -0.439 CG PRO 6 +PRO CD CD C 0 1 N N N N N N 38.958 36.358 82.579 -2.218 0.614 0.276 CD PRO 7 +PRO OXT OXT O 0 1 N Y N Y N Y 37.131 40.263 83.047 2.391 -0.721 0.424 OXT PRO 8 +PRO H HT1 H 0 1 N Y N Y Y N 40.152 37.928 82.959 -0.707 1.708 1.057 H PRO 9 +PRO HA HA H 0 1 N N N Y N N 39.160 39.638 81.850 0.009 -0.343 1.573 HA PRO 10 +PRO HB2 1HB H 0 1 N N N N N N 37.703 38.219 80.010 -0.240 -1.345 -1.266 HB2 PRO 11 +PRO HB3 2HB H 0 1 N N N N N N 39.352 38.017 80.027 -0.666 -2.165 0.267 HB3 PRO 12 +PRO HG2 1HG H 0 1 N N N N N N 37.247 36.109 81.191 -2.416 -0.638 -1.493 HG2 PRO 13 +PRO HG3 2HG H 0 1 N N N N N N 38.703 35.687 80.482 -2.843 -1.458 0.040 HG3 PRO 14 +PRO HD2 1HD H 0 1 N N N N N N 38.378 35.759 83.320 -2.872 1.300 -0.263 HD2 PRO 15 +PRO HD3 2HD H 0 1 N N N N N N 39.880 35.732 82.614 -2.559 0.492 1.304 HD3 PRO 16 +PRO HXT HXT H 0 1 N Y N Y N Y 36.276 40.530 83.365 3.293 -0.594 0.101 HXT PRO 17 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +PRO N CA SING N N 1 +PRO N CD SING N N 2 +PRO N H SING N N 3 +PRO CA C SING N N 4 +PRO CA CB SING N N 5 +PRO CA HA SING N N 6 +PRO C O DOUB N N 7 +PRO C OXT SING N N 8 +PRO CB CG SING N N 9 +PRO CB HB2 SING N N 10 +PRO CB HB3 SING N N 11 +PRO CG CD SING N N 12 +PRO CG HG2 SING N N 13 +PRO CG HG3 SING N N 14 +PRO CD HD2 SING N N 15 +PRO CD HD3 SING N N 16 +PRO OXT HXT SING N N 17 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +PRO SMILES ACDLabs 10.04 "O=C(O)C1NCCC1" +PRO SMILES_CANONICAL CACTVS 3.341 "OC(=O)[C@@H]1CCCN1" +PRO SMILES CACTVS 3.341 "OC(=O)[CH]1CCCN1" +PRO SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C1C[C@H](NC1)C(=O)O" +PRO SMILES "OpenEye OEToolkits" 1.5.0 "C1CC(NC1)C(=O)O" +PRO InChI InChI 1.03 "InChI=1S/C5H9NO2/c7-5(8)4-2-1-3-6-4/h4,6H,1-3H2,(H,7,8)/t4-/m0/s1" +PRO InChIKey InChI 1.03 ONIBWKKTOPOVIA-BYPYZUCNSA-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 +PRO "SYSTEMATIC NAME" ACDLabs 10.04 L-proline +PRO "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-pyrrolidine-2-carboxylic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +PRO "Create component" 1999-07-08 RCSB +PRO "Modify descriptor" 2011-06-04 RCSB +PRO "Modify backbone" 2023-11-03 PDBE +# +data_PHE +# +_chem_comp.id PHE +_chem_comp.name PHENYLALANINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C9 H11 N O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 165.189 +_chem_comp.one_letter_code F +_chem_comp.three_letter_code PHE +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +PHE N N N 0 1 N N N Y Y N 3.260 22.302 6.000 1.317 0.962 1.014 N PHE 1 +PHE CA CA C 0 1 N N S Y N N 4.252 21.272 5.710 -0.020 0.426 1.300 CA PHE 2 +PHE C C C 0 1 N N N Y N Y 5.559 21.899 5.229 -0.109 0.047 2.756 C PHE 3 +PHE O O O 0 1 N N N Y N Y 5.836 21.838 4.012 0.879 -0.317 3.346 O PHE 4 +PHE CB CB C 0 1 N N N N N N 3.708 20.298 4.656 -0.270 -0.809 0.434 CB PHE 5 +PHE CG CG C 0 1 Y N N N N N 4.596 19.106 4.406 -0.181 -0.430 -1.020 CG PHE 6 +PHE CD1 CD1 C 0 1 Y N N N N N 5.077 18.339 5.467 1.031 -0.498 -1.680 CD1 PHE 7 +PHE CD2 CD2 C 0 1 Y N N N N N 4.927 18.732 3.109 -1.314 -0.018 -1.698 CD2 PHE 8 +PHE CE1 CE1 C 0 1 Y N N N N N 5.874 17.219 5.237 1.112 -0.150 -3.015 CE1 PHE 9 +PHE CE2 CE2 C 0 1 Y N N N N N 5.718 17.618 2.867 -1.231 0.333 -3.032 CE2 PHE 10 +PHE CZ CZ C 0 1 Y N N N N N 6.193 16.860 3.932 -0.018 0.265 -3.691 CZ PHE 11 +PHE OXT OXT O 0 1 N Y N Y N Y 6.283 22.460 6.079 -1.286 0.113 3.396 OXT PHE 12 +PHE H H H 0 1 N N N Y Y N 2.387 21.883 6.321 1.975 0.230 1.235 H PHE 13 +PHE H2 HN2 H 0 1 N Y N Y Y N 3.111 22.918 5.201 1.365 1.104 0.017 H2 PHE 14 +PHE HA HA H 0 1 N N N Y N N 4.460 20.708 6.649 -0.770 1.184 1.076 HA PHE 15 +PHE HB2 1HB H 0 1 N N N N N N 2.676 19.968 4.922 0.480 -1.568 0.659 HB2 PHE 16 +PHE HB3 2HB H 0 1 N N N N N N 3.493 20.833 3.701 -1.262 -1.207 0.646 HB3 PHE 17 +PHE HD1 HD1 H 0 1 N N N N N N 4.823 18.622 6.502 1.915 -0.824 -1.152 HD1 PHE 18 +PHE HD2 HD2 H 0 1 N N N N N N 4.556 19.328 2.258 -2.262 0.034 -1.183 HD2 PHE 19 +PHE HE1 HE1 H 0 1 N N N N N N 6.250 16.619 6.083 2.060 -0.203 -3.530 HE1 PHE 20 +PHE HE2 HE2 H 0 1 N N N N N N 5.968 17.335 1.830 -2.116 0.659 -3.560 HE2 PHE 21 +PHE HZ HZ H 0 1 N N N N N N 6.822 15.974 3.741 0.045 0.538 -4.734 HZ PHE 22 +PHE HXT HXT H 0 1 N Y N Y N Y 7.096 22.850 5.779 -1.343 -0.130 4.330 HXT PHE 23 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +PHE N CA SING N N 1 +PHE N H SING N N 2 +PHE N H2 SING N N 3 +PHE CA C SING N N 4 +PHE CA CB SING N N 5 +PHE CA HA SING N N 6 +PHE C O DOUB N N 7 +PHE C OXT SING N N 8 +PHE CB CG SING N N 9 +PHE CB HB2 SING N N 10 +PHE CB HB3 SING N N 11 +PHE CG CD1 DOUB Y N 12 +PHE CG CD2 SING Y N 13 +PHE CD1 CE1 SING Y N 14 +PHE CD1 HD1 SING N N 15 +PHE CD2 CE2 DOUB Y N 16 +PHE CD2 HD2 SING N N 17 +PHE CE1 CZ DOUB Y N 18 +PHE CE1 HE1 SING N N 19 +PHE CE2 CZ SING Y N 20 +PHE CE2 HE2 SING N N 21 +PHE CZ HZ SING N N 22 +PHE OXT HXT SING N N 23 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +PHE SMILES ACDLabs 10.04 "O=C(O)C(N)Cc1ccccc1" +PHE SMILES_CANONICAL CACTVS 3.341 "N[C@@H](Cc1ccccc1)C(O)=O" +PHE SMILES CACTVS 3.341 "N[CH](Cc1ccccc1)C(O)=O" +PHE SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "c1ccc(cc1)C[C@@H](C(=O)O)N" +PHE SMILES "OpenEye OEToolkits" 1.5.0 "c1ccc(cc1)CC(C(=O)O)N" +PHE InChI InChI 1.03 "InChI=1S/C9H11NO2/c10-8(9(11)12)6-7-4-2-1-3-5-7/h1-5,8H,6,10H2,(H,11,12)/t8-/m0/s1" +PHE InChIKey InChI 1.03 COLNVLDHVKWLRT-QMMMGPOBSA-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 +PHE "SYSTEMATIC NAME" ACDLabs 10.04 L-phenylalanine +PHE "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-3-phenyl-propanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +PHE "Create component" 1999-07-08 EBI +PHE "Modify descriptor" 2011-06-04 RCSB +PHE "Modify backbone" 2023-11-03 PDBE +# +data_TYR +# +_chem_comp.id TYR +_chem_comp.name TYROSINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C9 H11 N O3" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 181.189 +_chem_comp.one_letter_code Y +_chem_comp.three_letter_code TYR +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +TYR N N N 0 1 N N N Y Y N 5.005 5.256 15.563 1.320 0.952 1.428 N TYR 1 +TYR CA CA C 0 1 N N S Y N N 5.326 6.328 16.507 -0.018 0.429 1.734 CA TYR 2 +TYR C C C 0 1 N N N Y N Y 4.742 7.680 16.116 -0.103 0.094 3.201 C TYR 3 +TYR O O O 0 1 N N N Y N Y 4.185 8.411 16.947 0.886 -0.254 3.799 O TYR 4 +TYR CB CB C 0 1 N N N N N N 6.836 6.389 16.756 -0.274 -0.831 0.907 CB TYR 5 +TYR CG CG C 0 1 Y N N N N N 7.377 5.438 17.795 -0.189 -0.496 -0.559 CG TYR 6 +TYR CD1 CD1 C 0 1 Y N N N N N 6.826 5.370 19.075 1.022 -0.589 -1.219 CD1 TYR 7 +TYR CD2 CD2 C 0 1 Y N N N N N 8.493 4.624 17.565 -1.324 -0.102 -1.244 CD2 TYR 8 +TYR CE1 CE1 C 0 1 Y N N N N N 7.308 4.536 20.061 1.103 -0.282 -2.563 CE1 TYR 9 +TYR CE2 CE2 C 0 1 Y N N N N N 9.029 3.816 18.552 -1.247 0.210 -2.587 CE2 TYR 10 +TYR CZ CZ C 0 1 Y N N N N N 8.439 3.756 19.805 -0.032 0.118 -3.252 CZ TYR 11 +TYR OH OH O 0 1 N N N N N N 8.954 2.936 20.781 0.044 0.420 -4.574 OH TYR 12 +TYR OXT OXT O 0 1 N Y N Y N Y 4.840 8.051 14.829 -1.279 0.184 3.842 OXT TYR 13 +TYR H H H 0 1 N N N Y Y N 5.621 4.925 15.064 1.977 0.225 1.669 H TYR 14 +TYR H2 HN2 H 0 1 N Y N Y Y N 5.288 5.511 14.617 1.365 1.063 0.426 H2 TYR 15 +TYR HA HA H 0 1 N N N Y N N 4.913 6.081 17.361 -0.767 1.183 1.489 HA TYR 16 +TYR HB2 1HB H 0 1 N N N N N N 7.289 6.213 15.916 0.473 -1.585 1.152 HB2 TYR 17 +TYR HB3 2HB H 0 1 N N N N N N 7.063 7.294 17.023 -1.268 -1.219 1.134 HB3 TYR 18 +TYR HD1 HD1 H 0 1 N N N N N N 6.097 5.913 19.272 1.905 -0.902 -0.683 HD1 TYR 19 +TYR HD2 HD2 H 0 1 N N N N N N 8.887 4.627 16.723 -2.269 -0.031 -0.727 HD2 TYR 20 +TYR HE1 HE1 H 0 1 N N N N N N 6.886 4.493 20.888 2.049 -0.354 -3.078 HE1 TYR 21 +TYR HE2 HE2 H 0 1 N N N N N N 9.788 3.310 18.373 -2.132 0.523 -3.121 HE2 TYR 22 +TYR HH HH H 0 1 N N N N N N 8.500 3.001 21.460 -0.123 -0.399 -5.059 HH TYR 23 +TYR HXT HXT H 0 1 N Y N Y N Y 4.475 8.893 14.585 -1.333 -0.030 4.784 HXT TYR 24 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +TYR N CA SING N N 1 +TYR N H SING N N 2 +TYR N H2 SING N N 3 +TYR CA C SING N N 4 +TYR CA CB SING N N 5 +TYR CA HA SING N N 6 +TYR C O DOUB N N 7 +TYR C OXT SING N N 8 +TYR CB CG SING N N 9 +TYR CB HB2 SING N N 10 +TYR CB HB3 SING N N 11 +TYR CG CD1 DOUB Y N 12 +TYR CG CD2 SING Y N 13 +TYR CD1 CE1 SING Y N 14 +TYR CD1 HD1 SING N N 15 +TYR CD2 CE2 DOUB Y N 16 +TYR CD2 HD2 SING N N 17 +TYR CE1 CZ DOUB Y N 18 +TYR CE1 HE1 SING N N 19 +TYR CE2 CZ SING Y N 20 +TYR CE2 HE2 SING N N 21 +TYR CZ OH SING N N 22 +TYR OH HH SING N N 23 +TYR OXT HXT SING N N 24 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +TYR SMILES ACDLabs 10.04 "O=C(O)C(N)Cc1ccc(O)cc1" +TYR SMILES_CANONICAL CACTVS 3.341 "N[C@@H](Cc1ccc(O)cc1)C(O)=O" +TYR SMILES CACTVS 3.341 "N[CH](Cc1ccc(O)cc1)C(O)=O" +TYR SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "c1cc(ccc1C[C@@H](C(=O)O)N)O" +TYR SMILES "OpenEye OEToolkits" 1.5.0 "c1cc(ccc1CC(C(=O)O)N)O" +TYR InChI InChI 1.03 "InChI=1S/C9H11NO3/c10-8(9(12)13)5-6-1-3-7(11)4-2-6/h1-4,8,11H,5,10H2,(H,12,13)/t8-/m0/s1" +TYR InChIKey InChI 1.03 OUYCCCASQSFEME-QMMMGPOBSA-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 +TYR "SYSTEMATIC NAME" ACDLabs 10.04 L-tyrosine +TYR "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-3-(4-hydroxyphenyl)propanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +TYR "Create component" 1999-07-08 EBI +TYR "Modify descriptor" 2011-06-04 RCSB +TYR "Modify backbone" 2023-11-03 PDBE +# +data_TRP +# +_chem_comp.id TRP +_chem_comp.name TRYPTOPHAN +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C11 H12 N2 O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces LTR +_chem_comp.formula_weight 204.225 +_chem_comp.one_letter_code W +_chem_comp.three_letter_code TRP +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +TRP N N N 0 1 N N N Y Y N 74.708 60.512 32.843 1.278 1.121 2.059 N TRP 1 +TRP CA CA C 0 1 N N S Y N N 74.400 61.735 32.114 -0.008 0.417 1.970 CA TRP 2 +TRP C C C 0 1 N N N Y N Y 73.588 61.411 30.840 -0.490 0.076 3.357 C TRP 3 +TRP O O O 0 1 N N N Y N Y 72.939 62.292 30.277 0.308 -0.130 4.240 O TRP 4 +TRP CB CB C 0 1 N N N N N N 75.684 62.473 31.706 0.168 -0.868 1.161 CB TRP 5 +TRP CG CG C 0 1 Y N N N N N 76.675 62.727 32.832 0.650 -0.526 -0.225 CG TRP 6 +TRP CD1 CD1 C 0 1 Y N N N N N 77.753 61.964 33.157 1.928 -0.418 -0.622 CD1 TRP 7 +TRP CD2 CD2 C 0 1 Y N N N N N 76.646 63.805 33.777 -0.186 -0.256 -1.396 CD2 TRP 8 +TRP NE1 NE1 N 0 1 Y N N N N N 78.403 62.494 34.247 1.978 -0.095 -1.951 NE1 TRP 9 +TRP CE2 CE2 C 0 1 Y N N N N N 77.741 63.625 34.650 0.701 0.014 -2.454 CE2 TRP 10 +TRP CE3 CE3 C 0 1 Y N N N N N 75.796 64.902 33.974 -1.564 -0.210 -1.615 CE3 TRP 11 +TRP CZ2 CZ2 C 0 1 Y N N N N N 78.014 64.499 35.709 0.190 0.314 -3.712 CZ2 TRP 12 +TRP CZ3 CZ3 C 0 1 Y N N N N N 76.065 65.776 35.031 -2.044 0.086 -2.859 CZ3 TRP 13 +TRP CH2 CH2 C 0 1 Y N N N N N 77.168 65.565 35.884 -1.173 0.348 -3.907 CH2 TRP 14 +TRP OXT OXT O 0 1 N Y N Y N Y 73.495 60.470 30.438 -1.806 0.001 3.610 OXT TRP 15 +TRP H H H 0 1 N N N Y Y N 75.244 60.725 33.684 1.921 0.493 2.518 H TRP 16 +TRP H2 HN2 H 0 1 N Y N Y Y N 75.182 59.827 32.253 1.611 1.237 1.113 H2 TRP 17 +TRP HA HA H 0 1 N N N Y N N 73.801 62.387 32.790 -0.740 1.058 1.479 HA TRP 18 +TRP HB2 1HB H 0 1 N N N N N N 76.185 61.933 30.869 0.900 -1.509 1.652 HB2 TRP 19 +TRP HB3 2HB H 0 1 N N N N N N 75.429 63.431 31.197 -0.786 -1.390 1.095 HB3 TRP 20 +TRP HD1 HD1 H 0 1 N N N N N N 78.055 61.051 32.616 2.789 -0.564 0.012 HD1 TRP 21 +TRP HE1 HE1 H 0 1 N N N N N N 79.240 62.110 34.685 2.791 0.036 -2.462 HE1 TRP 22 +TRP HE3 HE3 H 0 1 N N N N N N 74.932 65.074 33.310 -2.248 -0.413 -0.804 HE3 TRP 23 +TRP HZ2 HZ2 H 0 1 N N N N N N 78.871 64.351 36.386 0.860 0.521 -4.534 HZ2 TRP 24 +TRP HZ3 HZ3 H 0 1 N N N N N N 75.400 66.641 35.193 -3.110 0.116 -3.029 HZ3 TRP 25 +TRP HH2 HH2 H 0 1 N N N N N N 77.376 66.257 36.716 -1.567 0.582 -4.885 HH2 TRP 26 +TRP HXT HXT H 0 1 N Y N Y N Y 72.995 60.270 29.654 -2.115 -0.217 4.500 HXT TRP 27 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +TRP N CA SING N N 1 +TRP N H SING N N 2 +TRP N H2 SING N N 3 +TRP CA C SING N N 4 +TRP CA CB SING N N 5 +TRP CA HA SING N N 6 +TRP C O DOUB N N 7 +TRP C OXT SING N N 8 +TRP CB CG SING N N 9 +TRP CB HB2 SING N N 10 +TRP CB HB3 SING N N 11 +TRP CG CD1 DOUB Y N 12 +TRP CG CD2 SING Y N 13 +TRP CD1 NE1 SING Y N 14 +TRP CD1 HD1 SING N N 15 +TRP CD2 CE2 DOUB Y N 16 +TRP CD2 CE3 SING Y N 17 +TRP NE1 CE2 SING Y N 18 +TRP NE1 HE1 SING N N 19 +TRP CE2 CZ2 SING Y N 20 +TRP CE3 CZ3 DOUB Y N 21 +TRP CE3 HE3 SING N N 22 +TRP CZ2 CH2 DOUB Y N 23 +TRP CZ2 HZ2 SING N N 24 +TRP CZ3 CH2 SING Y N 25 +TRP CZ3 HZ3 SING N N 26 +TRP CH2 HH2 SING N N 27 +TRP OXT HXT SING N N 28 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +TRP SMILES ACDLabs 10.04 "O=C(O)C(N)Cc2c1ccccc1nc2" +TRP SMILES_CANONICAL CACTVS 3.341 "N[C@@H](Cc1c[nH]c2ccccc12)C(O)=O" +TRP SMILES CACTVS 3.341 "N[CH](Cc1c[nH]c2ccccc12)C(O)=O" +TRP SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "c1ccc2c(c1)c(c[nH]2)C[C@@H](C(=O)O)N" +TRP SMILES "OpenEye OEToolkits" 1.5.0 "c1ccc2c(c1)c(c[nH]2)CC(C(=O)O)N" +TRP InChI InChI 1.03 "InChI=1S/C11H12N2O2/c12-9(11(14)15)5-7-6-13-10-4-2-1-3-8(7)10/h1-4,6,9,13H,5,12H2,(H,14,15)/t9-/m0/s1" +TRP InChIKey InChI 1.03 QIVBCDIJIAJPQS-VIFPVBQESA-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 +TRP "SYSTEMATIC NAME" ACDLabs 10.04 L-tryptophan +TRP "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-3-(1H-indol-3-yl)propanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +TRP "Create component" 1999-07-08 EBI +TRP "Modify descriptor" 2011-06-04 RCSB +TRP "Modify backbone" 2023-11-03 PDBE +# +data_HIS +# +_chem_comp.id HIS +_chem_comp.name HISTIDINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C6 H10 N3 O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 1 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 156.162 +_chem_comp.one_letter_code H +_chem_comp.three_letter_code HIS +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details "OpenEye/OEToolkits V1.4.2" +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +HIS N N N 0 1 N N N Y Y N 33.472 42.685 -4.610 -0.040 -1.210 0.053 N HIS 1 +HIS CA CA C 0 1 N N S Y N N 33.414 41.686 -5.673 1.172 -1.709 0.652 CA HIS 2 +HIS C C C 0 1 N N N Y N Y 33.773 42.279 -7.040 1.083 -3.207 0.905 C HIS 3 +HIS O O O 0 1 N N N Y N Y 33.497 43.444 -7.337 0.040 -3.770 1.222 O HIS 4 +HIS CB CB C 0 1 N N N N N N 32.005 41.080 -5.734 1.484 -0.975 1.962 CB HIS 5 +HIS CG CG C 0 1 Y N N N N N 31.888 39.902 -6.651 2.940 -1.060 2.353 CG HIS 6 +HIS ND1 ND1 N 1 1 Y N N N N N 32.539 38.710 -6.414 3.380 -2.075 3.129 ND1 HIS 7 +HIS CD2 CD2 C 0 1 Y N N N N N 31.199 39.734 -7.804 3.960 -0.251 2.046 CD2 HIS 8 +HIS CE1 CE1 C 0 1 Y N N N N N 32.251 37.857 -7.382 4.693 -1.908 3.317 CE1 HIS 9 +HIS NE2 NE2 N 0 1 Y N N N N N 31.439 38.453 -8.237 5.058 -0.801 2.662 NE2 HIS 10 +HIS OXT OXT O 0 1 N Y N Y N Y 34.382 41.455 -7.879 2.247 -3.882 0.744 OXT HIS 11 +HIS H H H 0 1 N N N Y Y N 33.485 42.227 -3.721 -0.102 -1.155 -0.950 H HIS 12 +HIS H2 HN2 H 0 1 N Y N Y Y N 34.301 43.234 -4.714 -0.715 -0.741 0.634 H2 HIS 13 +HIS HA HA H 0 1 N N N Y N N 34.155 40.908 -5.439 1.965 -1.558 -0.089 HA HIS 14 +HIS HB2 1HB H 0 1 N N N N N N 31.733 40.750 -4.721 1.215 0.087 1.879 HB2 HIS 15 +HIS HB3 2HB H 0 1 N N N N N N 31.337 41.860 -6.127 0.859 -1.368 2.775 HB3 HIS 16 +HIS HD1 HD1 H 0 1 N N N N N N 33.135 38.521 -5.633 2.828 -2.838 3.511 HD1 HIS 17 +HIS HD2 HD2 H 0 1 N N N N N N 30.577 40.470 -8.292 4.108 0.647 1.479 HD2 HIS 18 +HIS HE1 HE1 H 0 1 N N N N N N 32.618 36.844 -7.461 5.340 -2.550 3.892 HE1 HIS 19 +HIS HE2 HE2 H 0 1 N N N N N N 31.061 38.039 -9.065 6.002 -0.428 2.627 HE2 HIS 20 +HIS HXT HXT H 0 1 N Y N Y N Y 34.553 41.905 -8.698 2.188 -4.848 0.901 HXT HIS 21 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +HIS N CA SING N N 1 +HIS N H SING N N 2 +HIS N H2 SING N N 3 +HIS CA C SING N N 4 +HIS CA CB SING N N 5 +HIS CA HA SING N N 6 +HIS C O DOUB N N 7 +HIS C OXT SING N N 8 +HIS CB CG SING N N 9 +HIS CB HB2 SING N N 10 +HIS CB HB3 SING N N 11 +HIS CG ND1 SING Y N 12 +HIS CG CD2 DOUB Y N 13 +HIS ND1 CE1 DOUB Y N 14 +HIS ND1 HD1 SING N N 15 +HIS CD2 NE2 SING Y N 16 +HIS CD2 HD2 SING N N 17 +HIS CE1 NE2 SING Y N 18 +HIS CE1 HE1 SING N N 19 +HIS NE2 HE2 SING N N 20 +HIS OXT HXT SING N N 21 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +HIS SMILES ACDLabs 10.04 "O=C(O)C(N)Cc1cnc[nH+]1" +HIS SMILES_CANONICAL CACTVS 3.341 "N[C@@H](Cc1c[nH]c[nH+]1)C(O)=O" +HIS SMILES CACTVS 3.341 "N[CH](Cc1c[nH]c[nH+]1)C(O)=O" +HIS SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "c1c([nH+]c[nH]1)C[C@@H](C(=O)O)N" +HIS SMILES "OpenEye OEToolkits" 1.5.0 "c1c([nH+]c[nH]1)CC(C(=O)O)N" +HIS InChI InChI 1.03 "InChI=1S/C6H9N3O2/c7-5(6(10)11)1-4-2-8-3-9-4/h2-3,5H,1,7H2,(H,8,9)(H,10,11)/p+1/t5-/m0/s1" +HIS InChIKey InChI 1.03 HNDVDQJCIGZPNO-YFKPBYRVSA-O +# +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 +HIS "SYSTEMATIC NAME" ACDLabs 10.04 "3-(1H-imidazol-3-ium-4-yl)-L-alanine" +HIS "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2-amino-3-(1H-imidazol-3-ium-4-yl)propanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +HIS "Create component" 1999-07-08 EBI +HIS "Modify descriptor" 2011-06-04 RCSB +HIS "Modify backbone" 2023-11-03 PDBE +# +data_LYS +# +_chem_comp.id LYS +_chem_comp.name LYSINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C6 H15 N2 O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 1 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 147.195 +_chem_comp.one_letter_code K +_chem_comp.three_letter_code LYS +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +LYS N N N 0 1 N N N Y Y N 37.577 40.385 -3.968 1.422 1.796 0.198 N LYS 1 +LYS CA CA C 0 1 N N S Y N N 38.631 39.459 -4.356 1.394 0.355 0.484 CA LYS 2 +LYS C C C 0 1 N N N Y N Y 38.094 38.304 -5.212 2.657 -0.284 -0.032 C LYS 3 +LYS O O O 0 1 N N N Y N Y 36.873 38.235 -5.490 3.316 0.275 -0.876 O LYS 4 +LYS CB CB C 0 1 N N N N N N 39.374 38.919 -3.139 0.184 -0.278 -0.206 CB LYS 5 +LYS CG CG C 0 1 N N N N N N 38.523 38.111 -2.181 -1.102 0.282 0.407 CG LYS 6 +LYS CD CD C 0 1 N N N N N N 39.164 36.749 -1.903 -2.313 -0.351 -0.283 CD LYS 7 +LYS CE CE C 0 1 N N N N N N 38.106 35.761 -1.382 -3.598 0.208 0.329 CE LYS 8 +LYS NZ NZ N 1 1 N N N N N N 37.176 36.546 -0.539 -4.761 -0.400 -0.332 NZ LYS 9 +LYS OXT OXT O 0 1 N Y N Y N Y 38.961 37.678 -5.886 3.050 -1.476 0.446 OXT LYS 10 +LYS H H H 0 1 N N N Y Y N 37.933 41.152 -3.399 1.489 1.891 -0.804 H LYS 11 +LYS H2 HN2 H 0 1 N Y N Y Y N 36.812 39.900 -3.498 0.521 2.162 0.464 H2 LYS 12 +LYS HA HA H 0 1 N N N Y N N 39.352 40.037 -4.979 1.322 0.200 1.560 HA LYS 13 +LYS HB2 1HB H 0 1 N N N N N N 40.262 38.326 -3.460 0.210 -0.047 -1.270 HB2 LYS 14 +LYS HB3 2HB H 0 1 N N N N N N 39.882 39.750 -2.596 0.211 -1.359 -0.068 HB3 LYS 15 +LYS HG2 1HG H 0 1 N N N N N N 38.317 38.670 -1.238 -1.128 0.050 1.471 HG2 LYS 16 +LYS HG3 2HG H 0 1 N N N N N N 37.474 38.007 -2.546 -1.130 1.363 0.269 HG3 LYS 17 +LYS HD2 1HD H 0 1 N N N N N N 39.701 36.351 -2.795 -2.287 -0.120 -1.348 HD2 LYS 18 +LYS HD3 2HD H 0 1 N N N N N N 40.034 36.831 -1.210 -2.285 -1.432 -0.145 HD3 LYS 19 +LYS HE2 1HE H 0 1 N N N N N N 37.593 35.194 -2.194 -3.625 -0.023 1.394 HE2 LYS 20 +LYS HE3 2HE H 0 1 N N N N N N 38.544 34.882 -0.854 -3.626 1.289 0.192 HE3 LYS 21 +LYS HZ1 1HZ H 0 1 N N N N N N 36.474 35.891 -0.193 -4.736 -0.185 -1.318 HZ1 LYS 22 +LYS HZ2 2HZ H 0 1 N N N N N N 37.644 37.064 0.203 -4.735 -1.400 -0.205 HZ2 LYS 23 +LYS HZ3 3HZ H 0 1 N N N N N N 36.774 37.350 -1.021 -5.609 -0.031 0.071 HZ3 LYS 24 +LYS HXT HXT H 0 1 N Y N Y N Y 38.628 36.963 -6.415 3.861 -1.886 0.115 HXT LYS 25 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +LYS N CA SING N N 1 +LYS N H SING N N 2 +LYS N H2 SING N N 3 +LYS CA C SING N N 4 +LYS CA CB SING N N 5 +LYS CA HA SING N N 6 +LYS C O DOUB N N 7 +LYS C OXT SING N N 8 +LYS CB CG SING N N 9 +LYS CB HB2 SING N N 10 +LYS CB HB3 SING N N 11 +LYS CG CD SING N N 12 +LYS CG HG2 SING N N 13 +LYS CG HG3 SING N N 14 +LYS CD CE SING N N 15 +LYS CD HD2 SING N N 16 +LYS CD HD3 SING N N 17 +LYS CE NZ SING N N 18 +LYS CE HE2 SING N N 19 +LYS CE HE3 SING N N 20 +LYS NZ HZ1 SING N N 21 +LYS NZ HZ2 SING N N 22 +LYS NZ HZ3 SING N N 23 +LYS OXT HXT SING N N 24 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +LYS SMILES ACDLabs 10.04 "O=C(O)C(N)CCCC[NH3+]" +LYS SMILES_CANONICAL CACTVS 3.341 "N[C@@H](CCCC[NH3+])C(O)=O" +LYS SMILES CACTVS 3.341 "N[CH](CCCC[NH3+])C(O)=O" +LYS SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C(CC[NH3+])C[C@@H](C(=O)O)N" +LYS SMILES "OpenEye OEToolkits" 1.5.0 "C(CC[NH3+])CC(C(=O)O)N" +LYS InChI InChI 1.03 "InChI=1S/C6H14N2O2/c7-4-2-1-3-5(8)6(9)10/h5H,1-4,7-8H2,(H,9,10)/p+1/t5-/m0/s1" +LYS InChIKey InChI 1.03 KDXKERNSBIXSRK-YFKPBYRVSA-O +# +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 +LYS "SYSTEMATIC NAME" ACDLabs 10.04 6-ammonio-L-norleucine +LYS "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "[(5S)-5-amino-6-hydroxy-6-oxo-hexyl]azanium" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +LYS "Create component" 1999-07-08 RCSB +LYS "Modify descriptor" 2011-06-04 RCSB +LYS "Modify backbone" 2023-11-03 PDBE +# +data_ARG +# +_chem_comp.id ARG +_chem_comp.name ARGININE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C6 H15 N4 O2" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 1 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 175.209 +_chem_comp.one_letter_code R +_chem_comp.three_letter_code ARG +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details "OpenEye/OEToolkits V1.4.2" +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site RCSB +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +ARG N N N 0 1 N N N Y Y N 69.812 14.685 89.810 -0.469 1.110 -0.993 N ARG 1 +ARG CA CA C 0 1 N N S Y N N 70.052 14.573 91.280 0.004 2.294 -1.708 CA ARG 2 +ARG C C C 0 1 N N N Y N Y 71.542 14.389 91.604 -0.907 2.521 -2.901 C ARG 3 +ARG O O O 0 1 N N N Y N Y 72.354 14.342 90.659 -1.827 1.789 -3.242 O ARG 4 +ARG CB CB C 0 1 N N N N N N 69.227 13.419 91.854 1.475 2.150 -2.127 CB ARG 5 +ARG CG CG C 0 1 N N N N N N 67.722 13.607 91.686 1.745 1.017 -3.130 CG ARG 6 +ARG CD CD C 0 1 N N N N N N 66.952 12.344 92.045 3.210 0.954 -3.557 CD ARG 7 +ARG NE NE N 0 1 N N N N N N 67.307 11.224 91.178 4.071 0.726 -2.421 NE ARG 8 +ARG CZ CZ C 0 1 N N N N N N 66.932 9.966 91.380 5.469 0.624 -2.528 CZ ARG 9 +ARG NH1 NH1 N 0 1 N N N N N N 66.176 9.651 92.421 6.259 0.404 -1.405 NH1 ARG 10 +ARG NH2 NH2 N 1 1 N N N N N N 67.344 9.015 90.554 6.078 0.744 -3.773 NH2 ARG 11 +ARG OXT OXT O 0 1 N Y N Y N Y 71.901 14.320 92.798 -0.588 3.659 -3.574 OXT ARG 12 +ARG H H H 0 1 N N N Y Y N 68.822 14.807 89.594 -0.058 0.903 -0.109 H ARG 13 +ARG H2 HN2 H 0 1 N Y N Y Y N 70.205 13.888 89.308 -1.024 0.452 -1.494 H2 ARG 14 +ARG HA HA H 0 1 N N N Y N N 69.728 15.528 91.756 -0.103 3.152 -1.034 HA ARG 15 +ARG HB2 1HB H 0 1 N N N N N N 69.554 12.445 91.420 2.086 1.988 -1.230 HB2 ARG 16 +ARG HB3 2HB H 0 1 N N N N N N 69.486 13.241 92.923 1.814 3.099 -2.563 HB3 ARG 17 +ARG HG2 1HG H 0 1 N N N N N N 67.355 14.485 92.266 1.136 1.170 -4.029 HG2 ARG 18 +ARG HG3 2HG H 0 1 N N N N N N 67.468 13.958 90.658 1.447 0.054 -2.698 HG3 ARG 19 +ARG HD2 1HD H 0 1 N N N N N N 67.083 12.081 93.120 3.348 0.133 -4.269 HD2 ARG 20 +ARG HD3 2HD H 0 1 N N N N N N 65.851 12.525 92.042 3.505 1.880 -4.062 HD3 ARG 21 +ARG HE HE H 0 1 N N N N N N 68.324 11.220 91.100 3.674 0.627 -1.479 HE ARG 22 +ARG HH11 1HH1 H 0 0 N N N N N N 65.888 8.684 92.576 7.271 0.331 -1.484 HH11 ARG 23 +ARG HH12 2HH1 H 0 0 N N N N N N 65.339 10.234 92.397 5.858 0.307 -0.476 HH12 ARG 24 +ARG HH21 1HH2 H 0 0 N N N N N N 67.926 9.257 89.752 5.530 0.906 -4.614 HH21 ARG 25 +ARG HH22 2HH2 H 0 0 N N N N N N 67.056 8.048 90.709 7.088 0.675 -3.874 HH22 ARG 26 +ARG HXT HXT H 0 1 N Y N Y N Y 72.822 14.206 92.998 -1.149 3.855 -4.355 HXT ARG 27 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +ARG N CA SING N N 1 +ARG N H SING N N 2 +ARG N H2 SING N N 3 +ARG CA C SING N N 4 +ARG CA CB SING N N 5 +ARG CA HA SING N N 6 +ARG C O DOUB N N 7 +ARG C OXT SING N N 8 +ARG CB CG SING N N 9 +ARG CB HB2 SING N N 10 +ARG CB HB3 SING N N 11 +ARG CG CD SING N N 12 +ARG CG HG2 SING N N 13 +ARG CG HG3 SING N N 14 +ARG CD NE SING N N 15 +ARG CD HD2 SING N N 16 +ARG CD HD3 SING N N 17 +ARG NE CZ SING N N 18 +ARG NE HE SING N N 19 +ARG CZ NH1 SING N N 20 +ARG CZ NH2 DOUB N N 21 +ARG NH1 HH11 SING N N 22 +ARG NH1 HH12 SING N N 23 +ARG NH2 HH21 SING N N 24 +ARG NH2 HH22 SING N N 25 +ARG OXT HXT SING N N 26 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +ARG SMILES ACDLabs 10.04 "O=C(O)C(N)CCCN\C(=[NH2+])N" +ARG SMILES_CANONICAL CACTVS 3.341 "N[C@@H](CCCNC(N)=[NH2+])C(O)=O" +ARG SMILES CACTVS 3.341 "N[CH](CCCNC(N)=[NH2+])C(O)=O" +ARG SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C(C[C@@H](C(=O)O)N)CNC(=[NH2+])N" +ARG SMILES "OpenEye OEToolkits" 1.5.0 "C(CC(C(=O)O)N)CNC(=[NH2+])N" +ARG InChI InChI 1.03 "InChI=1S/C6H14N4O2/c7-4(5(11)12)2-1-3-10-6(8)9/h4H,1-3,7H2,(H,11,12)(H4,8,9,10)/p+1/t4-/m0/s1" +ARG InChIKey InChI 1.03 ODKSFYDXXFIFQN-BYPYZUCNSA-O +# +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 +ARG "SYSTEMATIC NAME" ACDLabs 10.04 "amino{[(4S)-4-amino-4-carboxybutyl]amino}methaniminium" +ARG "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "[amino-[[(4S)-4-amino-5-hydroxy-5-oxo-pentyl]amino]methylidene]azanium" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +ARG "Create component" 1999-07-08 RCSB +ARG "Modify descriptor" 2011-06-04 RCSB +ARG "Modify backbone" 2023-11-03 PDBE +# +data_ASP +# +_chem_comp.id ASP +_chem_comp.name "ASPARTIC ACID" +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C4 H7 N O4" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 133.103 +_chem_comp.one_letter_code D +_chem_comp.three_letter_code ASP +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details Corina +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +ASP N N N 0 1 N N N Y Y N 33.487 17.736 39.094 -0.317 1.688 0.066 N ASP 1 +ASP CA CA C 0 1 N N S Y N N 34.909 17.506 38.709 -0.470 0.286 -0.344 CA ASP 2 +ASP C C C 0 1 N N N Y N Y 34.993 16.527 37.537 -1.868 -0.180 -0.029 C ASP 3 +ASP O O O 0 1 N N N Y N Y 36.106 16.031 37.261 -2.534 0.415 0.786 O ASP 4 +ASP CB CB C 0 1 N N N N N N 35.682 16.954 39.915 0.539 -0.580 0.413 CB ASP 5 +ASP CG CG C 0 1 N N N N N N 35.231 15.544 40.306 1.938 -0.195 0.004 CG ASP 6 +ASP OD1 OD1 O 0 1 N N N N N N 35.793 14.986 41.279 2.109 0.681 -0.810 OD1 ASP 7 +ASP OD2 OD2 O 0 1 N N N N N N 34.327 14.999 39.631 2.992 -0.826 0.543 OD2 ASP 8 +ASP OXT OXT O 0 1 N Y N Y N Y 33.935 16.265 36.913 -2.374 -1.256 -0.652 OXT ASP 9 +ASP H H H 0 1 N N N Y Y N 33.448 18.377 39.860 -0.928 2.289 -0.467 H ASP 10 +ASP H2 HN2 H 0 1 N Y N Y Y N 32.988 18.117 38.315 -0.478 1.795 1.056 H2 ASP 11 +ASP HA HA H 0 1 N N N Y N N 35.356 18.461 38.395 -0.292 0.199 -1.416 HA ASP 12 +ASP HB2 HB1 H 0 1 N N N N N N 36.751 16.919 39.657 0.419 -0.425 1.485 HB2 ASP 13 +ASP HB3 HB2 H 0 1 N N N N N N 35.515 17.623 40.772 0.367 -1.630 0.176 HB3 ASP 14 +ASP HD2 HD2 H 0 1 N N N N N N 34.155 14.130 39.974 3.869 -0.545 0.250 HD2 ASP 15 +ASP HXT HXT H 0 1 N Y N Y N Y 34.122 15.645 36.218 -3.275 -1.517 -0.416 HXT ASP 16 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +ASP N CA SING N N 1 +ASP N H SING N N 2 +ASP N H2 SING N N 3 +ASP CA C SING N N 4 +ASP CA CB SING N N 5 +ASP CA HA SING N N 6 +ASP C O DOUB N N 7 +ASP C OXT SING N N 8 +ASP CB CG SING N N 9 +ASP CB HB2 SING N N 10 +ASP CB HB3 SING N N 11 +ASP CG OD1 DOUB N N 12 +ASP CG OD2 SING N N 13 +ASP OD2 HD2 SING N N 14 +ASP OXT HXT SING N N 15 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +ASP SMILES ACDLabs 12.01 "O=C(O)CC(N)C(=O)O" +ASP SMILES_CANONICAL CACTVS 3.370 "N[C@@H](CC(O)=O)C(O)=O" +ASP SMILES CACTVS 3.370 "N[CH](CC(O)=O)C(O)=O" +ASP SMILES_CANONICAL "OpenEye OEToolkits" 1.7.0 "C([C@@H](C(=O)O)N)C(=O)O" +ASP SMILES "OpenEye OEToolkits" 1.7.0 "C(C(C(=O)O)N)C(=O)O" +ASP InChI InChI 1.03 "InChI=1S/C4H7NO4/c5-2(4(8)9)1-3(6)7/h2H,1,5H2,(H,6,7)(H,8,9)/t2-/m0/s1" +ASP InChIKey InChI 1.03 CKLJMWTZIZZHCS-REOHCLBHSA-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 +ASP "SYSTEMATIC NAME" ACDLabs 12.01 "L-aspartic acid" +ASP "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.7.0 "(2S)-2-azanylbutanedioic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +ASP "Create component" 1999-07-08 EBI +ASP "Modify leaving atom flag" 2011-01-28 RCSB +ASP "Modify descriptor" 2011-06-04 RCSB +ASP "Modify backbone" 2023-11-03 PDBE +# +data_GLU +# +_chem_comp.id GLU +_chem_comp.name "GLUTAMIC ACID" +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C5 H9 N O4" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 147.129 +_chem_comp.one_letter_code E +_chem_comp.three_letter_code GLU +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details Corina +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +GLU N N N 0 1 N N N Y Y N 88.261 -7.660 -9.990 1.199 1.867 -0.117 N GLU 1 +GLU CA CA C 0 1 N N S Y N N 87.744 -7.276 -11.334 1.138 0.515 0.453 CA GLU 2 +GLU C C C 0 1 N N N Y N Y 88.474 -6.030 -11.811 2.364 -0.260 0.041 C GLU 3 +GLU O O O 0 1 N N N Y N Y 88.969 -5.292 -10.943 3.010 0.096 -0.916 O GLU 4 +GLU CB CB C 0 1 N N N N N N 86.234 -7.012 -11.267 -0.113 -0.200 -0.062 CB GLU 5 +GLU CG CG C 0 1 N N N N N N 85.437 -8.194 -10.746 -1.360 0.517 0.461 CG GLU 6 +GLU CD CD C 0 1 N N N N N N 83.937 -7.944 -10.707 -2.593 -0.187 -0.046 CD GLU 7 +GLU OE1 OE1 O 0 1 N N N N N N 83.425 -7.140 -11.520 -2.485 -1.161 -0.753 OE1 GLU 8 +GLU OE2 OE2 O 0 1 N N N N N N 83.260 -8.567 -9.862 -3.811 0.269 0.287 OE2 GLU 9 +GLU OXT OXT O 0 1 N Y N Y N Y 88.543 -5.801 -13.033 2.737 -1.345 0.737 OXT GLU 10 +GLU H H H 0 1 N N N Y Y N 87.785 -8.479 -9.671 1.237 1.834 -1.125 H GLU 11 +GLU H2 HN2 H 0 1 N Y N Y Y N 89.241 -7.847 -10.051 0.421 2.427 0.197 H2 GLU 12 +GLU HA HA H 0 1 N N N Y N N 87.920 -8.099 -12.043 1.098 0.580 1.540 HA GLU 13 +GLU HB2 HB1 H 0 1 N N N N N N 86.064 -6.160 -10.592 -0.117 -0.187 -1.152 HB2 GLU 14 +GLU HB3 HB2 H 0 1 N N N N N N 85.881 -6.781 -12.283 -0.113 -1.231 0.289 HB3 GLU 15 +GLU HG2 HG1 H 0 1 N N N N N N 85.624 -9.052 -11.408 -1.357 0.504 1.551 HG2 GLU 16 +GLU HG3 HG2 H 0 1 N N N N N N 85.775 -8.411 -9.722 -1.360 1.548 0.109 HG3 GLU 17 +GLU HE2 HE2 H 0 1 N N N N N N 82.345 -8.328 -9.951 -4.571 -0.215 -0.062 HE2 GLU 18 +GLU HXT HXT H 0 1 N Y N Y N Y 89.022 -4.994 -13.178 3.530 -1.809 0.435 HXT GLU 19 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +GLU N CA SING N N 1 +GLU N H SING N N 2 +GLU N H2 SING N N 3 +GLU CA C SING N N 4 +GLU CA CB SING N N 5 +GLU CA HA SING N N 6 +GLU C O DOUB N N 7 +GLU C OXT SING N N 8 +GLU CB CG SING N N 9 +GLU CB HB2 SING N N 10 +GLU CB HB3 SING N N 11 +GLU CG CD SING N N 12 +GLU CG HG2 SING N N 13 +GLU CG HG3 SING N N 14 +GLU CD OE1 DOUB N N 15 +GLU CD OE2 SING N N 16 +GLU OE2 HE2 SING N N 17 +GLU OXT HXT SING N N 18 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +GLU SMILES ACDLabs 12.01 "O=C(O)C(N)CCC(=O)O" +GLU SMILES_CANONICAL CACTVS 3.370 "N[C@@H](CCC(O)=O)C(O)=O" +GLU SMILES CACTVS 3.370 "N[CH](CCC(O)=O)C(O)=O" +GLU SMILES_CANONICAL "OpenEye OEToolkits" 1.7.0 "C(CC(=O)O)[C@@H](C(=O)O)N" +GLU SMILES "OpenEye OEToolkits" 1.7.0 "C(CC(=O)O)C(C(=O)O)N" +GLU InChI InChI 1.03 "InChI=1S/C5H9NO4/c6-3(5(9)10)1-2-4(7)8/h3H,1-2,6H2,(H,7,8)(H,9,10)/t3-/m0/s1" +GLU InChIKey InChI 1.03 WHUUTDBJXJRKMK-VKHMYHEASA-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 +GLU "SYSTEMATIC NAME" ACDLabs 12.01 "L-glutamic acid" +GLU "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.7.0 "(2S)-2-azanylpentanedioic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +GLU "Create component" 1999-07-08 EBI +GLU "Modify leaving atom flag" 2011-01-28 RCSB +GLU "Other modification" 2011-02-09 RCSB +GLU "Modify descriptor" 2011-06-04 RCSB +GLU "Modify backbone" 2023-11-03 PDBE +# +data_ASN +# +_chem_comp.id ASN +_chem_comp.name ASPARAGINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C4 H8 N2 O3" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 132.118 +_chem_comp.one_letter_code N +_chem_comp.three_letter_code ASN +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details Corina +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +ASN N N N 0 1 N N N Y Y N 15.295 16.641 19.776 -0.293 1.686 0.094 N ASN 1 +ASN CA CA C 0 1 N N S Y N N 15.702 17.913 20.397 -0.448 0.292 -0.340 CA ASN 2 +ASN C C C 0 1 N N N Y N Y 14.630 18.500 21.234 -1.846 -0.179 -0.031 C ASN 3 +ASN O O O 0 1 N N N Y N Y 14.949 19.152 22.234 -2.510 0.402 0.794 O ASN 4 +ASN CB CB C 0 1 N N N N N N 16.088 18.882 19.297 0.562 -0.588 0.401 CB ASN 5 +ASN CG CG C 0 1 N N N N N N 17.262 18.512 18.462 1.960 -0.197 -0.002 CG ASN 6 +ASN OD1 OD1 O 0 1 N N N N N N 18.123 17.705 18.780 2.132 0.697 -0.804 OD1 ASN 7 +ASN ND2 ND2 N 0 1 N N N N N N 17.281 19.172 17.284 3.019 -0.841 0.527 ND2 ASN 8 +ASN OXT OXT O 0 1 N Y N Y N Y 13.386 18.353 20.865 -2.353 -1.243 -0.673 OXT ASN 9 +ASN H H H 0 1 N N N Y Y N 16.048 16.284 19.223 -0.904 2.297 -0.427 H ASN 10 +ASN H2 HN2 H 0 1 N Y N Y Y N 15.064 15.980 20.490 -0.453 1.776 1.086 H2 ASN 11 +ASN HA HA H 0 1 N N N Y N N 16.555 17.716 21.063 -0.270 0.223 -1.413 HA ASN 12 +ASN HB2 1HB H 0 1 N N N N N N 15.224 18.966 18.622 0.442 -0.451 1.476 HB2 ASN 13 +ASN HB3 2HB H 0 1 N N N N N N 16.323 19.842 19.779 0.389 -1.633 0.146 HB3 ASN 14 +ASN HD21 1HD2 H 0 0 N N N N N N 18.021 19.008 16.631 2.881 -1.556 1.168 HD21 ASN 15 +ASN HD22 2HD2 H 0 0 N N N N N N 16.555 19.824 17.065 3.919 -0.590 0.268 HD22 ASN 16 +ASN HXT HXT H 0 1 N Y N Y N Y 12.819 18.813 21.473 -3.254 -1.508 -0.441 HXT ASN 17 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +ASN N CA SING N N 1 +ASN N H SING N N 2 +ASN N H2 SING N N 3 +ASN CA C SING N N 4 +ASN CA CB SING N N 5 +ASN CA HA SING N N 6 +ASN C O DOUB N N 7 +ASN C OXT SING N N 8 +ASN CB CG SING N N 9 +ASN CB HB2 SING N N 10 +ASN CB HB3 SING N N 11 +ASN CG OD1 DOUB N N 12 +ASN CG ND2 SING N N 13 +ASN ND2 HD21 SING N N 14 +ASN ND2 HD22 SING N N 15 +ASN OXT HXT SING N N 16 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +ASN SMILES ACDLabs 12.01 "O=C(N)CC(N)C(=O)O" +ASN InChI InChI 1.03 "InChI=1S/C4H8N2O3/c5-2(4(8)9)1-3(6)7/h2H,1,5H2,(H2,6,7)(H,8,9)/t2-/m0/s1" +ASN InChIKey InChI 1.03 DCXYFEDJOCDNAF-REOHCLBHSA-N +ASN SMILES_CANONICAL CACTVS 3.370 "N[C@@H](CC(N)=O)C(O)=O" +ASN SMILES CACTVS 3.370 "N[CH](CC(N)=O)C(O)=O" +ASN SMILES_CANONICAL "OpenEye OEToolkits" 1.7.2 "C([C@@H](C(=O)O)N)C(=O)N" +ASN SMILES "OpenEye OEToolkits" 1.7.2 "C(C(C(=O)O)N)C(=O)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 +ASN "SYSTEMATIC NAME" ACDLabs 12.01 L-asparagine +ASN "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.7.2 "(2S)-2,4-bis(azanyl)-4-oxidanylidene-butanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +ASN "Create component" 1999-07-08 EBI +ASN "Modify leaving atom flag" 2010-12-17 RCSB +ASN "Modify descriptor" 2011-06-04 RCSB +ASN "Modify leaving atom flag" 2011-08-05 RCSB +ASN "Other modification" 2014-11-11 RCSB +ASN "Modify backbone" 2023-11-03 PDBE +# +data_GLN +# +_chem_comp.id GLN +_chem_comp.name GLUTAMINE +_chem_comp.type "L-PEPTIDE LINKING" +_chem_comp.pdbx_type ATOMP +_chem_comp.formula "C5 H10 N2 O3" +_chem_comp.mon_nstd_parent_comp_id ? +_chem_comp.pdbx_synonyms ? +_chem_comp.pdbx_formal_charge 0 +_chem_comp.pdbx_initial_date 1999-07-08 +_chem_comp.pdbx_modified_date 2023-11-03 +_chem_comp.pdbx_ambiguous_flag N +_chem_comp.pdbx_release_status REL +_chem_comp.pdbx_replaced_by ? +_chem_comp.pdbx_replaces ? +_chem_comp.formula_weight 146.144 +_chem_comp.one_letter_code Q +_chem_comp.three_letter_code GLN +_chem_comp.pdbx_model_coordinates_details ? +_chem_comp.pdbx_model_coordinates_missing_flag N +_chem_comp.pdbx_ideal_coordinates_details ? +_chem_comp.pdbx_ideal_coordinates_missing_flag N +_chem_comp.pdbx_model_coordinates_db_code ? +_chem_comp.pdbx_subcomponent_list ? +_chem_comp.pdbx_processing_site EBI +# +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.alt_atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.charge +_chem_comp_atom.pdbx_align +_chem_comp_atom.pdbx_aromatic_flag +_chem_comp_atom.pdbx_leaving_atom_flag +_chem_comp_atom.pdbx_stereo_config +_chem_comp_atom.pdbx_backbone_atom_flag +_chem_comp_atom.pdbx_n_terminal_atom_flag +_chem_comp_atom.pdbx_c_terminal_atom_flag +_chem_comp_atom.model_Cartn_x +_chem_comp_atom.model_Cartn_y +_chem_comp_atom.model_Cartn_z +_chem_comp_atom.pdbx_model_Cartn_x_ideal +_chem_comp_atom.pdbx_model_Cartn_y_ideal +_chem_comp_atom.pdbx_model_Cartn_z_ideal +_chem_comp_atom.pdbx_component_atom_id +_chem_comp_atom.pdbx_component_comp_id +_chem_comp_atom.pdbx_ordinal +GLN N N N 0 1 N N N Y Y N -12.869 34.883 120.983 1.858 -0.148 1.125 N GLN 1 +GLN CA CA C 0 1 N N S Y N N -12.048 35.305 119.985 0.517 0.451 1.112 CA GLN 2 +GLN C C C 0 1 N N N Y N Y -10.724 35.797 120.549 -0.236 0.022 2.344 C GLN 3 +GLN O O O 0 1 N N N Y N Y -9.691 35.852 119.806 -0.005 -1.049 2.851 O GLN 4 +GLN CB CB C 0 1 N N N N N N -12.660 36.476 119.161 -0.236 -0.013 -0.135 CB GLN 5 +GLN CG CG C 0 1 N N N N N N -13.110 37.658 120.071 0.529 0.421 -1.385 CG GLN 6 +GLN CD CD C 0 1 N N N N N N -13.701 38.830 119.321 -0.213 -0.036 -2.614 CD GLN 7 +GLN OE1 OE1 O 0 1 N N N N N N -14.715 38.686 118.658 -1.252 -0.650 -2.500 OE1 GLN 8 +GLN NE2 NE2 N 0 1 N N N N N N -13.069 39.999 119.445 0.277 0.236 -3.839 NE2 GLN 9 +GLN OXT OXT O 0 1 N Y N Y N Y -10.665 36.169 121.753 -1.165 0.831 2.878 OXT GLN 10 +GLN H H H 0 1 N N N Y Y N -13.756 34.553 120.604 1.729 -1.148 1.137 H GLN 11 +GLN H2 HN2 H 0 1 N Y N Y Y N -13.004 35.604 121.691 2.286 0.078 0.240 H2 GLN 12 +GLN HA HA H 0 1 N N N Y N N -11.902 34.421 119.320 0.605 1.537 1.099 HA GLN 13 +GLN HB2 1HB H 0 1 N N N N N N -11.958 36.821 118.366 -0.324 -1.100 -0.122 HB2 GLN 14 +GLN HB3 2HB H 0 1 N N N N N N -13.496 36.121 118.514 -1.231 0.431 -0.144 HB3 GLN 15 +GLN HG2 1HG H 0 1 N N N N N N -13.818 37.299 120.853 0.617 1.508 -1.398 HG2 GLN 16 +GLN HG3 2HG H 0 1 N N N N N N -12.266 37.994 120.717 1.524 -0.023 -1.375 HG3 GLN 17 +GLN HE21 1HE2 H 0 0 N N N N N N -12.221 40.119 119.999 -0.200 -0.058 -4.630 HE21 GLN 18 +GLN HE22 2HE2 H 0 0 N N N N N N -13.467 40.789 118.939 1.109 0.727 -3.930 HE22 GLN 19 +GLN HXT HXT H 0 1 N Y N Y N Y -9.838 36.476 122.105 -1.649 0.556 3.669 HXT GLN 20 +# +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.value_order +_chem_comp_bond.pdbx_aromatic_flag +_chem_comp_bond.pdbx_stereo_config +_chem_comp_bond.pdbx_ordinal +GLN N CA SING N N 1 +GLN N H SING N N 2 +GLN N H2 SING N N 3 +GLN CA C SING N N 4 +GLN CA CB SING N N 5 +GLN CA HA SING N N 6 +GLN C O DOUB N N 7 +GLN C OXT SING N N 8 +GLN CB CG SING N N 9 +GLN CB HB2 SING N N 10 +GLN CB HB3 SING N N 11 +GLN CG CD SING N N 12 +GLN CG HG2 SING N N 13 +GLN CG HG3 SING N N 14 +GLN CD OE1 DOUB N N 15 +GLN CD NE2 SING N N 16 +GLN NE2 HE21 SING N N 17 +GLN NE2 HE22 SING N N 18 +GLN OXT HXT SING N N 19 +# +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +GLN SMILES ACDLabs 10.04 "O=C(N)CCC(N)C(=O)O" +GLN SMILES_CANONICAL CACTVS 3.341 "N[C@@H](CCC(N)=O)C(O)=O" +GLN SMILES CACTVS 3.341 "N[CH](CCC(N)=O)C(O)=O" +GLN SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C(CC(=O)N)[C@@H](C(=O)O)N" +GLN SMILES "OpenEye OEToolkits" 1.5.0 "C(CC(=O)N)C(C(=O)O)N" +GLN InChI InChI 1.03 "InChI=1S/C5H10N2O3/c6-3(5(9)10)1-2-4(7)8/h3H,1-2,6H2,(H2,7,8)(H,9,10)/t3-/m0/s1" +GLN InChIKey InChI 1.03 ZDXPYRJPNDTMRX-VKHMYHEASA-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 +GLN "SYSTEMATIC NAME" ACDLabs 10.04 L-glutamine +GLN "SYSTEMATIC NAME" "OpenEye OEToolkits" 1.5.0 "(2S)-2,5-diamino-5-oxo-pentanoic acid" +# +loop_ +_pdbx_chem_comp_audit.comp_id +_pdbx_chem_comp_audit.action_type +_pdbx_chem_comp_audit.date +_pdbx_chem_comp_audit.processing_site +GLN "Create component" 1999-07-08 EBI +GLN "Modify descriptor" 2011-06-04 RCSB +GLN "Modify backbone" 2023-11-03 PDBE +# From 585fa1a7a483459b90866b5ef845716674417a01 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 17:42:03 +0900 Subject: [PATCH 15/29] chore(fmt/cif): exclude debug helpers from coverage --- src/fmt/cif.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index a48ec633..b52af93f 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -30,6 +30,7 @@ namespace nuri { namespace internal { +// GCOV_EXCL_START std::ostream &operator<<(std::ostream &os, CifToken type) { // NOLINTNEXTLINE(clang-diagnostic-switch-enum) switch (type) { @@ -70,6 +71,7 @@ std::ostream &operator<<(std::ostream &os, CifToken type) { return os; } +// GCOV_EXCL_STOP } // namespace internal namespace { @@ -250,6 +252,7 @@ bool CifValue::operator==(std::string_view other) const { return value_ == other && (type_ == Type::kString || type_ == Type::kGeneric); } +// GCOV_EXCL_START std::ostream &operator<<(std::ostream &os, const CifValue &value) { using ValueType = CifValue::Type; @@ -267,6 +270,7 @@ std::ostream &operator<<(std::ostream &os, const CifValue &value) { ABSL_UNREACHABLE(); } } +// GCOV_EXCL_STOP void CifTable::add_data(CifValue &&value) { if (rows_.empty() || rows_.back().size() == keys_.size()) From 9ae282adaef6c3320d217deca6adfa08b831bf21 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 17:43:57 +0900 Subject: [PATCH 16/29] refactor(fmt/cif): simplify error message generation --- src/fmt/cif.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index b52af93f..2a825422 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -235,10 +235,8 @@ std::pair CifLexer::next() { } if (kSpecialChars.contains(c())) { - // abseil forbids passing characters to absl::StrAppend - const char cbuf[] = { c(), '\0' }; return error("Unexpected special character at line ", row(), ":", col(), - ": ", cbuf); + ": ", std::string_view(&*p(), 1)); } auto vit = std::find_if(p(), end(), ::isspace); From 2702b4f7e07b3cf54993ba3047b763bcec141fec Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Fri, 20 Dec 2024 17:47:00 +0900 Subject: [PATCH 17/29] refactor(fmt/cif): use ascii_isspace instead std::isspace --- src/fmt/cif.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index 2a825422..66e2fd86 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -6,7 +6,6 @@ #include "nuri/fmt/cif.h" #include -#include #include #include #include @@ -185,7 +184,7 @@ produce_text_field_impl(CifLexer &lexer, std::string &buf) { } auto it = lexer.p() + 1; - ABSL_LOG_IF(WARNING, it < lexer.end() && std::isspace(*it) == 0) + ABSL_LOG_IF(WARNING, it < lexer.end() && absl::ascii_isspace(*it) == 0) << "Missing whitespace after text field at line " // << lexer.row() << ":" << lexer.col() + 1; return lexer.produce(buf, CifToken::kQuotedValue, it); @@ -209,7 +208,7 @@ std::pair CifLexer::next() { if (p() == begin() && c() == ';') return produce_text_field(*this, buf_); - it_ = std::find_if_not(p(), end(), ::isspace); + it_ = std::find_if_not(p(), end(), absl::ascii_isspace); if (it_ == end()) continue; @@ -239,7 +238,7 @@ std::pair CifLexer::next() { ": ", std::string_view(&*p(), 1)); } - auto vit = std::find_if(p(), end(), ::isspace); + auto vit = std::find_if(p(), end(), absl::ascii_isspace); return produce(as_sv(p(), vit), CifToken::kSimpleValue, vit); } From 32ded22087199c6131c1d3ad19b14a94cd6c496b Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 08:28:33 +0900 Subject: [PATCH 18/29] test(fmt/cif): add test for save frames --- test/fmt/cif_test.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index 2618be9e..cf8a38cc 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -676,6 +676,68 @@ TEST(CifParseTest, CCD) { CifBlock block = parser.next(); EXPECT_TRUE(block.type() == CifBlock::Type::kEOF); } + +struct ExpectedData { + std::string_view name; + CifBlock::Type type; + int total_cols; + int num_save; +}; + +// Figure 1, JCIM 2012, 52 (8), 1901-1906. DOI: 10.1021/ci300074v +TEST(CifParseTest, StarFig1) { + std::stringstream data; + data.str(R"cif( +global_ + _compound.trial 4 + _compound.source FDA +data_synthesis + _sample.length 5.84 + _sample.shape 'needle' + _solvent.base Methanol + _sample.orientation '[1,0,2]' +global_ + _experiment.source 'ConvBeamEI' + _experiment.date 2011-06-09 +data_experiment + _images.collected 1289 + _images.refined 894 +save_fragment_1 + _molecular.weight 234 + _bond_length.max 2.7 +save_ +save_fragment_2 + _molecular.weight 23 + _bond_length.max 1.1 + _fragment.parent fragment_1 +save_ +data_publication + _author.details 'A.B. Smith' + _author.laboratory 'LLNL' +)cif"); + + CifParser parser(data); + + std::vector expected { + { "", CifBlock::Type::kGlobal, 2, 0 }, + { "synthesis", CifBlock::Type::kData, 4, 0 }, + { "", CifBlock::Type::kGlobal, 2, 0 }, + { "experiment", CifBlock::Type::kData, 2, 2 }, + { "publication", CifBlock::Type::kData, 2, 0 }, + }; + + for (auto [name, type, cols, saved]: expected) { + CifBlock block = parser.next(); + if (!block) + FAIL() << "Failed to parse block: " << name; + + const CifFrame &frame = block.data(); + EXPECT_EQ(frame.name(), name); + EXPECT_EQ(static_cast(block.type()), static_cast(type)); + EXPECT_EQ(block.data().total_cols(), cols); + EXPECT_EQ(block.save_frames().size(), saved); + } +} } // namespace } // namespace internal } // namespace nuri From e81419fd807c103c54010c0f7c8916a07b545f29 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 11:31:11 +0900 Subject: [PATCH 19/29] fix(fmt/cif): fix use-after-free bug --- include/nuri/fmt/cif.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h index da1d4bce..e9ab2030 100644 --- a/include/nuri/fmt/cif.h +++ b/include/nuri/fmt/cif.h @@ -114,8 +114,10 @@ namespace internal { template = 0> std::pair error(Args &&...args) { - buf_.clear(); - absl::StrAppend(&buf_, std::forward(args)...); + // found by fuzzing, argument can point to internal buffer so we need to + // create a string first then move it + std::string err = absl::StrCat(std::forward(args)...); + buf_ = std::move(err); return { buf_, CifToken::kError }; } From 93326789969b76ed3379b5846cae54933a5d8fc3 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 11:31:34 +0900 Subject: [PATCH 20/29] fix(fmt/cif): avoid reusing line buffer to avoid use-after-free bug --- src/fmt/cif.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index 66e2fd86..5d5fa11b 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -156,22 +156,23 @@ std::pair produce_text_field_impl(CifLexer &lexer, std::string &buf) { const size_t begin_row = lexer.row(); - std::string_view line = buf; - - bool left; + bool left, cont = kContinuation; while ((left = lexer.advance_line())) { if (lexer.p() < lexer.end() && lexer.c() == ';') break; std::string_view sep = "\n"; if constexpr (kContinuation) { - if (absl::EndsWith(line, "\\")) { + if (cont) { buf.pop_back(); sep = ""; } } - line = absl::StripTrailingAsciiWhitespace(lexer.line()); + std::string_view line = absl::StripTrailingAsciiWhitespace(lexer.line()); + if constexpr (kContinuation) + cont = absl::EndsWith(line, "\\"); + absl::StrAppend(&buf, sep, line); } if (!left) @@ -179,7 +180,7 @@ produce_text_field_impl(CifLexer &lexer, std::string &buf) { ")"); if constexpr (kContinuation) { - if (absl::EndsWith(line, "\\")) + if (cont) buf.pop_back(); } From 1ab1a272a5f138263244febf8d3feb8b9ffcb15b Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 11:32:39 +0900 Subject: [PATCH 21/29] test(fmt/cif): add fuzzing test --- fuzz/fmt/cif_fuzz.cpp | 34 ++++++++++++++++++++++++++++++++++ fuzz/include/fuzz_utils.h | 14 ++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 fuzz/fmt/cif_fuzz.cpp create mode 100644 fuzz/include/fuzz_utils.h diff --git a/fuzz/fmt/cif_fuzz.cpp b/fuzz/fmt/cif_fuzz.cpp new file mode 100644 index 00000000..df3f205c --- /dev/null +++ b/fuzz/fmt/cif_fuzz.cpp @@ -0,0 +1,34 @@ +// +// Project NuriKit - Copyright 2024 SNU Compbio Lab. +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include +#include +#include +#include + +#include "fuzz_utils.h" +#include "nuri/fmt/cif.h" + +NURI_FUZZ_MAIN(data, size) { + static absl::once_flag flag; + absl::call_once(flag, []() { + absl::InitializeLog(); + absl::SetStderrThreshold(absl::LogSeverity::kFatal); + }); + + std::istringstream iss( + std::string { reinterpret_cast(data), size }); + nuri::CifParser parser(iss); + + while (true) { + auto block = parser.next(); + if (!block) + break; + } + + return 0; +} diff --git a/fuzz/include/fuzz_utils.h b/fuzz/include/fuzz_utils.h new file mode 100644 index 00000000..2a81590f --- /dev/null +++ b/fuzz/include/fuzz_utils.h @@ -0,0 +1,14 @@ +// +// Project NuriKit - Copyright 2024 SNU Compbio Lab. +// SPDX-License-Identifier: Apache-2.0 +// + +#ifndef NURI_FUZZ_FUZZ_UTILS_H_ +#define NURI_FUZZ_FUZZ_UTILS_H_ + +#define NURI_FUZZ_MAIN(data, size) \ + extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) + +NURI_FUZZ_MAIN(/* data */, /* size */); + +#endif /* NURI_FUZZ_FUZZ_UTILS_H_ */ From 35d6e81b38d466e4d879fb554bcf640205555e87 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 11:33:04 +0900 Subject: [PATCH 22/29] build: enable fuzzing build --- CMakeLists.txt | 12 +++++++++++ cmake-variants.json | 9 +++++++++ cmake/NuriKitTest.cmake | 44 +++++++++++++++++++++++++++++++++-------- fuzz/CMakeLists.txt | 19 ++++++++++++++++++ 4 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 fuzz/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index b2437972..99db3880 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ option(NURI_ENABLE_AVX2 "Use -mavx2 flag for optimization" OFF) option(NURI_ENABLE_ARCH_NATIVE "Use -march=native flag for optimization" OFF) option(NURI_ENABLE_SANITIZERS "Enable sanitizers for debug build" OFF) +option(NURI_BUILD_FUZZING "Enable fuzzing build" OFF) option(NURI_PREBUILT_ABSL "Download prebuilt abseil binary" ON) option(NURI_TEST_COVERAGE "Enable coverage build" OFF) @@ -89,6 +90,16 @@ elseif(NURI_ENABLE_IPO) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) endif() +if(NURI_BUILD_FUZZING) + if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") + message(FATAL_ERROR "Fuzzing build is only supported with Clang") + endif() + + message("Fuzzing build: enabling sanitizers") + set(NURI_ENABLE_SANITIZERS ON) + add_compile_options(-fsanitize=fuzzer) +endif() + set_sanitizer_envs() if(NURI_ENABLE_SANITIZERS) @@ -153,6 +164,7 @@ endif() include(CTest) add_subdirectory(test EXCLUDE_FROM_ALL) +add_subdirectory(fuzz EXCLUDE_FROM_ALL) if(BUILD_TESTING AND NURI_POSTINSTALL_TEST) message(NOTICE "Running tests after post-installation step") diff --git a/cmake-variants.json b/cmake-variants.json index 48801cb0..ae80b2cc 100644 --- a/cmake-variants.json +++ b/cmake-variants.json @@ -37,6 +37,15 @@ "settings": { "NURI_ENABLE_SANITIZERS": true } + }, + "fuzzer": { + "buildType": "RelWithDebInfo", + "long": "Fuzzing build.", + "short": "Fuzz", + "settings": { + "NURI_ENABLE_SANITIZERS": true, + "NURI_BUILD_FUZZING": true + } } } } diff --git a/cmake/NuriKitTest.cmake b/cmake/NuriKitTest.cmake index b4835beb..64152f9b 100644 --- a/cmake/NuriKitTest.cmake +++ b/cmake/NuriKitTest.cmake @@ -18,26 +18,54 @@ if(NURI_ENABLE_SANITIZERS AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.18) set(NURI_GTEST_EXTRA_ARGS DISCOVERY_MODE PRE_TEST) endif() -function(nuri_add_test file) +function(_nuri_generate_test_name root file) get_filename_component(test_dir ${file} DIRECTORY) - file(RELATIVE_PATH test_dir "${PROJECT_SOURCE_DIR}/test" "${test_dir}") + file(RELATIVE_PATH test_dir "${root}" "${test_dir}") string(REPLACE "/" "_" test_prefix ${test_dir}) get_filename_component(test_name ${file} NAME_WE) - set(target "nuri_${test_prefix}_${test_name}") - add_executable("${target}" "${file}") - target_link_libraries("${target}" PRIVATE + set(NURI_TEST_TARGET "nuri_${test_prefix}_${test_name}" PARENT_SCOPE) +endfunction() + +function(nuri_add_test file) + _nuri_generate_test_name("${PROJECT_SOURCE_DIR}/test" "${file}") + + add_executable("${NURI_TEST_TARGET}" "${file}") + target_link_libraries("${NURI_TEST_TARGET}" PRIVATE GTest::gtest GTest::gmock GTest::gtest_main absl::absl_log absl::absl_check) if(TARGET nuri_lib) - target_link_libraries("${target}" PRIVATE nuri_lib) + target_link_libraries("${NURI_TEST_TARGET}" PRIVATE nuri_lib) endif() - gtest_discover_tests("${target}" + gtest_discover_tests("${NURI_TEST_TARGET}" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" ${NURI_GTEST_EXTRA_ARGS}) - add_dependencies(nuri_all_test "${target}") + add_dependencies(nuri_all_test "${NURI_TEST_TARGET}") +endfunction() + +if(NURI_BUILD_FUZZING AND NOT TARGET nuri_all_fuzz) + add_custom_target(nuri_all_fuzz) + clear_coverage_data(nuri_all_fuzz) + + if(BUILD_TESTING) + set_target_properties(nuri_all_fuzz PROPERTIES EXCLUDE_FROM_ALL OFF) + endif() +endif() + +function(nuri_add_fuzz file) + _nuri_generate_test_name("${PROJECT_SOURCE_DIR}/fuzz" "${file}") + + add_executable("${NURI_TEST_TARGET}" "${file}") + target_link_options("${NURI_TEST_TARGET}" PRIVATE -fsanitize=fuzzer) + target_link_libraries("${NURI_TEST_TARGET}" PRIVATE absl::log_initialize) + + if(TARGET nuri_lib) + target_link_libraries("${NURI_TEST_TARGET}" PRIVATE nuri_lib) + endif() + + add_dependencies(nuri_all_fuzz "${NURI_TEST_TARGET}") endfunction() diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt new file mode 100644 index 00000000..06f7fce9 --- /dev/null +++ b/fuzz/CMakeLists.txt @@ -0,0 +1,19 @@ +# +# Project NuriKit - Copyright 2024 SNU Compbio Lab. +# SPDX-License-Identifier: Apache-2.0 +# + +if(NOT NURI_BUILD_FUZZING) + return() +endif() + +include(NuriKitTest) + +add_compile_options(-Wno-error) + +include_directories("${CMAKE_CURRENT_LIST_DIR}/include") +file(GLOB_RECURSE NURI_FUZZ_SRCS *.cpp) + +foreach(nuri_test_src IN LISTS NURI_FUZZ_SRCS) + nuri_add_fuzz("${nuri_test_src}") +endforeach() From aff39a778ddbcc9b9c99b5864f6fec14f98622fc Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 11:57:37 +0900 Subject: [PATCH 23/29] chore: ignore more false positives --- .github/ubsanignore.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/ubsanignore.txt b/.github/ubsanignore.txt index 80e1abd5..9c023d49 100644 --- a/.github/ubsanignore.txt +++ b/.github/ubsanignore.txt @@ -1,2 +1,5 @@ implicit-signed-integer-truncation:ascii.cc implicit-signed-integer-truncation:raw_hash_set.h +implicit-integer-sign-change:string_view +implicit-integer-sign-change:predefined_ops.h +implicit-integer-sign-change:cif.cpp From 54606cd81e4879548015d7831ccd7fe48982a08c Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 11:59:18 +0900 Subject: [PATCH 24/29] build: add missing Boost dependency --- cmake/NuriKitUtils.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/NuriKitUtils.cmake b/cmake/NuriKitUtils.cmake index e1d11a55..c56ef3dc 100644 --- a/cmake/NuriKitUtils.cmake +++ b/cmake/NuriKitUtils.cmake @@ -268,11 +268,11 @@ function(handle_boost_dependency target) target_system_include_directories( "${target}" Boost::spirit Boost::fusion Boost::mpl Boost::optional - Boost::iterator Boost::config + Boost::iterator Boost::config Boost::range ) target_link_libraries( "${target}" - PUBLIC Boost::iterator Boost::config + PUBLIC Boost::iterator Boost::config Boost::range PRIVATE Boost::spirit Boost::fusion Boost::mpl Boost::optional ) endfunction() From aab5f1a70bff4c02da774ba432dd4ecfbde7d0a6 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 12:02:43 +0900 Subject: [PATCH 25/29] fix(fmt/cif): cleanup headers --- include/nuri/fmt/cif.h | 1 - src/fmt/cif.cpp | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/nuri/fmt/cif.h b/include/nuri/fmt/cif.h index e9ab2030..d658556f 100644 --- a/include/nuri/fmt/cif.h +++ b/include/nuri/fmt/cif.h @@ -19,7 +19,6 @@ #include #include -#include #include #include #include diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index 5d5fa11b..99651ec6 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -7,8 +7,10 @@ #include #include +#include #include #include +#include #include #include @@ -20,8 +22,6 @@ #include #include #include -#include -#include #include #include From efae1cc0ec6ff5fb331fd49a52fafcfc7fd66323 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 12:02:59 +0900 Subject: [PATCH 26/29] fix(fmt/cif): clear after move --- src/fmt/cif.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fmt/cif.cpp b/src/fmt/cif.cpp index 99651ec6..ad04f4ed 100644 --- a/src/fmt/cif.cpp +++ b/src/fmt/cif.cpp @@ -429,6 +429,7 @@ CifBlock next_block(CifParser &parser, CifLexer &lexer, std::string &next_name, global_ctx = CifGlobalCtx::kBlock; save_frames.push_back( CifFrame(std::move(save_tables), std::move(frame_name))); + frame_name.clear(); } } From 0e3d54e2c1c69c8368fa4995a0c7e7a64791263f Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 12:14:50 +0900 Subject: [PATCH 27/29] build: fix clang tools for non-fuzzing build --- cmake/NuriKitTest.cmake | 4 ++-- fuzz/CMakeLists.txt | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/cmake/NuriKitTest.cmake b/cmake/NuriKitTest.cmake index 64152f9b..b65da9c2 100644 --- a/cmake/NuriKitTest.cmake +++ b/cmake/NuriKitTest.cmake @@ -47,11 +47,11 @@ function(nuri_add_test file) add_dependencies(nuri_all_test "${NURI_TEST_TARGET}") endfunction() -if(NURI_BUILD_FUZZING AND NOT TARGET nuri_all_fuzz) +if(NOT TARGET nuri_all_fuzz) add_custom_target(nuri_all_fuzz) clear_coverage_data(nuri_all_fuzz) - if(BUILD_TESTING) + if(NURI_BUILD_FUZZING AND BUILD_TESTING) set_target_properties(nuri_all_fuzz PROPERTIES EXCLUDE_FROM_ALL OFF) endif() endif() diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index 06f7fce9..77674219 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -3,10 +3,6 @@ # SPDX-License-Identifier: Apache-2.0 # -if(NOT NURI_BUILD_FUZZING) - return() -endif() - include(NuriKitTest) add_compile_options(-Wno-error) From 86c970df84a5e7413c02437991cc97685b844e10 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 12:16:38 +0900 Subject: [PATCH 28/29] ci: exclude fuzz from clang tools lint --- .github/workflows/_run-clang-tools.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_run-clang-tools.yaml b/.github/workflows/_run-clang-tools.yaml index 2d7cb669..bd146a1b 100644 --- a/.github/workflows/_run-clang-tools.yaml +++ b/.github/workflows/_run-clang-tools.yaml @@ -64,7 +64,7 @@ jobs: style: file tidy-checks: "" database: build - ignore: ".github|build|third-party|test" + ignore: ".github|build|third-party|test|fuzz" env: GITHUB_TOKEN: ${{ github.token }} From 63ec8c94530a20433f098fe38ebe2898f023c244 Mon Sep 17 00:00:00 2001 From: Nuri Jung Date: Mon, 23 Dec 2024 12:27:52 +0900 Subject: [PATCH 29/29] test(fmt/cif): test error case --- test/fmt/cif_test.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/fmt/cif_test.cpp b/test/fmt/cif_test.cpp index cf8a38cc..611def37 100644 --- a/test/fmt/cif_test.cpp +++ b/test/fmt/cif_test.cpp @@ -738,6 +738,23 @@ data_publication EXPECT_EQ(block.save_frames().size(), saved); } } + +TEST(CifParseTest, Erroneous) { + std::stringstream data; + data.str(R"cif( +data_publication + _author.details 'A.B. Smith' + _author.laboratory 'LLNL +)cif"); + + CifParser parser(data); + CifBlock block = parser.next(); + + EXPECT_FALSE(block) << "Block should error"; + EXPECT_EQ(static_cast(block.type()), + static_cast(CifBlock::Type::kError)); + EXPECT_PRED2(str_case_contains, block.error_msg(), "unterminated quote"); +} } // namespace } // namespace internal } // namespace nuri