diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc
index d3f43064f995988df12c3d4e0279de2b201e960f..587cc670c505edf8b43c9bc7a3e3627b3a20b782 100644
--- a/modules/io/src/mol/mmcif_reader.cc
+++ b/modules/io/src/mol/mmcif_reader.cc
@@ -52,11 +52,12 @@ void MMCifParser::Init()
 {
   warned_name_mismatch_ = false;
   category_             = DONT_KNOW;
+  memset(category_counts_, 0, DONT_KNOW * sizeof(int));
   chain_count_          = 0;
   atom_count_           = 0;
   residue_count_        = 0;
   auth_chain_id_        = false;
-  go_on_                = true;
+  has_model_            = false;
   //memset(indices_, -1, MAX_ITEMS_IN_ROW * sizeof(int));
   restrict_chains_      = "";
   subst_res_id_         = "";
@@ -103,8 +104,6 @@ bool MMCifParser::OnBeginData(const StringRef& data_name)
 
   this->ClearState();
 
-  go_on_ = true;
-
   return true;
 }
 
@@ -115,6 +114,7 @@ bool MMCifParser::OnBeginLoop(const StarLoopDesc& header)
   // walk through possible categories
   if (header.GetCategory() == "atom_site") {
     category_ = ATOM_SITE;
+    category_counts_[category_]++;
     // mandatory items
     this->TryStoreIdx(AUTH_ASYM_ID,    "auth_asym_id",    header);
     this->TryStoreIdx(ID,              "id",              header);
@@ -130,11 +130,22 @@ bool MMCifParser::OnBeginLoop(const StarLoopDesc& header)
     this->TryStoreIdx(CARTN_Y, "Cartn_y", header);
     this->TryStoreIdx(CARTN_Z, "Cartn_z", header);
     // optional
-    indices_[OCCUPANCY] = header.GetIndex("occupancy");
-    indices_[B_ISO_OR_EQUIV] = header.GetIndex("B_iso_or_equiv");
-    indices_[GROUP_PDB] = header.GetIndex("group_PDB");
-    indices_[AUTH_SEQ_ID] = header.GetIndex("auth_seq_id");
-    indices_[PDBX_PDB_INS_CODE] = header.GetIndex("pdbx_PDB_ins_code");
+    indices_[OCCUPANCY]          = header.GetIndex("occupancy");
+    indices_[B_ISO_OR_EQUIV]     = header.GetIndex("B_iso_or_equiv");
+    indices_[GROUP_PDB]          = header.GetIndex("group_PDB");
+    indices_[AUTH_SEQ_ID]        = header.GetIndex("auth_seq_id");
+    indices_[PDBX_PDB_INS_CODE]  = header.GetIndex("pdbx_PDB_ins_code");
+    indices_[PDBX_PDB_MODEL_NUM] = header.GetIndex("pdbx_PDB_model_num");
+
+    // post processing
+    if (category_counts_[category_] > 1) {
+      if ((has_model_ && (indices_[PDBX_PDB_MODEL_NUM] == -1))||
+          (!has_model_ && (indices_[PDBX_PDB_MODEL_NUM] != -1))) { // unit test
+        throw IOException(this->FormatDiagnostic(STAR_DIAG_ERROR,
+                              "Not all atom_site entries carry a model number.",
+                                                 this->GetCurrentLinenum()));
+      }
+    }
     return true;
   }
   /*else if (header.GetCategory()=="entity_poly") {
@@ -211,13 +222,26 @@ void MMCifParser::ParseAndAddAtom(const std::vector<StringRef>& columns)
   StringRef res_name, atom_name;
   mol::ResNum res_num(0);
   bool valid_res_num = false;
+  if (indices_[PDBX_PDB_MODEL_NUM] != -1) {
+    if (has_model_) {
+      if (curr_model_ != TryGetInt(columns[indices_[PDBX_PDB_MODEL_NUM]],
+                                   "atom_site.pdbx_PDB_model_num")) {
+        return;
+      }
+    } else {
+      has_model_ = true;
+      curr_model_ = TryGetInt(columns[indices_[PDBX_PDB_MODEL_NUM]],
+      "atom_site.pdbx_PDB_model_num");
+    }
+  }
+
   if (!this->ParseAtomIdent(columns,
                             chain_name,
                             res_name,
                             res_num,
                             valid_res_num,
                             atom_name,
-                            alt_loc)) {
+                            alt_loc)) {// unit test
     return;                            
   }
   Real occ = 1.00f, temp = 0;
@@ -451,7 +475,7 @@ void PDBReader::Import(mol::EntityHandle& ent,
             continue;
           LOG_TRACE("processing HETATM entry");
           this->ParseAndAddAtom(curr_line, line_num_, ent, 
-                                StringRef("HETATM", 6));
+          StringRef("HETATM", 6));
         } else if (IEquals(curr_line.substr(0, 6), StringRef("HELIX ", 6))) {
           if (!charmm_style_) {
             this->ParseHelixEntry(curr_line);            
diff --git a/modules/io/src/mol/mmcif_reader.hh b/modules/io/src/mol/mmcif_reader.hh
index df7393968218c4e2ce44d40ce839400b52019811..41e586a1471c0fc6c972c43ac1591986a984cad4 100644
--- a/modules/io/src/mol/mmcif_reader.hh
+++ b/modules/io/src/mol/mmcif_reader.hh
@@ -83,7 +83,7 @@ public:
   /// \param header categories of the upcoming loop block
   ///
   /// \return bool
-  virtual bool OnBeginLoop(const StarLoopDesc& header);
+  virtual bool OnBeginLoop(const StarLoopDesc& header); // tested
 
   /// \brief read a row of data
   ///
@@ -116,18 +116,21 @@ public:
                                                "' header",
                                                this->GetCurrentLinenum()));
      }
-  }
+  } // tested
 
   /// \brief Check a PDB id to be of length 4 and start with a digit
   ///
   /// \param pdbid putative PDB id
   ///
   /// \return true for a valid id, false otherwise
-  bool IsValidPDBIdent(const StringRef& pdbid);
+  bool IsValidPDBIdent(const StringRef& pdbid); // tested
 
-  /// \brief ...
+  /// \brief fetch values identifying atoms
   ///
-  /// \param columns data row
+  /// \param[in] columns data row
+  /// \param[out] chain_name takes atom_site.label_asym_id or, if
+  ///             auth_chain_id_ is set, atom_site.auth_asym_id as a chain name
+
   /// \param atom_name corresponds to label_atom_id
   bool ParseAtomIdent(const std::vector<StringRef>& columns,
                       String& chain_name,
@@ -145,8 +148,8 @@ public:
 private:
   /// \enum magic numbers of this class
   typedef enum {
-    PDBID_LEN=4,        ///< length of a PDB id
-    MAX_ITEMS_IN_ROW=17 ///< count for possible items in a loop row
+    PDBID_LEN=4,         ///< length of a PDB id
+    MAX_ITEMS_IN_ROW=18, ///< count for possible items in a loop row
   } MMCifMagicNos;
 
   /// \enum items of the atom_site category
@@ -167,7 +170,8 @@ private:
     OCCUPANCY,
     B_ISO_OR_EQUIV,
     PDBX_PDB_INS_CODE,
-    GROUP_PDB          ///< record name
+    GROUP_PDB,         ///< record name
+    PDBX_PDB_MODEL_NUM ///< model no. (especially NMR structures)
   } AtomSiteItems;
 
   /// \enum categories of the mmcif format
@@ -178,7 +182,8 @@ private:
 
   // members
   MMCifCategory category_;
-  int           indices_[MAX_ITEMS_IN_ROW]; ///< map items to values in loops
+  int category_counts_[DONT_KNOW]; ///< overall no. of atom_site loops
+  int indices_[MAX_ITEMS_IN_ROW]; ///< map items to values in loops
   const IOProfile& profile_;
   mol::EntityHandle& ent_handle_;
   String restrict_chains_;
@@ -189,8 +194,9 @@ private:
   int residue_count_;
   int atom_count_;
   bool warned_name_mismatch_;
-  bool go_on_; ///< flow control within the parser hooks
   String subst_res_id_; ///< work around for missing label_seq_id's
+  bool has_model_;      ///< keep track of models through different atom_sites
+  int curr_model_;      ///< if we have pdbx_PDB_model_num, store no.
   //from pdbdreader
   //entity als member, fill in ondatarow
   //import function
diff --git a/modules/io/tests/test_mmcif_reader.cc b/modules/io/tests/test_mmcif_reader.cc
index d14008fcb5a38f9f9cbc576c71f08a561aed5ee8..524ad6bc625521148d41ff7f8f349ca969c52e6a 100644
--- a/modules/io/tests/test_mmcif_reader.cc
+++ b/modules/io/tests/test_mmcif_reader.cc
@@ -47,12 +47,12 @@ public:
 
 BOOST_AUTO_TEST_SUITE( io );
 
-BOOST_AUTO_TEST_CASE(mmcif_isvalidpdbid)
+BOOST_AUTO_TEST_CASE(mmcif_isvalidpdbident)
 {
   mol::EntityHandle eh=mol::CreateEntity();
 
   // on changing the tests for a PDB id in mmcif files, extend this unit test
-  BOOST_MESSAGE("  Running mmcif_isvalidpdbid tests...");
+  BOOST_MESSAGE("  Running mmcif_isvalidpdbident tests...");
   std::ifstream s("testfiles/mmcif/atom_site.mmcif");
   TestMMCifParserProtected tmmcif_p(s, eh);
   StringRef id = StringRef("1FOO", 4);
@@ -85,11 +85,12 @@ BOOST_AUTO_TEST_CASE(mmcif_trystoreidx)
   BOOST_CHECK_NO_THROW(tmmcif_p.TryStoreIdx(0, "bar", mmcif_h));
 }
 
-BOOST_AUTO_TEST_CASE(mmcif_atom_site_header)
+BOOST_AUTO_TEST_CASE(mmcif_onbeginloop)
 {
   mol::EntityHandle eh=mol::CreateEntity();
 
-  BOOST_MESSAGE("  Running mmcif_atom_site_header tests...");
+  // add more tests on new mandatory items
+  BOOST_MESSAGE("  Running mmcif_onbeginloop tests...");
   std::ifstream s("testfiles/mmcif/atom_site.mmcif");
   MMCifParser mmcif_p(s, eh, IOProfile());
   StarLoopDesc mmcif_h;
@@ -133,6 +134,50 @@ BOOST_AUTO_TEST_CASE(mmcif_atom_site_header)
   BOOST_MESSAGE("  done.");
 }
 
+BOOST_AUTO_TEST_CASE(mmcif_parse_models)
+{
+  BOOST_MESSAGE("  Running mmcif_parse_models tests...");
+  IOProfile profile;
+
+  // positive w models
+  BOOST_MESSAGE("          true positive test for models...");
+  {
+    mol::EntityHandle eh = mol::CreateEntity();
+    MMCifParser mmcif_p("testfiles/mmcif/model_truepos.mmcif", eh, profile);
+    BOOST_CHECK_NO_THROW(mmcif_p.Parse());
+    BOOST_REQUIRE_EQUAL(eh.GetChainCount(),   2);
+    BOOST_REQUIRE_EQUAL(eh.GetResidueCount(), 2);
+    BOOST_REQUIRE_EQUAL(eh.GetAtomCount(),   26);
+  }
+  BOOST_MESSAGE("          done.");
+
+  // positive wo models atom_site.mmcif
+  BOOST_MESSAGE("          test absent atom_site.pdbx_PDB_model_num entry...");
+  {
+    mol::EntityHandle eh = mol::CreateEntity();
+    MMCifParser mmcif_p("testfiles/mmcif/atom_site.mmcif", eh, profile);
+    BOOST_CHECK_NO_THROW(mmcif_p.Parse());
+  }
+  BOOST_MESSAGE("          done.");
+  // negative, more than 1 atom_site category
+  BOOST_MESSAGE("          testing more than one atom_site block...");
+  {
+    mol::EntityHandle eh = mol::CreateEntity();
+    MMCifParser mmcif_p("testfiles/mmcif/model_multi_atom_site.mmcif", eh,
+                        profile);
+    BOOST_CHECK_THROW(mmcif_p.Parse(), IOException);
+  }
+  {
+    mol::EntityHandle eh = mol::CreateEntity();
+    MMCifParser mmcif_p("testfiles/mmcif/model_multi_atom_site_inverted.mmcif",
+                        eh, profile);
+    BOOST_CHECK_THROW(mmcif_p.Parse(), IOException);
+  }
+  BOOST_MESSAGE("          done.");
+
+  BOOST_MESSAGE("  done.");
+}
+
 BOOST_AUTO_TEST_CASE(mmcif_parseatomident)
 {
   mol::EntityHandle eh = mol::CreateEntity();
@@ -141,14 +186,16 @@ BOOST_AUTO_TEST_CASE(mmcif_parseatomident)
   std::ifstream s("testfiles/mmcif/atom_site.mmcif");
   IOProfile profile;
   TestMMCifParserProtected tmmcif_p(s, eh, profile);
-  std::vector<StringRef> cols;
-  String chain_name;
-  StringRef res_name;
-  mol::ResNum resnum(0);
-  StringRef atom_name;
+  //std::vector<StringRef> cols;
+  //String chain_name;
+  //StringRef res_name;
+  //mol::ResNum resnum(0);
+  //StringRef atom_name;
   //char alt_loc;
 
-  //BOOST_MESSAGE("    testing short atom_site entry");
+  BOOST_MESSAGE("          testing valid line");
+  //tmmcif_p.ParseAtomIdent();
+  BOOST_MESSAGE("          done.");
   // negative
   //cols.push_back(StringRef("ATOM", 4));
   //BOOST_CHECK_THROW(tmmcif_p.ParseAtomIdent(cols,
@@ -197,16 +244,36 @@ BOOST_AUTO_TEST_CASE(mmcif_parseandaddatom)
 
 BOOST_AUTO_TEST_CASE(mmcif_testreader)
 {
+  BOOST_MESSAGE("  Running mmcif_testreader tests...");
   mol::EntityHandle eh = mol::CreateEntity();
   std::ifstream s("testfiles/mmcif/atom_site.mmcif");
   IOProfile profile;
   MMCifParser mmcif_p(s, eh, profile);
 
-  mmcif_p.Parse();
+  BOOST_MESSAGE("          testing Parse()...");
+  BOOST_CHECK_NO_THROW(mmcif_p.Parse());
+
+  BOOST_REQUIRE_EQUAL(eh.GetChainCount(),    3);
+  BOOST_REQUIRE_EQUAL(eh.GetResidueCount(), 14);
+  BOOST_REQUIRE_EQUAL(eh.GetAtomCount(),    35);
+
+  mol::ChainHandle ch = eh.FindChain("A");
+  BOOST_CHECK(ch.IsValid());
+  BOOST_MESSAGE("          done.");
 
-  BOOST_REQUIRE_EQUAL(eh.GetChainCount(),   2);
-  BOOST_REQUIRE_EQUAL(eh.GetResidueCount(), 4);
-  BOOST_REQUIRE_EQUAL(eh.GetAtomCount(),   25);
+  BOOST_MESSAGE("          testing numbering water...");
+  ch = eh.FindChain("O");
+  BOOST_CHECK(ch.IsValid());
+  mol::ResidueHandleList rl = ch.GetResidueList();
+  mol::ResidueHandleList::const_iterator rs;
+  int i = 1;
+  for (rs = rl.begin(); rs != rl.end(); ++rs, ++i) {
+    BOOST_CHECK_EQUAL(rs->GetNumber().GetNum(), i);
+  }
+
+  BOOST_MESSAGE("          done.");
+
+  BOOST_MESSAGE("  done.");
 }
 
 BOOST_AUTO_TEST_SUITE_END();
diff --git a/modules/io/tests/testfiles/mmcif/atom_site.mmcif b/modules/io/tests/testfiles/mmcif/atom_site.mmcif
index 6c9a29637ee0f3fa0bd6187531821cab98f12d6a..f2568fe3bde7bae0e9883af2986f50f9a352317e 100644
--- a/modules/io/tests/testfiles/mmcif/atom_site.mmcif
+++ b/modules/io/tests/testfiles/mmcif/atom_site.mmcif
@@ -1,5 +1,8 @@
 data_1BAR
 
+# this file is also used in the mmcif_parse_models tests for a true negative
+# test, hence it is not allowed to carry atom_site.pdbx_PDB_model_num entries
+
 loop_
 _atom_site.group_PDB
 _atom_site.type_symbol
@@ -17,33 +20,45 @@ _atom_site.B_iso_or_equiv
 _atom_site.footnote_id
 _atom_site.auth_seq_id
 _atom_site.id
+_atom_site.pdbx_PDB_ins_code
 _atom_site.auth_asym_id
-ATOM N  N   VAL  A  11  . 1  25.369  30.691  11.795  1.00  17.93  .  11   1  A
-ATOM C  CA  VAL  A  11  . 1  25.970  31.965  12.332  1.00  17.75  .  11   2  A
-ATOM C  C   VAL  A  11  . 1  25.569  32.010  13.808  1.00  17.83  .  11   3  A
-ATOM O  O   VAL  A  11  . 1  24.735  31.190  14.167  1.00  17.53  .  11   4  A
-ATOM C  CB  VAL  A  11  . 1  25.379  33.146  11.540  1.00  17.66  .  11   5  A
-ATOM C  CG1 VAL  A  11  . 1  25.584  33.034  10.030  1.00  18.86  .  11   6  A
-ATOM C  CG2 VAL  A  11  . 1  23.933  33.309  11.872  1.00  17.12  .  11   7  A
-ATOM N  N   THR  A  12  . 1  26.095  32.930  14.590  1.00  18.97  4  12   8  A
-ATOM C  CA  THR  A  12  . 1  25.734  32.995  16.032  1.00  19.80  4  12   9  A
-ATOM C  C   THR  A  12  . 1  24.695  34.106  16.113  1.00  20.92  4  12  10  A
-ATOM O  O   THR  A  12  . 1  24.869  35.118  15.421  1.00  21.84  4  12  11  A
-ATOM C  CB  THR  A  12  . 1  26.911  33.346  17.018  1.00  20.51  4  12  12  A
-ATOM O  OG1 THR  A  12  3 1  27.946  33.921  16.183  0.50  20.29  4  12  13  A
-ATOM O  OG1 THR  A  12  4 1  27.769  32.142  17.103  0.50  20.59  4  12  14  A
-ATOM C  CG2 THR  A  12  3 1  27.418  32.181  17.878  0.50  20.47  4  12  15  A
-ATOM C  CG2 THR  A  12  4 1  26.489  33.778  18.426  0.50  20.00  4  12  16  A
-ATOM N  N   ILE  A  13  . 1  23.664  33.855  16.884  1.00  22.08  .  13  17  A
-ATOM C  CA  ILE  A  13  . 1  22.623  34.850  17.093  1.00  23.44  .  13  18  A
-ATOM C  C   ILE  A  13  . 1  22.657  35.113  18.610  1.00  25.77  .  13  19  A
-ATOM O  O   ILE  A  13  . 1  23.123  34.250  19.406  1.00  26.28  .  13  20  A
-ATOM C  CB  ILE  A  13  . 1  21.236  34.463  16.492  1.00  22.67  .  13  21  A
-ATOM C  CG1 ILE  A  13  . 1  20.478  33.469  17.371  1.00  22.14  .  13  22  A
-ATOM C  CG2 ILE  A  13  . 1  21.357  33.986  15.016  1.00  21.75  .  13  23  A
+ATOM N  N   VAL  A  11  . 1  25.369  30.691  11.795  1.00  17.93  .  11   1  ? A
+ATOM C  CA  VAL  A  11  . 1  25.970  31.965  12.332  1.00  17.75  .  11   2  ? A
+ATOM C  C   VAL  A  11  . 1  25.569  32.010  13.808  1.00  17.83  .  11   3  ? A
+ATOM O  O   VAL  A  11  . 1  24.735  31.190  14.167  1.00  17.53  .  11   4  ? A
+ATOM C  CB  VAL  A  11  . 1  25.379  33.146  11.540  1.00  17.66  .  11   5  ? A
+ATOM C  CG1 VAL  A  11  . 1  25.584  33.034  10.030  1.00  18.86  .  11   6  ? A
+ATOM C  CG2 VAL  A  11  . 1  23.933  33.309  11.872  1.00  17.12  .  11   7  ? A
+ATOM N  N   THR  A  12  . 1  26.095  32.930  14.590  1.00  18.97  4  12   8  ? A
+ATOM C  CA  THR  A  12  . 1  25.734  32.995  16.032  1.00  19.80  4  12   9  ? A
+ATOM C  C   THR  A  12  . 1  24.695  34.106  16.113  1.00  20.92  4  12  10  ? A
+ATOM O  O   THR  A  12  . 1  24.869  35.118  15.421  1.00  21.84  4  12  11  ? A
+ATOM C  CB  THR  A  12  . 1  26.911  33.346  17.018  1.00  20.51  4  12  12  ? A
+ATOM O  OG1 THR  A  12  3 1  27.946  33.921  16.183  0.50  20.29  4  12  13  ? A
+ATOM O  OG1 THR  A  12  4 1  27.769  32.142  17.103  0.50  20.59  4  12  14  ? A
+ATOM C  CG2 THR  A  12  3 1  27.418  32.181  17.878  0.50  20.47  4  12  15  ? A
+ATOM C  CG2 THR  A  12  4 1  26.489  33.778  18.426  0.50  20.00  4  12  16  ? A
+ATOM N  N   ILE  A  13  . 1  23.664  33.855  16.884  1.00  22.08  .  13  17  ? A
+ATOM C  CA  ILE  A  13  . 1  22.623  34.850  17.093  1.00  23.44  .  13  18  ? A
+ATOM C  C   ILE  A  13  . 1  22.657  35.113  18.610  1.00  25.77  .  13  19  ? A
+ATOM O  O   ILE  A  13  . 1  23.123  34.250  19.406  1.00  26.28  .  13  20  ? A
+ATOM C  CB  ILE  A  13  . 1  21.236  34.463  16.492  1.00  22.67  .  13  21  ? A
+ATOM C  CG1 ILE  A  13  . 1  20.478  33.469  17.371  1.00  22.14  .  13  22  ? A
+ATOM C  CG2 ILE  A  13  . 1  21.357  33.986  15.016  1.00  21.75  .  13  23  ? A
 # - - - - data truncated for brevity - - - -
-HETATM C C1 APS  C  14  1  1  4.171  29.012   7.116  0.58  17.27  1 300  101  A
-HETATM C C2 APS  C  14  1  1  4.949  27.758   6.793  0.58  16.95  1 300  102  A
-HETATM O O3 APS  C  14  1  1  4.800  26.678   7.393  0.58  16.85  1 300  103  A
-HETATM N N4 APS  C  14  1  1  5.930  27.841   5.869  0.58  16.43  1 300  104  A
+HETATM C C1 APS  C  14  1  1  4.171  29.012   7.116  0.58  17.27  1 300  101 ? A
+HETATM C C2 APS  C  14  1  1  4.949  27.758   6.793  0.58  16.95  1 300  102 ? A
+HETATM O O3 APS  C  14  1  1  4.800  26.678   7.393  0.58  16.85  1 300  103 ? A
+HETATM N N4 APS  C  14  1  1  5.930  27.841   5.869  0.58  16.43  1 300  104 ? A
 # - - - - data truncated for brevity - - - -
+# H2O
+HETATM O O    HOH O  . . 5  -5.322  10.972 9.720  0.95 7.25  . 2001 2731 ? B
+HETATM O O    HOH O  . . 5  4.148   4.008  12.383 0.64 14.61 . 2002 2732 ? B
+HETATM O O    HOH O  . . 5  -2.238  5.875  8.525  0.92 15.43 . 2003 2733 ? B
+HETATM O O    HOH O  . . 5  0.114   4.343  8.960  0.45 20.65 . 2004 2734 ? B
+HETATM O O    HOH O  . . 5  1.045   9.537  8.846  0.98 4.03  . 2005 2735 ? B
+HETATM O O    HOH O  . . 5  -0.532  11.899 9.196  1.00 4.09  . 2006 2736 ? B
+HETATM O O    HOH O  . . 5  0.936   18.270 7.581  0.97 5.52  . 2007 2737 ? B
+HETATM O O    HOH O  . . 5  -6.561  13.498 9.629  1.00 8.03  . 2008 2738 ? B
+HETATM O O    HOH O  . . 5  -11.465 18.494 11.144 0.81 14.02 . 2009 2739 ? B
+HETATM O O    HOH O  . . 5  12.795  11.508 13.991 0.90 35.55 . 2010 2740 ? B
diff --git a/modules/io/tests/testfiles/mmcif/model_multi_atom_site.mmcif b/modules/io/tests/testfiles/mmcif/model_multi_atom_site.mmcif
new file mode 100644
index 0000000000000000000000000000000000000000..760e7556496ab0d41268fe46f8aaab2d6418b3b0
--- /dev/null
+++ b/modules/io/tests/testfiles/mmcif/model_multi_atom_site.mmcif
@@ -0,0 +1,120 @@
+data_1MBA
+# derived from 2JSP
+
+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.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    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    1
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   1
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    1
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    1
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   1
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   1
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   1
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  1
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  1
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  1
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    1
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   1
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    1
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    1
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   1
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  1
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  1
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    1
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   1
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   1
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 1
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 1
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 1
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 1
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 1
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23 1
+#
+ATOM 1     N N    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    2
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   2
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    2
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    2
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   2
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   2
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   2
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  2
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  2
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  2
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    2
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   2
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    2
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    2
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   2
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  2
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  2
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    2
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   2
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   2
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 2
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 2
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 2
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 2
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 2
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23 2
+# additional atom_site block
+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.auth_seq_id 
+_atom_site.auth_comp_id 
+_atom_site.auth_asym_id 
+_atom_site.auth_atom_id 
+ATOM 1     N N    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23
diff --git a/modules/io/tests/testfiles/mmcif/model_multi_atom_site_inverted.mmcif b/modules/io/tests/testfiles/mmcif/model_multi_atom_site_inverted.mmcif
new file mode 100644
index 0000000000000000000000000000000000000000..58d22a61f34a1fe561bd2881d7db5211e7a148f3
--- /dev/null
+++ b/modules/io/tests/testfiles/mmcif/model_multi_atom_site_inverted.mmcif
@@ -0,0 +1,124 @@
+data_1MBA
+# derived from 2JSP
+
+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.auth_seq_id 
+_atom_site.auth_comp_id 
+_atom_site.auth_asym_id 
+_atom_site.auth_atom_id 
+ATOM 1     N N    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23
+
+# additional atom_site block
+
+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.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    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    1
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   1
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    1
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    1
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   1
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   1
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   1
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  1
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  1
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  1
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    1
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   1
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    1
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    1
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   1
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  1
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  1
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    1
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   1
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   1
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 1
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 1
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 1
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 1
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 1
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23 1
+#
+ATOM 1     N N    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    2
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   2
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    2
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    2
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   2
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   2
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   2
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  2
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  2
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  2
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    2
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   2
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    2
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    2
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   2
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  2
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  2
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    2
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   2
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   2
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 2
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 2
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 2
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 2
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 2
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23 2
+
+
diff --git a/modules/io/tests/testfiles/mmcif/model_truepos.mmcif b/modules/io/tests/testfiles/mmcif/model_truepos.mmcif
new file mode 100644
index 0000000000000000000000000000000000000000..6138544667831d8d296ffcf728429254bcbfae12
--- /dev/null
+++ b/modules/io/tests/testfiles/mmcif/model_truepos.mmcif
@@ -0,0 +1,75 @@
+data_1TPM
+# derived from 2JSP
+
+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.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    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    1
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   1
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    1
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    1
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   1
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   1
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   1
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  1
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  1
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  1
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    1
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   1
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    1
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    1
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   1
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  1
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  1
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    1
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   1
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   1
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 1
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 1
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 1
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 1
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 1
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23 1
+#
+ATOM 1     N N    . ALA A 1 1  ? 13.847  16.632  5.806  1  ALA A N    2
+ATOM 2     C CA   . ALA A 1 1  ? 14.050  15.239  5.351  1  ALA A CA   2
+ATOM 3     C C    . ALA A 1 1  ? 15.057  15.051  4.185  1  ALA A C    2
+ATOM 4     O O    . ALA A 1 1  ? 16.242  14.860  4.448  1  ALA A O    2
+ATOM 5     C CB   . ALA A 1 1  ? 12.682  14.599  5.070  1  ALA A CB   2
+ATOM 6     H H1   . ALA A 1 1  ? 14.344  17.346  5.293  1  ALA A H1   2
+ATOM 7     H HA   . ALA A 1 1  ? 14.425  14.660  6.196  1  ALA A HA   2
+ATOM 8     H HB1  . ALA A 1 1  ? 12.168  15.166  4.295  1  ALA A HB1  2
+ATOM 9     H HB2  . ALA A 1 1  ? 12.824  13.571  4.734  1  ALA A HB2  2
+ATOM 10    H HB3  . ALA A 1 1  ? 12.085  14.603  5.981  1  ALA A HB3  2
+ATOM 11    N N    . VAL B 1 2  ? 14.602  15.209  2.935  2  VAL A N    2
+ATOM 12    C CA   . VAL B 1 2  ? 15.402  15.012  1.699  2  VAL A CA   2
+ATOM 13    C C    . VAL B 1 2  ? 14.579  15.343  0.431  2  VAL A C    2
+ATOM 14    O O    . VAL B 1 2  ? 14.518  16.503  0.039  2  VAL A O    2
+ATOM 15    C CB   . VAL B 1 2  ? 16.165  13.656  1.685  2  VAL A CB   2
+ATOM 16    C CG1  . VAL B 1 2  ? 15.292  12.399  1.812  2  VAL A CG1  2
+ATOM 17    C CG2  . VAL B 1 2  ? 17.136  13.551  0.504  2  VAL A CG2  2
+ATOM 18    H H    . VAL B 1 2  ? 13.617  15.489  2.821  2  VAL A H    2
+ATOM 19    H HA   . VAL B 1 2  ? 16.285  15.650  1.689  2  VAL A HA   2
+ATOM 20    H HB   . VAL B 1 2  ? 16.859  13.653  2.526  2  VAL A HB   2
+ATOM 21    H HG11 . VAL B 1 2  ? 15.925  11.512  1.791  2  VAL A HG11 2
+ATOM 22    H HG12 . VAL B 1 2  ? 14.743  12.431  2.754  2  VAL A HG12 2
+ATOM 23    H HG13 . VAL B 1 2  ? 14.586  12.361  0.982  2  VAL A HG13 2
+ATOM 24    H HG21 . VAL B 1 2  ? 17.872  14.353  0.565  2  VAL A HG21 2
+ATOM 25    H HG22 . VAL B 1 2  ? 17.645  12.588  0.536  2  VAL A HG22 2
+ATOM 26    H HG23 . VAL B 1 2  ? 16.583  13.637  -0.431 2  VAL A HG23 2