diff --git a/modules/io/src/mol/pdb_reader.cc b/modules/io/src/mol/pdb_reader.cc index 26ce4a1ce805c61720a7ea9e69035abfa37a8f1e..a2c686958975c4cac12c591314e96e5180cbcc7d 100644 --- a/modules/io/src/mol/pdb_reader.cc +++ b/modules/io/src/mol/pdb_reader.cc @@ -479,9 +479,11 @@ void PDBReader::ParseAnisou(const StringRef& line, int line_num, } mol::AtomHandle atom=curr_residue_.FindAtom(aname); if (!atom.IsValid()) { - if (profile_.fault_tolerant || profile_.calpha_only) { + if (profile_.fault_tolerant || + profile_.calpha_only || + warned_name_mismatch_) { return; - } + } const char* fmt_str="invalid ANISOU record for inexistent atom on line %d"; throw IOException(str(format(fmt_str) % line_num)); } diff --git a/modules/io/tests/test_io_pdb.cc b/modules/io/tests/test_io_pdb.cc index 3b5335eef7ea65a265feb73c23b0c3d7608e1fb0..248c810a32c7980e530ea685ec144bbfa58b5357 100644 --- a/modules/io/tests/test_io_pdb.cc +++ b/modules/io/tests/test_io_pdb.cc @@ -557,6 +557,12 @@ BOOST_AUTO_TEST_CASE(atom_name_too_long) BOOST_CHECK_THROW(writer.Write(ent), IOException); } - +BOOST_AUTO_TEST_CASE(anisou_BZDNG_274) +{ + String fname("testfiles/pdb/bzdng274.pdb"); + PDBReader reader(fname, IOProfile()); + mol::EntityHandle ent=mol::CreateEntity(); + BOOST_CHECK_NO_THROW(reader.Import(ent)); +} BOOST_AUTO_TEST_SUITE_END() diff --git a/modules/io/tests/testfiles/pdb/bzdng274.pdb b/modules/io/tests/testfiles/pdb/bzdng274.pdb new file mode 100644 index 0000000000000000000000000000000000000000..40bab97a6ed3fe2c222f6be50138288afc2ba5cd --- /dev/null +++ b/modules/io/tests/testfiles/pdb/bzdng274.pdb @@ -0,0 +1,42 @@ +ATOM 4296 N ALYS C 70 -7.135 26.476 55.189 0.50 11.33 N +ANISOU 4296 N ALYS C 70 1725 1351 1228 -37 37 -87 N +ATOM 4297 CA ALYS C 70 -5.680 26.454 55.293 0.50 11.79 C +ANISOU 4297 CA ALYS C 70 1691 1444 1342 -63 21 -85 C +ATOM 4298 C ALYS C 70 -4.982 26.639 53.938 0.50 11.94 C +ANISOU 4298 C ALYS C 70 1710 1460 1368 -56 23 -78 C +ATOM 4299 O ALYS C 70 -3.853 27.095 53.891 0.50 12.60 O +ANISOU 4299 O ALYS C 70 1890 1520 1377 -153 23 -95 O +ATOM 4300 CB ALYS C 70 -5.177 25.168 55.927 0.50 11.85 C +ANISOU 4300 CB ALYS C 70 1677 1540 1285 -24 7 -82 C +ATOM 4301 CG ALYS C 70 -5.443 25.055 57.430 0.50 12.59 C +ANISOU 4301 CG ALYS C 70 1793 1655 1333 -126 92 -13 C +ATOM 4302 CD ALYS C 70 -4.785 23.810 57.952 0.50 13.78 C +ANISOU 4302 CD ALYS C 70 1912 1681 1640 -70 61 -63 C +ATOM 4303 CE ALYS C 70 -5.132 23.527 59.399 0.50 14.46 C +ANISOU 4303 CE ALYS C 70 1993 1729 1770 -71 66 66 C +ATOM 4304 NZ ALYS C 70 -4.466 22.268 59.847 0.50 16.08 N +ANISOU 4304 NZ ALYS C 70 2259 1932 1916 247 153 79 N +HETATM 4305 N BKCX C 70 -7.137 26.474 55.190 0.50 11.31 N +ANISOU 4305 N BKCX C 70 1725 1348 1225 -38 37 -89 N +HETATM 4306 CA BKCX C 70 -5.682 26.449 55.303 0.50 11.74 C +ANISOU 4306 CA BKCX C 70 1689 1436 1336 -60 22 -91 C +HETATM 4307 CB BKCX C 70 -5.193 25.192 56.032 0.50 11.84 C +ANISOU 4307 CB BKCX C 70 1686 1530 1283 -27 5 -99 C +HETATM 4308 CG BKCX C 70 -5.531 25.217 57.553 0.50 12.15 C +ANISOU 4308 CG BKCX C 70 1769 1586 1261 -76 102 -42 C +HETATM 4309 CD BKCX C 70 -4.873 24.098 58.373 0.50 13.44 C +ANISOU 4309 CD BKCX C 70 1960 1660 1484 51 34 -68 C +HETATM 4310 CE BKCX C 70 -5.084 24.298 59.919 0.50 12.93 C +ANISOU 4310 CE BKCX C 70 1961 1568 1384 141 -136 33 C +HETATM 4311 NZ BKCX C 70 -6.535 24.279 60.217 0.50 13.06 N +ANISOU 4311 NZ BKCX C 70 2033 1516 1411 136 42 -235 N +HETATM 4312 C BKCX C 70 -4.973 26.615 53.943 0.50 11.94 C +ANISOU 4312 C BKCX C 70 1712 1458 1368 -55 24 -79 C +HETATM 4313 O BKCX C 70 -3.835 27.051 53.895 0.50 12.60 O +ANISOU 4313 O BKCX C 70 1890 1517 1380 -148 25 -108 O +HETATM 4314 CX BKCX C 70 -7.253 25.403 60.351 0.50 14.46 C +ANISOU 4314 CX BKCX C 70 2219 1877 1396 370 97 -46 C +HETATM 4315 OQ1BKCX C 70 -8.462 25.314 60.519 0.50 15.54 O +ANISOU 4315 OQ1BKCX C 70 2298 2166 1438 412 0 -363 O +HETATM 4316 OQ2BKCX C 70 -6.745 26.519 60.276 0.50 17.48 O +ANISOU 4316 OQ2BKCX C 70 2684 1989 1967 332 -148 -522 O